Open-MP, sous Windows, avec MinGW, installation

Le
Jérôme Collet
Je veux utiliser Open-MP, sous Windows, avec MinGW, et j'ai des
problèmes d'installation.

Je suis allé chercher l'installation chez
http://www.tdragon.net/recentgcc/
et j'ai chargé les 4 archives nécessaires (gcc-core, mingw-runtime,
binutils et w32-api).

J'ai changé le path pour accéder aux binaires, renseigné les 4 variables
d'environnement OMP_SCHEDULE, OMP_NUM_THREADS, OMP_DYNAMIC, OMP_NESTED.


J'ai ensuite voulu essayer l'exercice
http://www.llnl.gov/computing/tutorials/openMP/samples/C/omp_hello.c
en compilant avec
gcc -fopenmp omp_hello.c
et ça fait une énorme liste d'erreurs.

Je précise que j'avais compilé sans problème des programmes classiques,
sans parallélisme.

Aurais-je oublié qqc ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Antoine Leca
Le #1002414
En news:474e716d$0$30025$, Jérôme Collet va escriure:
Je veux utiliser Open-MP, sous Windows, avec MinGW, et j'ai des
problèmes d'installation.


Ah

Je suis allé chercher l'installation chez
http://www.tdragon.net/recentgcc/

et j'ai chargé les 4 archives nécessaires (gcc-core, mingw-runtime,
binutils et w32-api).


Mmh. C'est marant, j'aurais été sur le site de Mingw. Mais bon, cela doit
être équivalent, non ?

Arrivé là, est-ce que ton installation compile ? par exemple, je sais pas
moi, disons hello.c (oui oui, celui qui est dans le bouquin).


J'ai changé le path pour accéder aux binaires,


Ouïlle.
Question 1 : pourquoi faire ?
Question 2 : quelle était l'ancienne valeur
Question 3 : quelle est la nouvelle
Question 4 : sur quelle version de Windows
Question 5 : dans quel état j'ère ?

Bref, c'est pas nécessaire, sauf bien sûr si tu utilises un GCC du siècle
dernier (et je ne plaisante pas sur la date)

renseigné les 4 variables d'environnement OMP_SCHEDULE,
OMP_NUM_THREADS, OMP_DYNAMIC, OMP_NESTED.


J'aime pas du tout le mélange "machin_DYNAMIC" et Mingw. Mais pas du tout.
M'enfin, si tu dis que c'est comme cela que cela doit marcher, je te
crois...

J'ai ensuite voulu essayer l'exercice
http://www.llnl.gov/computing/tutorials/openMP/samples/C/omp_hello.c



en compilant avec
gcc -fopenmp omp_hello.c
et ça fait une énorme liste d'erreurs.


C'est bien.
Et comme je suis Madame Irma, je vois sur ma boule de cristal de quoi il
s'agit.

Trève de balivernes.

Ou bien tu penses que je vais passer une heure à charger les mêmes
paquetages pour voir si j'ai aussi « une énorme liste d'erreurs ». Et tu te
trompes.

Ou bien tu nous éclaires un peu en nous montrant quelles unes de ces erreurs
en question, histoire de voir de quoi il retourne.

Et tant qu'à faire, tu précises sur quoi tu travailles (machine et version
de GCC, à tout le moins).

Merci

Antoine

Jérôme Collet
Le #1002413
En news:474e716d$0$30025$, Jérôme Collet va escriure:
Je veux utiliser Open-MP, sous Windows, avec MinGW, et j'ai des
problèmes d'installation.


Ah

Je suis allé chercher l'installation chez
http://www.tdragon.net/recentgcc/

et j'ai chargé les 4 archives nécessaires (gcc-core, mingw-runtime,
binutils et w32-api).


Mmh. C'est marrant, j'aurais été sur le site de Mingw. Mais bon, cela doit
être équivalent, non ?
C'est ce que j'avais fait dans un premier temps. Ce site là donnait

