Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Open-MP, sous Windows, avec MinGW, installation

5 réponses
Avatar
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 ?

5 réponses

Avatar
Antoine Leca
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


<Note> je n'ai pas été voir... </Note>

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

Avatar
Jérôme Collet
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


<Note> je n'ai pas été voir... </Note>

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




Avatar
Thierry PINELLI
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 <omp.h>

Avatar
Bruno Ducrot
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.

Avatar
Jérôme Collet


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 !!!