Accéder au contenu.
Menu Sympa

starpu-devel - Re: [Starpu-devel] StarPU questions

Objet : Developers list for StarPU

Archives de la liste

Re: [Starpu-devel] StarPU questions


Chronologique Discussions 
  • From: Samuel Thibault <samuel.thibault@ens-lyon.org>
  • To: "Vergel, Julio" <Julio.Vergel@aeroflex.com>
  • Cc: "jvergel@hotmail.com" <jvergel@hotmail.com>, "starpu-devel@lists.gforge.inria.fr" <starpu-devel@lists.gforge.inria.fr>
  • Subject: Re: [Starpu-devel] StarPU questions
  • Date: Mon, 1 Sep 2014 17:28:23 +0200
  • 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>

Hello,

Vergel, Julio, le Fri 29 Aug 2014 18:38:10 +0000, a écrit :
> a) taskGain[0]
> b) taskAddConstant which has to wait for taskGain[0] completion
> c) taskGain[1] which has to wait for taskAddConstant completion
> d) taskGain[2] which has to wait for taskAddConstant completion
>
> everything works OK. However if I change the order of submitting the tasks
>
> starpu_task_submit( taskGain[2] );
> starpu_task_submit( taskGain[0] );
> starpu_task_submit( taskAddConstant );
> starpu_task_submit( taskGain[1] );
>
> the program hangs when i run it.

Remember that StarPU implements implicit dependencies generation from
sequential consistency, which add up to the dependencies that you create
by hand, and thus it will here add a dependency between taskGain[2] and
taskAddConstant, since taskGain[2] writes to vectorAddConstantHandle,
and taskAddConstant reads from it. To disable implicit dependencies,
use starpu_data_set_sequential_consistency_flag, or even
starpu_data_set_default_sequential_consistency_flag.

> 2) My second question is that I noticed that if I increase the value of NX
> (line 17) to a couple of millions, the program crashes immediately.

That's not really surprising:

> int main(int argc, char **argv)
> {
> /* We consider a vector of float that is initialized just as any of C
> * data */
> float vector[NX];

Theses local arrays are allocated on the stack, which is usually limited
to only a few MiB in most systems. Increase the stack size with ulimit
-s, or make it a global variable, or allocate it dynamically from the
heap.

Samuel




Archives gérées par MHonArc 2.6.19+.

Haut de le page