[gcc] parallelisation automatique

Résolu/Fermé
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 10 juin 2011 à 08:29
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 15 juin 2011 à 14:09
Bonjour,
je viens de découvrir que gcc supportait OpenMP ainsi que la possibilité de demander une parallélisation automatique des boucles.
Or, sur ma version 4.3.0, les options ne sont pas reconnus (-floop-parallelize-all).
Est-ce que quelqu'un sait pourquoi ?
y aurait il une fonction à demander à la compilation ?
Merci


2 réponses

Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 54
15 juin 2011 à 13:17
Oui apparemment il faut faire une build spécial de gcc pour pouvoir utiliser l'option de parallélisation automatique, j'ai trouvé un tuto ici :
https://openwall.info/wiki/internal/gcc-local-build
1
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
15 juin 2011 à 14:09
ok, merci, c'est la réponse que j'attendais :-]
Je mets en résolu, même si je n'ai pas encore testé.
0
Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 54
Modifié par Hxyp le 11/06/2011 à 08:34
Bonjour,
Dans le man de gcc en recherchant le mot "openmp" je ne trouve que la commande :
-fopenmp

       -fopenmp 
Enable handling of OpenMP directives "#pragma omp" in C/C++ and "!$omp" in Fortran. 
When -fopenmp is specified, the compiler generates parallel code according to the OpenMP Application Program Interface v2.5 <http://www.openmp.org/>.  This option implies -pthread, and thus is only supported on targets that have support for -pthread.
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
12 juin 2011 à 20:53
merci de ta réponse, openmp fonctionne bien, mais ce qui ne fonctionne pas c'est les options de parallelisation automatique...
0
Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 54
Modifié par Hxyp le 14/06/2011 à 06:23
Je ne sais pas si ça peut aider à trouver la solution
cc1 dans /usr/lib/gcc/... avec le paramètre --help affiche les options de compilation
et avec un grep sur floop je ne trouve que "-floop-optimize"
pour gcc 4.3.2
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
14 juin 2011 à 08:22
je trouve l'option là :
http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
http://gcc.gnu.org/wiki/Graphite/Parallelization
les premiers tests d'auto parallelisation semblent datés de 2006 :
https://www.airs.com/dnovillo/Papers/gcc2006.pdf
J'avais compris que c'était disponible depuis la versions 4.3.0 (je ne retrouve plus le lien). Mais je me demande, en fait et du coup, si ce n'est pas une option de gcc qui n'est pas par défaut. S'il ne faut pas avoir une version spéciale de gcc ???
Merci pour ton aide.
0