Accéder au contenu.
Menu Sympa

starpu-devel - Re: [starpu-devel] Follow-Up on Data Handle Scope and Task Scheduling

Objet : Developers list for StarPU

Archives de la liste

Re: [starpu-devel] Follow-Up on Data Handle Scope and Task Scheduling


Chronologique Discussions 
  • From: Samuel Thibault <samuel.thibault@inria.fr>
  • To: Xinbo Li <lix34545@myumanitoba.ca>
  • Subject: Re: [starpu-devel] Follow-Up on Data Handle Scope and Task Scheduling
  • Date: Fri, 18 Apr 2025 02:47:43 +0200
  • Authentication-results: mail3-relais-sop.national.inria.fr; dkim=none (message not signed) header.i=none; spf=Neutral smtp.mailfrom=samuel.thibault@aquilenet.fr; dmarc=fail (p=none dis=none) d=inria.fr
  • Organization: I am not organized
  • Resent-date: Fri, 18 Apr 2025 03:06:01 +0200
  • Resent-from: Samuel Thibault <samuel.thibault@aquilenet.fr>
  • Resent-message-id: <aAGleb93qXUKbSkY@begin>
  • Resent-to: starpu-devel@inria.fr

Xinbo Li, le ven. 18 avril 2025 00:44:39 +0000, a ecrit:
> In that case, if we define a data handle inside a local block and
> unregister it
> immediately after task submission, any subsequent tasks — even if unrelated
>
> would be forced to wait for the earlier tasks to complete, due to the
> synchronization imposed by the unregister operation. This could potentially
> reduce efficiency.

Yes. That's why you'd prefer to just let starpu handle allocation by
passing a NULL pointer (and possibly use a task to initialize data in
it), and use starpu_data_unregister_submit after inserting all tasks
using it.

> // Task 1
> starpu_task_insert(
> &some_codelet,
> STARPU_RW, handle,
> 0);
>
> starpu_data_unregister(handle); // unregister at end of block
> }
>
> // Task 2
> starpu_task_insert(
> &some_other_codelet,
> STARPU_RW, some_other_handle,
> 0);
>
> In this case, would Task 2 be forced to wait for Task 1 to finish,

starpu_data_unregister waits for the completion of task 1, yes.

Samuel



Archives gérées par MHonArc 2.6.19+.

Haut de le page