PARALLEL.RU

Дискуссионный клуб по параллельным вычислениям
Текущее время: 24 окт 18 1:57

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Компиляция на gfortran
СообщениеДобавлено: 25 фев 09 14:48 
Не в сети

Зарегистрирован: 21 дек 08 3:07
Сообщения: 22
Всем доброго времени суток.
Имеется:
-- WinXP 32bit
-- MPICH2 (last stable)
-- gfortran
Пытаюсь скомпилировать тестовый пример cpi (находится в examples mpich2) из-под cmd, не получается. Нашел как компилировать при помощи студии VS + Intel Fortan Compiler, но, студию устанавливать нет ни желания, ни возможности.
Нашел советы по использованию готовых скриптов. Но, уже дело спортивного интереса, как все-таки скомпилировать без скриптов и т.д.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция на gfortran
СообщениеДобавлено: 25 фев 09 16:22 
Не в сети

Зарегистрирован: 11 дек 02 19:37
Сообщения: 872
Откуда: НИВЦ МГУ
Как компилируете, что получаете?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция на gfortran
СообщениеДобавлено: 25 фев 09 17:10 
Не в сети

Зарегистрирован: 21 дек 08 3:07
Сообщения: 22
Компиляцию я провожу заведомо неправильно (т.е. знаю, что нужно указать дополнительные параметры с заголовочными файлами), но не знаю какие.
Компилирую:
Код:
"C:\Program Files\gfortran\bin\gfortran.exe" "C:\Program Files\MPICH2\examples\cpi.f"

Мне бы просто примерчик, какие надо передавать параметры.
Естественно вываливаются ошибки о недеклалированных константах.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция на gfortran
СообщениеДобавлено: 25 фев 09 20:40 
Не в сети

Зарегистрирован: 11 дек 02 19:37
Сообщения: 872
Откуда: НИВЦ МГУ
v01dv01ce писал(а):
Мне бы просто примерчик, какие надо передавать параметры.

Если ничего не получается, прочтите, наконец, инструкцию. (С)
Хотя бы в примеры mpich2 загляните... На предмет mpif77/mpif90. А заодно заранее прочтите как под WinXP запускать полученное приложение, не поднимайте эту тему в четвёртый раз на этом форуме :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция на gfortran
СообщениеДобавлено: 25 фев 09 20:43 
Не в сети

Зарегистрирован: 13 сен 08 18:39
Сообщения: 74
Откуда: Москва
Вообще, по-хорошему, для такой связки надо бы поставить cygwin, туда свежий gcc с фортраном и С, потом взять исходники mpich2, сконфигурить, собрать всё это и компилировать потом командой mpif90 (которой в бинарной инсталяции MPICH2 под win32 нет, насколько я помню), а не через gfortran.exe.

Иначе, если так не сделать, надо будет проявить недюжую сноровку в сборке кода ) да и модуля mpi.mod для строчки use MPI в бинарниках не идет (поэтому и лезут андиклары), а без него никак.

_________________
Дмитрий О. Коломиец.
IBM // МГУ, физфак, каф. математики.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция на gfortran
СообщениеДобавлено: 25 фев 09 21:18 
Не в сети

Зарегистрирован: 21 дек 08 3:07
Сообщения: 22
2 Serg_Zhum
Цитата:
А заодно заранее прочтите как под WinXP запускать полученное приложение, не поднимайте эту тему в четвёртый раз на этом форуме

Как запускать я знаю, и связанные с этим аспекты тоже рассмотрел. И даже удалось запустить тестовое приложение на нескольких машинах, и посмотреть влияние разных факторов.
А я хотел получить информацию, как без установки полного gcc (под Win это MinGW), а только имея в наличии gfortran, mpich2 собрать тестовое приложение.
Кст, на счет инструкций, какие именно вы имели ввиду? Может, я не туда смотрю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция на gfortran
СообщениеДобавлено: 26 фев 09 0:26 
Не в сети

