Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss
Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

Open-MP, sous Windows, avec MinGW, installation

100 views
Skip to first unread message

Jérôme Collet

unread,
Nov 29, 2007, 2:59:44 AM11/29/07
to
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 ?

Message has been deleted

Antoine Leca

unread,
Nov 29, 2007, 12:39:55 PM11/29/07
to
En news:474e716d$0$30025$426a...@news.free.fr, 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...

<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

Jérôme Collet

unread,
Nov 29, 2007, 3:14:05 PM11/29/07
to
Antoine Leca a écrit :

> En news:474e716d$0$30025$426a...@news.free.fr, 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 Settings\Jerome\Mes documents\medocamoi\compilo\bin
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 Settings\Jerome\Bureau\essaic\para>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 Settings\Jerome\Bureau\essaic\para>
>
> Merci
>
> Antoine
>

Thierry PINELLI

unread,
Nov 30, 2007, 12:38:55 AM11/30/07
to
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>

Bruno Ducrot

unread,
Nov 30, 2007, 3:40:04 AM11/30/07
to

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

unread,
Nov 30, 2007, 7:50:27 AM11/30/07
to
Bruno Ducrot a écrit :

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

0 new messages