и теперь я получаю ожидаемый результат. Извините за путаницу, но я новичок в этом. И спасибо за помощь!

аюсь установить OpenMPI на мою машину с Ubuntu (14.04), и я подумал, что у меня все получилось, потому что я могу запускать коды сmpirun, но недавно я заметил, что он не работает параллельно.

Я установилopenmpi со следующими параметрами:

./configure CXX=g++ CC=gcc F77=gfortran \
                           F90=gfortran  \
                            FC=gfortran   \
         --enable-mpi-f77 \
         --enable-mpi-f90  \
         --prefix=/opt/openmpi-1.6.5
make all
sudo make install

Как я уже сказал, я запустил код (не написанный сам), и он, казалось, работал параллельно, потому что я проверил сtop и он работал в нескольких узлах.

Но теперь я написал простой код на Фортране:

PROGRAM hello_MPI
  INCLUDE "mpif.h"
  INTEGER :: err, size, rank
  CALL MPI_INIT(err)
  IF (err /= MPI_SUCCESS) STOP 'Init failed'
  CALL MPI_COMM_RANK(MPI_COMM_WORLD, rank, err)
  CALL MPI_COMM_SIZE(MPI_COMM_WORLD, size, err)
  PRINT*, "Hello world from process ", rank, " of ", size, " processes"
  CALL MPI_FINALIZE(err)
END PROGRAM

Но когда я запускаю его с

mpirun -n 4 ./hello_MPI

Я получаю один и тот же вывод 4 раза, показывая, что он просто запускает один и тот же процесс на 4 разных процессорах

 Hello world from process            0  of            1  processes
 Hello world from process            0  of            1  processes
 Hello world from process            0  of            1  processes
 Hello world from process            0  of            1  processes

Я запустил этот код на другой машине и получил ожидаемый результат:

 Hello world from process            0  of            4  processes
 Hello world from process            1  of            4  processes
 Hello world from process            2  of            4  processes
 Hello world from process            3  of            4  processes

Ответы на вопрос(1)

Ваш ответ на вопрос