|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() Inscription : juillet 2011 Messages : 100 ![]() |
Bonjour à tous
Je dois améliorer un code parallèle, écrit en fortran 77/90 (compilé en O3 avec mpif90 de gfortran et de ifort). Après quelques recherches je tombe sur ce qui semble être une solution du problème, à savoir remplacer par une des deux lignes Code :
Bonne journée à tous
__________________
Libérez vos documents http://fr.libreoffice.org/ et vos doigts en tapant en BÉPO http://bepo.fr/wiki/Accueil:, rangez les cartes perforées dans une armoire et GOTO work |
||
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Inscription : mai 2010 Messages : 111 ![]() |
Salut,
La performance est-elle la même sur différents ordinateurs? Je pense sinon que le gain vient de : Lorsque tu demandes de copier l'ensemble du tableau, sans spécifier sa taille, le CPU doit alors demander à la mémoire quelle est la taille du tableau. En d'autre terme, je pense que l'instruction marche comme suit : 1. CPU : Quelle est la taille du tableau? 2. Mémoire : Elle est de taille 3. CPU : copie le tableau w(taille,1:5) dans q Donc en somme, tu sautes deux étapes en stockant directement la taille du tableau (ce qui, particulièrement dans un code MPI a beaucoup de processus peut s'avérer être un gain assez substantiel) Enfin, je pense que c'est quelque chose comme ça. @ plush, Marlan |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : juillet 2011 Messages : 100 ![]() |
personnellement j'ai seulement testé sur un i7-2600, en activant ou pas l'hyperthreading, mais le code à déjà été lancé sur d'autres machines par d'autres personnes et il a déjà été constaté des performances plus que médiocres en parallèle. J'accepte bien l'idée le fait que de demander la taille d'un tableau puisse prendre un peu de temps… mais bon, je ne pense pas que ça n'explique tout.
__________________
Libérez vos documents http://fr.libreoffice.org/ et vos doigts en tapant en BÉPO http://bepo.fr/wiki/Accueil:, rangez les cartes perforées dans une armoire et GOTO work |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Inscription : septembre 2004 Messages : 111 ![]() |
Tu observes la même chose avec gfortran et ifort?
Pour le "en parallèle", c'est MPI ou tu utilises du multithreading (OpenMP ou -auto)? |
|
|
00
|
|
|
#5 |
![]() ![]() Matthieu BrucherDéveloppeur HPC Inscription : juillet 2005 Messages : 9 697 ![]() |
Normalement ce bout de code doit saturer la bande passante mémoire. Ajouter des threads sur un même socket ne va que créer de la contention à la mémoire et des cache-miss (ça dépendra du compilateur pour ce dernier point).
Donc si tu copies déjà à vitesse max, tu ne gagneras rien à paralléliser ce bout de code. Vérifie en faisant un profil de la bande passante mémoire à cet endroit. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com