Зарегистрирован: 21 дек 08 3:07
Сообщения: 22
Вот что выдает компилятор
Код:
"C:\Program Files\gfortran\bin\gfortran.exe" -I"C:\Program Files\MPICH2\include" D:\work\fortran\proba5\fpi.f
C:\DOCUME~1\моя учетная запись\LOCALS~1\Temp/ccuGy8rk.o:fpi.f:(.text+0x25): undefined reference to `_mpi_init_'
C:\DOCUME~1\моя учетная запись\LOCALS~1\Temp/ccuGy8rk.o:fpi.f:(.text+0x3f): undefined reference to `_mpi_comm_rank_'
C:\DOCUME~1\моя учетная запись\LOCALS~1\Temp/ccuGy8rk.o:fpi.f:(.text+0x59): undefined reference to `_mpi_comm_size_'
C:\DOCUME~1\моя учетная запись\LOCALS~1\Temp/ccuGy8rk.o:fpi.f:(.text+0x24e): undefined reference to `_mpi_bcast_'
C:\DOCUME~1\моя учетная запись\LOCALS~1\Temp/ccuGy8rk.o:fpi.f:(.text+0x33a): undefined reference to `_mpi_reduce_'
C:\DOCUME~1\моя учетная запись\LOCALS~1\Temp/ccuGy8rk.o:fpi.f:(.text+0x3f7): undefined reference to `_mpi_finalize_'
collect2: ld returned 1 exit status


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция на gfortran
СообщениеДобавлено: 26 фев 09 12:51 
Не в сети

Зарегистрирован: 11 дек 02 19:37
Сообщения: 872
Откуда: НИВЦ МГУ
Простите, не то выделил. "На предмет mpif77/mpif90.". Откуда gfortran узнает об MPI иначе?
Кстати, вариант с cygwin тоже хорош, но в этом случае Вам придётся на всех узлах запустить sshd, настроить беспарольный вход и установить mpich2 для cygwin.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция на gfortran
СообщениеДобавлено: 26 фев 09 18:57 
Не в сети

Зарегистрирован: 21 дек 08 3:07
Сообщения: 22
Цитата:
Откуда gfortran узнает об MPI иначе?

А разве, когда я жестко прописываю пути, напр.
Код:
"C:\Program Files\gfortran\bin\gfortran.exe" -I"C:\Program Files\MPICH2\include" -L"C:\Program Files\MPICH2\lib" "D:\work\fortran\proba5\fpi.f"

не даст gfortran-у знать об линкуемых библиотеках?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция на gfortran
СообщениеДобавлено: 26 фев 09 19:39 
Не в сети

Зарегистрирован: 13 сен 08 18:39
Сообщения: 74
Откуда: Москва
Недостаточно прописать только пути к библиотекам, нужно еще и указать самим библиотеки. Я, конечно, понимаю откуда у вас такая аналогия, типа прописал пути, набираешь команду, а экзешник система ищет сама )) Тут несколько всё по-другому, компилятор не лезет во все библиотеки подряд, чтобы найти нужную процедуру.

Вообще сначала надо хорошенько прочесть мануал к компилятору и линкеру... Это просто the must, а тут у вас пока с этим проблема, а не с MPI.

Посмотрите, если ли в MPICH2/include файл mpi.mod, если нет, то снова читаем мануал, только уже по MPICH2, и вниматально.

К сожалению, просто не получится, придется вникнуть.

_________________
Дмитрий О. Коломиец.
IBM // МГУ, физфак, каф. математики.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция на gfortran
СообщениеДобавлено: 26 фев 09 22:01 
Не в сети

Зарегистрирован: 21 дек 08 3:07
Сообщения: 22
2 kolomiec
Спасибо. Я и не ожидал, что будет что-то просто. Я ж говорю, меня просто натолкнуть на нужные маны, а я уж разберусь. Уже достаточно перелопатил по самим опциям и по компилятору. Действительно с сиситемами сборок под unix-подобные платформы не сталкивался.
Цитата:
Посмотрите, если ли в MPICH2/include файл mpi.mod

Содержимое C:\Program Files\MPICH2\include
Цитата:
02.11.2007 17:50 4 776 clog_commset.h
02.11.2007 17:50 696 clog_const.h
24.10.2008 13:07 731 clog_inttypes.h
02.11.2007 17:50 1 272 clog_uuid.h
02.11.2007 17:50 437 mpe.h
28.01.2008 15:59 11 021 mpe_log.h
02.11.2007 17:50 1 833 mpe_logf.h
02.11.2007 17:50 1 159 mpe_misc.h
24.10.2008 13:07 52 545 mpi.h
24.10.2008 13:37 2 155 mpi.mod
24.10.2008 13:07 96 491 mpicxx.h
24.10.2008 13:07 15 911 mpif.h
24.10.2008 13:07 16 765 mpio.h
24.10.2008 13:37 82 597 mpi_base.mod
24.10.2008 13:37 25 563 mpi_constants.mod
24.10.2008 13:37 7 789 mpi_sizeofs.mod
17 файлов 321 741 байт

