Accéder au contenu.
Menu Sympa

starpu-devel - Re: [Starpu-devel] Combined workers and OpenMP code

Objet : Developers list for StarPU

Archives de la liste

Re: [Starpu-devel] Combined workers and OpenMP code


Chronologique Discussions 
  • From: Nicolas Collin <nicolas.collin@inria.fr>
  • Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>, starpu-devel@lists.gforge.inria.fr
  • Subject: Re: [Starpu-devel] Combined workers and OpenMP code
  • Date: Thu, 26 Apr 2012 13:53:40 +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>

On 04/25/2012 05:42 PM, Samuel Thibault wrote:
Keisuke Fukuda, le Wed 25 Apr 2012 11:36:44 +0200, a écrit :
starpu_combined_worker_get_size() always returns 1
I notice that your program uses a regression-based performance model,
but it only submits tasks of the same size. The scheduler does not
realize that it's still a task of the same size, which will not help the
performance model, and thus continues to try with 1, in the hope the
performance model will eventually provide estimations.

and only 1 thread runs in #pragma omp parallel for loop.
OTOH, vector_scal example run 2-4 threads (although I expect 6 workers since
the CPU is 6-core sandy bridge).
Doesn't starpu_perfmodel_display show that it at least tried 6 a few
times, perhaps only to realize that it's less efficient than 2-4?

(2) Is there any way to let (or even force) StarPU to use a certain
number of workers, i.e.
just as the same number as of physical cores.
You can use the execute_on_a_specific_worker field to force using a
combined worker. Nicolas, is there any way to print the combined
workers tree? Also, it seems that STARPU_MIN/MAX_WORKERSIZE are not
documented at all, could you handle that?
There is no function to print the combined worker tree yet.
You can force StarPU to create the desired combined worker by declaring STARPU_SINGLE_COMBINED_WORKER to 0 and declaring STARPU_MIN/MAX_WORKER_SIZE to the desired number.
For example :
STARPU_CALIBRATE=2 STARPU_NCUDA=0 STARPU_NOPENCL=0 STARPU_MIN_WORKERSIZE=6 STARPU_MAX_WORKERSIZE=6 STARPU_SINGLE_COMBINED_WORKER=0 ./simple_omp

Indeed I'm going to write a paragraph about STARPU_MIN/MAX_WORKERSIZE.

Regards
-- Nicolas





Archives gérées par MHonArc 2.6.19+.

Haut de le page