Accéder au contenu.
Menu Sympa

starpu-devel - Re: [Starpu-devel] Assert failure with regenerate flag enabled

Objet : Developers list for StarPU

Archives de la liste

Re: [Starpu-devel] Assert failure with regenerate flag enabled


Chronologique Discussions 
  • From: Jeff Hand <jeffrey.hand@gmail.com>
  • To: Samuel Thibault <samuel.thibault@ens-lyon.org>, Starpu-devel@lists.gforge.inria.fr
  • Subject: Re: [Starpu-devel] Assert failure with regenerate flag enabled
  • Date: Tue, 18 Nov 2014 09:45:59 -0600
  • List-archive: <http://lists.gforge.inria.fr/pipermail/starpu-devel/>
  • List-id: "Developers list. For discussion of new features, code changes, etc." <starpu-devel.lists.gforge.inria.fr>

It was a coding mistake when creating the example.

On a slightly different topic, I'm wondering: How can dependencies be changed?

With the pipeline A->B->C->D, we want to change it to A->C->B->D.  The inputs and outputs are easy enough to change.  The starpu_task_declare_deps_array appends dependencies.   I'm not aware of a way change or clear the dependencies. Perhaps starpu_task_clean of tasks B/C/D would reset the dependencies.  How should the dependencies be changed?

cheers,
Jeff



On Mon, Nov 17, 2014 at 5:43 AM, Samuel Thibault <samuel.thibault@ens-lyon.org> wrote:
Hello,

Jeff Hand, le Wed 05 Nov 2014 15:27:06 -0600, a écrit :
>     starpu_data_set_sequential_consistency_flag(vectorInputHandle, 0);

I'm wondering: why disabling the sequential consistency?

I have thought a bit deeper, and the ground issue is that we don't
really support the following kind of scenario. Let's way we have a
A->B->C task pipeline.  We do not support running A several times
before running B: in B we would have to remember that A has executed
several times, and thus B can execute as many times. But AIUI from
your program, you do not want so much pipelining anyway: once A has
completed, you want B to complete before running A again, since you
don't want to see A fill the buffer before B had the time to read from
it. That is the Write-after-Read dependency enforced by the sequential
consistency. The idea could be to add also B->A and C->B dependencies,
to express the Write-after-Read dependency, but that gets tricky to do
from the application, since it can't be done initially, A would then not
be schedulable at all. One thing we can do, however, is to automatically
add the backward dependency in StarPU when the task has regenerate=1
with a proper initial state, thus making A initially dependent on
nothing, B on A, and C on B, and on A completion, the resubmitted
version of A would depend on B, on B completion, the resubmitted version
of B would depend on both A and B, etc.

Samuel




Archives gérées par MHonArc 2.6.19+.

Haut de le page