quelques iondications supplémentaires sur l'utilité de pthreads, et sur
les compatibilités entre éléments de MinGW.

Arrivé là, est-ce que ton installation compile ? par exemple, je sais pas
moi, disons hello.c (oui oui, celui qui est dans le bouquin).
Oui.



J'ai changé le path pour accéder aux binaires,


Ouïlle.
Question 1 : pourquoi faire ?
Question 2 : quelle était l'ancienne valeur
Question 3 : quelle est la nouvelle
Question 4 : sur quelle version de Windows
Question 5 : dans quel état j'ère ?
J'ai ajouté le chemin vers les binaires, soit

C:Documents and SettingsJeromeMes documentsmedocamoicompilobin
La version de Windows est XP, SP2

Bref, c'est pas nécessaire, sauf bien sûr si tu utilises un GCC du siècle
dernier (et je ne plaisante pas sur la date)

renseigné les 4 variables d'environnement OMP_SCHEDULE,
OMP_NUM_THREADS, OMP_DYNAMIC, OMP_NESTED.


J'aime pas du tout le mélange "machin_DYNAMIC" et Mingw. Mais pas du tout.
M'enfin, si tu dis que c'est comme cela que cela doit marcher, je te
crois...

J'ai ensuite voulu essayer l'exercice
http://www.llnl.gov/computing/tutorials/openMP/samples/C/omp_hello.c



en compilant avec
gcc -fopenmp omp_hello.c
et ça fait une énorme liste d'erreurs.


C'est bien.
Et comme je suis Madame Irma, je vois sur ma boule de cristal de quoi il
s'agit.

Trève de balivernes.

Ou bien tu penses que je vais passer une heure à charger les mêmes
paquetages pour voir si j'ai aussi « une énorme liste d'erreurs ». Et tu te
trompes.

Ou bien tu nous éclaires un peu en nous montrant quelles unes de ces erreurs
en question, histoire de voir de quoi il retourne.

Et tant qu'à faire, tu précises sur quoi tu travailles (machine et version
de GCC, à tout le moins).
La version de Windows : XP, SP2

La version de GCC, ou plutôt les versions (selon les packages) :
binutils-2.17.50-20060824-1.tar.gz
mingw-runtime-3.13.tar.gz
w32api-3.10.tar.gz
gcc-4.2.2-tdm-1-core-1.7z

