Objet : Developers list for StarPU
Archives de la liste
- From: anne caselli <anne.caselli@ensea.fr>
- To: starpu-devel@lists.gforge.inria.fr
- Subject: [Starpu-devel] Question sur les dépendances explicites
- Date: Tue, 13 Mar 2018 18:26:17 +0100 (CET)
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=anne.caselli@ensea.fr; spf=None smtp.mailfrom=anne.caselli@ensea.fr; spf=None smtp.helo=postmaster@smtpout20.partage.renater.fr
- 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>
Bonjour,
Je suis actuellement en master 2 et je dois travailler sur un projet de recherche ayant pour support StarPu.
J'en suis encore dans la phase "découverte" et prise en main. Donc en ce moment j'essaie de créer une chaîne, et pour cela je veux utiliser les dépendances explicites. Cependant je me trouve confrontée à un problème. J'utilise bien la fonction starpu_tag_declare_deps, afin que chaque élément de la chaîne ait une dépendance, et que la tâche d'id i soit sollicitée par la tâche d'id i-1.
J'en suis encore dans la phase "découverte" et prise en main. Donc en ce moment j'essaie de créer une chaîne, et pour cela je veux utiliser les dépendances explicites. Cependant je me trouve confrontée à un problème. J'utilise bien la fonction starpu_tag_declare_deps, afin que chaque élément de la chaîne ait une dépendance, et que la tâche d'id i soit sollicitée par la tâche d'id i-1.
Or quand je crée mes tâches par id décroissant, je m'attends quand même à ce qu'elles s'affichent par Id croissant étant donné les dépendances mises en place. Mais ce n'est pas le cas.
J'aimerais donc savoir si il y a quelque chose que je n'ai pas compris dans l'utilisation des dépendances ou bien si mon code (en pièce jointe) présente une erreur.
Merci d'avance pour votre temps. Et n'hésitez pas à me dire si je dois poser ma question à un autre endroit.
Cordialement,
Anne
#include <starpu.h> #define cont 10 #define TAG(i) ((starpu_tag_t) (i)) struct params { starpu_tag_t id; }; uint64_t clts[cont]; volatile int nc; void display (void * buffers[], void * cl_arg) { struct params *parametres = cl_arg; // int ret = starpu_tag_wait(parametres->id-1); // STARPU_CHECK_RETURN_VALUE(ret, "starpu_tag_wait"); int idx = nc++; //STARPU_ATOMIC_ADD(&nc, 1); clts[idx] = parametres->id; free(parametres); } struct starpu_codelet clt = { .cpu_funcs = { display }, .cpu_funcs_name = { "display" }, .modes = {STARPU_RW}, .nbuffers = 0, .model = NULL }; void spawn(starpu_tag_t tag, unsigned deps, starpu_tag_t dst) { struct starpu_task *task = starpu_task_create(); task->cl = &clt; /*Pointeur sur le codelet*/ task->use_tag = 1; task->tag_id = tag; struct params *parametres1 = malloc(sizeof(struct params)); parametres1->id = tag; /* Les paramètres sont arguments de la tâche*/ task->cl_arg = parametres1; task->cl_arg_size = sizeof(*parametres1); starpu_tag_declare_deps(dst, deps, tag); int ret = starpu_task_submit(task); /*submit the task to StarPU*/ STARPU_CHECK_RETURN_VALUE(ret, "starpu_task_submit"); } int main(int argc, char **argv) { /*initialisation StarPU*/ int ret = starpu_init(NULL); STARPU_CHECK_RETURN_VALUE(ret, "starpu_init"); /*On boucle pour créer le nombre de tâche voulu*/ for (unsigned long i = cont-1; i>0; i--) spawn( TAG(i), 1, TAG(i-1)); spawn(TAG(0),0,TAG(0)); starpu_task_wait_for_all(); for (int i = 0; i < cont; i++) { printf("%lu\t", clts[i]); } puts(""); /*terminate StarPU*/ starpu_shutdown(); return 0; }
- [Starpu-devel] Question sur les dépendances explicites, anne caselli, 13/03/2018
- Re: [Starpu-devel] Question sur les dépendances explicites, Samuel Thibault, 13/03/2018
- Re: [Starpu-devel] Questionsur les dépendancesexplicites, anne caselli, 14/03/2018
- Re: [Starpu-devel] Questionsur les dépendancesexplicites, Samuel Thibault, 14/03/2018
- Re: [Starpu-devel] Questionsur les dépendancesexplicites, anne caselli, 14/03/2018
- Re: [Starpu-devel] Question sur les dépendances explicites, Samuel Thibault, 13/03/2018
Archives gérées par MHonArc 2.6.19+.