Accéder au contenu.
Menu Sympa

starpu-devel - Re: [Starpu-devel] Dépendances dynamiques

Objet : Developers list for StarPU

Archives de la liste

Re: [Starpu-devel] Dépendances dynamiques


Chronologique Discussions 
  • From: Adrien Roussel <adrien.roussel@itwm.fraunhofer.de>
  • To: Samuel Thibault <samuel.thibault@inria.fr>, starpu-devel@lists.gforge.inria.fr
  • Subject: Re: [Starpu-devel] Dépendances dynamiques
  • Date: Mon, 2 Jul 2018 18:22:50 +0200
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=adrien.roussel@itwm.fraunhofer.de; spf=Pass smtp.mailfrom=adrien.roussel@itwm.fraunhofer.de; spf=None smtp.helo=postmaster@mail-edgeKA24.fraunhofer.de
  • Ironport-phdr: 9a23:ai+6BRacjOeibUK3xQPrVFv/LSx+4OfEezUN459isYplN5qZrsu4bnLW6fgltlLVR4KTs6sC17KI9fi4EUU7or+5+EgYd5JNUxJXwe43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQviPgRpOOv1BpTSj8Oq3Oyu5pHfeQpFiCa8bL9oMBm6sRjau9ULj4dlNqs/0AbCrGFSe+RRy2NoJFaTkAj568yt4pNt8Dletuw4+cJYXqr0Y6o3TbpDDDQ7KG81/9HktQPCTQSU+HQRVHgdnwdSDAjE6BH6WYrxsjf/u+Fg1iSWIdH6QLYpUjm58axlVAHnhzsGNz4h8WHYlMpwjL5AoBm8oxBz2pPYbJ2JOPZ7eK7WYNEUSndbXstJSiJPHI28YYsMAeQPM+lXoIvyqEcVoBu7GQWhHvnixiNGi3L026AxzuQvERvB3AwlB98DrGnbrM/0NKgMV+C+0bXGzTLeb/NNwjfy9ozIeQ0mrP6WQL1wa8vRxlcpFw/flFWQrpHlPyiO1usTt2iW9OtgVf6him4isQ1xrCKvyd0xionPhoIVzV7E+jtjwIovONK3Vld2bNi5G5VesCGaMpF5QsIkQ2xwoik116cGuZ+lcygM0Zgn3Rnfa+Gcc4iT/B3jUPydLillhH9jZbmxhA6y/FC9xuD8WMS4ylJHoytfntXRrHwByRPe5tCaRvZz40utwyiD2g/S5+1ePEw5kbfXJ4Qjz7MzkJcYrF7NETXsmErsia+bbkUk9fas6+Tgerjmo4WTN45wig3nLKshh8O/Dvo9PAUSQWSW9v6w1LP5/ULjXbVKiP02kq7XsJ/EP8QXvLO2DBFN3oYi7RawESum3cwFkXQHIl9JYhaKgonzN13TOvz0E/iyj0ypkDhxxvDGOrPhAo/KLnjGiLruZ6ty61RdyAUty9BT/YhUCrYcIPLoQU/+qtjYAwQ4MwyozefnDc9x1o0EWW2VH6+ZNqPSsViG5u0xOemAfpIatyjlJ/g/+/HulWM5mUMafaSxxpsXdGq3Hu5+I0WEeHbjn8kOEXkUsQo6V+HqjFyCUSVPZ3apRa486T87CIW8DYfMWI+hmr2B3CGhHp1XfG9KEF6MEW27P7mDDswFbT+fJoddkj0OXKWlV8d1zhirqQL+jaZnL+Dd5ykEnZPlztl8oePJw1V67iB9FdyAlm2AUWxwtmcJXCMtmq9xplZyxxGC17J5irpWD499/fRMBy42L5/RyaRADM3pQQ/FNoOAREynT9PgGzYsVck8x/cPf1l4Xdu4hw3F3y2kDqVTm7HdV898yb7Vw3Wkf5U18H3BzqR0ygB+GpIeZ13jvbZ28k3oP6CMlkyYk6iwcqFGhHzM6HiGi2SUtVxeUAl+XL+DUX1NPxKK/+S83VvLSvqVMZpiKhFIk5bQK7dVb5vnl1xbQvfkNtnEJW68yT/pWES4g4iUZY+vQF0zmSXQDE9ewlIW9HeCcAUyCSqCijiCSjJ0HE/pY0Ti/PM4pH7pFkI=
  • 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,

  Nouvelle correction, et j'ai encore un petit soucis.