La liste d'erreurs :
C:Documents and SettingsJeromeBureauessaicpara>gcc -fopenmp omp_hello.c
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(parallel.o):parallel.c:(.text+0x10):
undefined reference to `_imp__pthread_getspecific'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(parallel.o):parallel.c:(.text+0x49):
undefined reference to `_imp__pthread_getspecific'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(parallel.o):parallel.c:(.text+0x100):
undefined reference to `_imp__pthread_getspecific'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(parallel.o):parallel.c:(.text+0x130):
undefined reference to `_imp__pthread_getspecific'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x17):
undefined reference to `_imp__pthread_key_create'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x2d):
undefined reference to `_imp__pthread_setspecific'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x4a):
undefined reference to `_imp__sem_init'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x63):
undefined reference to `_imp__pthread_getspecific'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x90):
undefined reference to `_imp__pthread_mutex_init'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0xf7):
undefined reference to `_imp__sem_init'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x23e):
undefined reference to `_imp__pthread_create'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x34d):
undefined reference to `_imp__pthread_setspecific'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x369):
undefined reference to `_imp__sem_init'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x469):
undefined reference to `_imp__pthread_getspecific'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x4ab):
undefined reference to `_imp__pthread_mutex_destroy'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(team.o):team.c:(.text+0x4bf):
undefined reference to `_imp__sem_destroy'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(env.o):env.c:(.text+0x390):
undefined reference to `_imp__pthread_attr_init'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(env.o):env.c:(.text+0x3a5):
undefined reference to `_imp__pthread_attr_setdetachstate'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(env.o):env.c:(.text+0x46e):
undefined reference to `_imp__pthread_attr_setstacksize'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x2a):
undefined reference to `_imp__pthread_mutex_unlock'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x48):
undefined reference to `_imp__sem_post'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x68):
undefined reference to `_imp__pthread_mutex_unlock'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x7c):
undefined reference to `_imp__pthread_mutex_lock'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x8e):
undefined reference to `_imp__pthread_mutex_unlock'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0xab):
undefined reference to `_imp__sem_post'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0xcf):
undefined reference to `_imp__pthread_mutex_lock'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x10f):
undefined reference to `_imp__pthread_mutex_lock'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x118):
undefined reference to `_imp__pthread_mutex_unlock'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x121):
undefined reference to `_imp__pthread_mutex_destroy'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x12d):
undefined reference to `_imp__pthread_mutex_destroy'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x13c):
undefined reference to `_imp__sem_destroy'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x145):
undefined reference to `_imp__sem_destroy'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x167):
undefined reference to `_imp__pthread_mutex_init'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x17b):
undefined reference to `_imp__pthread_mutex_init'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x197):
undefined reference to `_imp__sem_init'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x1b3):
undefined reference to `_imp__sem_init'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x1e7):
undefined reference to `_imp__pthread_mutex_lock'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(bar.o):bar.c:(.text+0x1f6):
undefined reference to `_imp__pthread_mutex_unlock'
c:/documents and settings/jerome/mes
documents/medocamoi/compilo/bin/../lib/gcc/mingw32/4.2.2/../../../libgomp.a(sem.o):sem.c:(.text+0x15):
undefined reference to `_imp__sem_wait'
collect2: ld returned 1 exit status

C:Documents and SettingsJeromeBureauessaicpara>

Merci

Antoine




Thierry PINELLI
Le #1002412
Jérôme Collet wrote:

gcc -fopenmp omp_hello.c
et ça fait une énorme liste d'erreurs.
Je précise que j'avais compilé sans problème des programmes classiques,
sans parallélisme.
Aurais-je oublié qqc ?


oui, je lis :

#include
Bruno Ducrot
Le #1002411
On Thu, 29 Nov 2007 08:59:44 +0100, Jérôme Collet wrote:
Je veux utiliser Open-MP, sous Windows, avec MinGW, et j'ai des
problèmes d'installation.

Je suis allé chercher l'installation chez
http://www.tdragon.net/recentgcc/
et j'ai chargé les 4 archives nécessaires (gcc-core, mingw-runtime,
binutils et w32-api).

J'ai changé le path pour accéder aux binaires, renseigné les 4 variables
d'environnement OMP_SCHEDULE, OMP_NUM_THREADS, OMP_DYNAMIC, OMP_NESTED.


J'ai ensuite voulu essayer l'exercice
http://www.llnl.gov/computing/tutorials/openMP/samples/C/omp_hello.c
en compilant avec
gcc -fopenmp omp_hello.c
et ça fait une énorme liste d'erreurs.

Je précise que j'avais compilé sans problème des programmes classiques,
sans parallélisme.

Aurais-je oublié qqc ?


Bonjour,

Je crois qu'il faut éditer le fichier lib/libgomp.spec et remplacer la ligne
*link_gomp: -lgomp %{static: -lpthread }
par :
*link_gomp: -lgomp -lpthread


--
Bruno Ducrot

-- Which is worse: ignorance or apathy?
-- Don't know. Don't care.

Jérôme Collet
Le #1002410


Bonjour,

Je crois qu'il faut éditer le fichier lib/libgomp.spec et remplacer la ligne
*link_gomp: -lgomp %{static: -lpthread }
par :
*link_gomp: -lgomp -lpthread




C'est ça, merci !!!

Publicité
Poster une réponse
Anonyme