Accéder au contenu.
Menu Sympa

starpu-devel - Re: [Starpu-devel] Questionsur les dépendancesexplicites

Objet : Developers list for StarPU

Archives de la liste

Re: [Starpu-devel] Questionsur les dépendancesexplicites


Chronologique Discussions 
  • From: Samuel Thibault <samuel.thibault@inria.fr>
  • To: anne caselli <anne.caselli@ensea.fr>
  • Cc: starpu-devel@lists.gforge.inria.fr
  • Subject: Re: [Starpu-devel] Questionsur les dépendancesexplicites
  • Date: Wed, 14 Mar 2018 09:15:46 +0100
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=samuel.thibault@inria.fr; spf=Neutral smtp.mailfrom=samuel.thibault@ens-lyon.org; spf=Pass smtp.helo=postmaster@hera.aquilenet.fr
  • Ironport-phdr: 9a23:OZ3HNBA8STnJDZGEvFgeUyQJP3N1i/DPJgcQr6AfoPdwSPT4r8bcNUDSrc9gkEXOFd2Cra4c0KyO6+jJYi8p2d65qncMcZhBBVcuqP49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6JvjvGo7Vks+7y/2+94fcbglUijexe69+IAmrpgjNq8cahpdvJLwswRXTuHtIfOpWxWJsJV2Nmhv3+9m98p1+/SlOovwt78FPX7n0cKQ+VrxYES8pM3sp683xtBnMVhWA630BWWgLiBVIAgzF7BbnXpfttybxq+Rw1DWGMcDwULs5Qiqp4bt1RxD0iScHLz85/3/Risxsl6JQvRatqwViz4LIfI2ZMfxzdb7fc9wHX2pMRshfWSxfDI2hbIUPAeUOMvpFoIfypVQOqhWxCBKpBO7s1jNFnGP60Lc43uknDArI3BYgH9ULsHnMsdv6LqISUf2rw6nM0D7NcfNW2Tbm54fSbxAhpe2MVq93fMrK00YvEh7FgUuUqYD/IzOV1uUNvHOB4Op9UeKvl3UqqwB3oji1x8cjkJPFhowPyl3d8yhy3YU7JcWgRUJmYtOpEIFcuz+UOoZ4WM8uXn1ktDogxrEboZK3YSoHxZU9yxLCa/GKcJKE7g/+WOqMOzt0mWxpdbSijBio60eg0PfzVsys3VZKsCVFlt7Mu2gN1xPN8MiIUOFx8V242TaS1gDT7v9LIUYqmqrHMZIhzKQwmoISsUTFACD2hF37gLKVe0gk4OSk9erqb7v8qpOBK4N4lhvyPrk2lsy6G+s4MwwOX2aB+eS70b3u5Vb5T69Pjv0rjKbZtIrWJdgbpq64GABayJsj6xKjDzq9ztsYm2IHIEtBeBOHiIjpPUvCIPfiDfewm1isiitkx+jaPr39BZXANmPDkKv7crZn805c1RM/ws1B6JJKFL4BJOn+WkvwtNzDEh85KBa4w+npCNV6zIMeVnyADrWYMKPUq1+I5/ggL/OCZI8P637BLK0s4fjjxXQwglIZeajhiZIRbn3+Ff19LkGdYFLhhMwMGCEEpFxtYvbtjQi5WDtOanL6Y6I97DgmDJ7uWZzKQ52ghPqd3CaxF4BSekhHDEqNGDHmbdPXCL83dCuOL5o5wXQ/Xr+7RtpkjEn27V6o+/9cNuPRvxYgm9fm3dlx6ffUkEhupzFyFIGZwmaLCWZukTFSHmNk7OVEuUV4j2y7/+1gmfUBTY5S4elIW0E0L8yElrEoO5XJQgvEO+yxZhOmT9GhWGBjTt8rypkHelt8H9ikgwyF0TD4WrI=
  • 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>
  • Organization: I am not organized

Bonjour,

Il vaut mieux toujours garder la liste en copie, pour éviter de se
retrouver sans réponse si jamais la seule personne à qui vous envoyez un
mail se retrouve partir en vacances...

anne caselli, on mar. 13 mars 2018 20:24:59 +0100, wrote:
> En effet il y a bien une inversion. Cependant, même après
> correction,l'affichage des id reste décroissant, alors que si les
> dépendances sont bien respectées l'affichage devrait être croissant non ?

Après correction j'obtiens bien un ordre croissant, cf pièce ci-jointe.

Samuel
#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(tag, deps, dst);
	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--)
	//for (unsigned long i = 1; i< cont; 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;
}



Archives gérées par MHonArc 2.6.19+.

Haut de le page