Donc, ce coup-ci dans mon code je réutilise les starpu_data_handler_t pour générer mes tâches et ainsi pouvoir bien créer les dépédances entre les tâches.
Pour ce faire, je stocke dans une map associative (std::map) un pointeur correspondant à une donnée sur laquelle je vais faire des calculs, auquel j'associe un starpu_data_handler_t.
Cette map se trouve dans LinearAlgebraAPI/StarPU/StarPUKernel.h, nommée starpu_handlers.

Ensuite, si une nouvelle donnée arrive j'enregistre la donnée dans StarPU avec son handler; si je détecte que le pointeur existe déjà dans ma map, j'utilise le handler déjà créé.

Si j'exécute une petite séquence d'opération d'algébre linéaire (exemple: main_sequence.cpp), le résultat est correct et ça marche bien.
Si maintenant j'exécute une opération plus compliquée comme un solveur linéaire itératif (test_bicgs.cpp); où je me sers des infos que j'ai stocké et que je rejoue plusieurs fois les mêmes séquences, j'obtiens une erreur de la forme:

/apps/StarPU/1.2.4/lib/libstarpu-1.2.so.4(_starpu_task_declare_deps_array+0x6d7)[0x7f392fdf0377]
/apps/StarPU/1.2.4/lib/libstarpu-1.2.so.4(+0x32e8a)[0x7f392fdebe8a]
/apps/StarPU/1.2.4/lib/libstarpu-1.2.so.4(_starpu_detect_implicit_data_deps_with_handle+0x101)[0x7f392fdec711]
/apps/StarPU/1.2.4/lib/libstarpu-1.2.so.4(_starpu_detect_implicit_data_deps+0x112)[0x7f392fdecb72]
/apps/StarPU/1.2.4/lib/libstarpu-1.2.so.4(starpu_task_submit+0x7c)[0x7f392fde180c]
./bin/bicgstab.exe[0x40a02e]
./bin/bicgstab.exe[0x4063e2]
./bin/bicgstab.exe[0x4037f6]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7f392e8d5445]
./bin/bicgstab.exe[0x403d2f]

[starpu][_starpu_task_declare_deps_array][assert failure] Task dependencies have to be set before termination (terminated 2)

bicgstab.exe: core/dependencies/task_deps.c:79: _starpu_task_declare_deps_array: Assertion `job->terminated <= 1' failed.


Cette erreur arrive à ma deuxième itération, ce qui veut dire que la séquence a déjà été exécutée une fois.
Si les dépendances n'avaient pas été mises la première fois, j'aurais eu une erreur bien avant.
Donc je ne comprends pas trop cette erreur, ni comment la corriger.

Auriez-vous une idée d'où pourrait venir le problème ?

Merci beaucoup d'avance.


Le 29/06/2018 à 16:25, Samuel Thibault a écrit :
Adrien Roussel, le ven. 29 juin 2018 16:20:58 +0200, a ecrit:
Si je comprends bien, je devrais garder mon res_handle aussi bien pour mes
tâches de produits scalaires "locaux" (class StarPU_dot) que pour ma
réduction (class StarPU_reduction). C'est ça ?
Donc, un "handle" unique par données car StarPU ne va pas regarder le
pointeur du handle, juste se référer au handle lui-même avec des accesseur
différents selon ce qui est défini dans la tâche.
Oui. On ne fait pas d'analyse de valeur de pointeur, ça pose bien
trop de problème, les utilisateurs s'attendent ensuite à ce qu'on
soit capable d'analyser l'accès à un sous-tableau, et inversement on
peut vouloir enregistrer indépendemment les triangles supérieurs et
inférieurs stricts d'une même matrice.

Comme mon workflow est assez équilibré, je ne vois ce data race que pour le
produit scalaire si c'est bien ça, mais en réalité je dois en avoir partout.
C'est bien possible oui, et que ce soit juste par chance que ça ne
posait pas de problème.

Samuel

--
|---------------------------------------------------------|
| Dr. Adrien Roussel
| Competence Center High Performance Computing
| Fraunhofer Institut ITWM
| Tel. : +49 631 31600-4984
| E-Mail : adrien.roussel@itwm.fraunhofer.de
| Web : https://adrien-roussel.eu
| Address: Fraunhofer-Platz 1
| D-67663 Kaiserslautern
|---------------------------------------------------------|

Attachment: API_BiCGStab.tar.gz
Description: application/gzip




Archives gérées par MHonArc 2.6.19+.

Haut de le page