У меня есть работающая реализация подпрограммы MPI, которая работает нормально. В процессе превращения этого в гибрид между MPI и разделяемой памятью я использую pthreads. Это в свою очередь доказало необходимость использования pthread_barriers.
Но когда я пытаюсь скомпилировать мой код с помощью компилятора mpicc, он жалуется на pthread_barrier_t и другие команды барьера. Если я удаляю их и сохраняю другие потоки, он прекрасно компилируется.
Это строка кода, которую я вставил, чтобы прервать компиляцию:
pthread_barrier_t* barrier;
А для компиляции я использую:
mpicc -lm myprogram.c -o myprogram
Ошибка, возвращаемая компилятором:
myprogram.c:34: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
Где строка 34 соответствует тому, что я написал выше.
[Edit] Я запускаю это на Ubuntu 9.10 со следующим компилятором gcc / mpicc:
gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1.
[/ Edit]
Кто-нибудь знает, что может быть не так и как я могу заставить его скомпилироваться?
Ура!