Содержимое C:\Program Files\MPICH2\lib
Цитата:
24.10.2008 13:12 497 044 cxx.lib
24.10.2008 14:30 618 444 cxxd.lib
24.10.2008 14:31 5 522 fmpe.lib
24.10.2008 13:37 132 248 fmpich2.lib
24.10.2008 13:38 138 776 fmpich2g.lib
24.10.2008 13:39 158 326 fmpich2s.lib
24.10.2008 14:31 459 006 libfmpich2g.a
24.10.2008 14:31 437 908 libmpi.a
24.10.2008 14:31 203 714 libmpicxx.a
24.10.2008 13:36 10 618 mpe.lib
24.10.2008 13:11 128 584 mpi.lib
12 файлов 2 790 190 байт


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция на gfortran
СообщениеДобавлено: 26 фев 09 22:18 
Не в сети

Зарегистрирован: 21 дек 08 3:07
Сообщения: 22
И кст, меня очень смущает последний слэш при сборке объектного файла (см. пост от 25 фев 09 21:26), ведь нормальный win путь должен (по крайней мере по стандарту) иметь в качестве разделителя только бэкслэш.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция на gfortran
СообщениеДобавлено: 27 фев 09 13:56 
Не в сети

Зарегистрирован: 13 сен 08 18:39
Сообщения: 74
Откуда: Москва
Так, ну с инклудом всё в прядке, есть mpi.mod, это хорошо.
Слеш тоже подходит, win одинаково правильно понимает как бекслеш так и прямой и даже можно их мексовать в одной строке.

Еще важно понять... обычно фортрановские компиляторы по .f расширению считают, что это f77, а по .f90, что это f90/95, а от этого зависит, какие именно библиотеки подключать.

Надо понять, какую (одну) библиотеку под gfortran подключать из MPICH2/lib, вообще надо пользовать f95, 77 уже давно неактуален.

вот для intel fortran под линукс у меня примерно такой набор ключиков (конечно, не все из них обязательные, но просто это дает понять, сколько всего нужно учитывать, если вот так с командной строки собирать код):

IFORT_OPTIONS =
-static-intel -nologo -inline-level=2 -axT -xT -assume buffered_io -O3 -openmp -parallel -DLIGHT_CHECK -D_LINUX -D_MPI -free -stand f03 -fpp1 -openmp-report0 -par-report0 -vec-report0 -warn declarations -warn unused -warn ignore_loc -warn truncated_source -warn nousage -warn interfaces -integer-size 32 -real-size 64 -double-size 128 -names lowercase -module $(OUT_DIR)/$(COMPILED_CODE_DIR) -c -I$(INCLUDE_MPICH2)

LINK_OPTIONS =
-static-intel -o$(OUT_DIR)/darwin -I$(INCLUDE_MPICH2) -I$(OUT_DIR)/$(COMPILED_CODE_DIR) -L$(LIB_MPICH2) -L$(LIB_MKL) -lifcore -lmkl_intel_thread -lpthread -lifport -liomp5 -lmkl -lrdmacm -libverbs -libumad -lmpichf90 -lmkl_em64t

Отсюда понятно, что надо разбираться, что включать.

Вообще предлагаю поставить студию, интеловский фортран и не мучаться.

_________________
Дмитрий О. Коломиец.
IBM // МГУ, физфак, каф. математики.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция на gfortran
СообщениеДобавлено: 27 фев 09 14:59 
Не в сети

Зарегистрирован: 21 дек 08 3:07
Сообщения: 22
Да я ж еще в первом посте написал, что просто нет возможности поставить студию и использовать интеловский компилятор. По вашим ключикам попытаюсь разобраться. И потом, еще раз повторюсь, тут уже дело спортивного интереса.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция на gfortran
СообщениеДобавлено: 27 фев 09 19:51 
Не в сети

Зарегистрирован: 11 дек 02 19:37
Сообщения: 872
Откуда: НИВЦ МГУ
Неужели религия не позволяет использовать готовое средство? Прямо в самом mpich2 есть все скрипты для компиляции, которые сами пропишут все библиотеки, все include, даже линк на mpif.h сделают и сотрут потом (для F77)...
Хотя, как где-то было написано, "русский человек славится тем, что находит выход из любых безвыходных ситуаций. А ещё больше тем, что находит в них вход".


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB