У меня есть код на Фортране (program.f), и я скомпилировал его с Eclipse в \ ubuntu 16 и в Windows 7.
Конфигурация Eclipse для Ubuntu следующая:
GNU Fortran Compiler: gfortran
Include paths(-l) : /usr/lib/openmpi/include
GNU Fortran Linker : mpif90
Tool Chain Editor : GCC Fortran
Конфигурация Eclipse для Windows выглядит следующим образом:
GNU Fortran Compiler: gfortran
Include paths(-l) : C:\cygwin64\usr\include
GNU Fortran Linker : mpif90
Tool Chain Editor : GCC Fortran
Когда я запускаю программу в Ubuntu, программа работает так, как ожидается.
В Ubuntu программа выполняется с 2 процессорами, выполнив
$ mpiexec -np 2 myprogram
А поведение таково
$ mpiexec -np 2 myprogram
There are 2 processors running this job.
Rank# 1 d1= 65 d2= 128
Rank# 0 d1= 1 d2= 64
Где d1 и d2 - это части проблемной области, назначенные каждому процессору. В этом примере общее количество доменов составляет 128. Домен был назначен от 1 до 64 процессору 0 и от 65 до 128 процессору 1. Это ожидаемое поведение: модель 128 делится на 2, от 1 до 64 до процессор 0 и от 65 до 128 для процессора 1.
С другой стороны, в Windows, после компиляции кода с использованием упомянутых спецификаций, я запускаю программу, выполнив:
$ mpiexec.exe -n 2 myprogram.exe
А поведение таково
$ mpiexec -np 2 myprogram
There are 1 processors running this job.
Rank# 0 d1= 1 d2= 128
Rank# 0 d1= 1 d2= 128
Мы видим, что поведение отличается: программа, выполняемая в Windows, не работает параллельно, как ожидается. В терминале мы видим, что программа запущена на 1 процессоре, и домен назначается следующим образом: от 1 до 128 (весь домен) для процессора 0 и от 1 до 128 (снова весь домен?) Для процессора 0. Это проблема, которую я пытаюсь решить . Я пытаюсь вести себя так же, как в Ubuntu.
Программа mpiexec.exe для Windows была получена от официального установщика MS-MPI .
Библиотеки gfortran и OpenMPI для Windows были получены с использованием cygwin
Я пытался изменить компоновщик GNU и компилятор в Eclipse для Windows и не работает. Я пытался запустить код на других машинах с Windows 10, и проблема та же.
Любые предложения о том, как попытаться решить эту проблему?