Problemas ao compilar com o openmpi após a atualização para v 1.10

1

Eu tenho usado o openmpi para desenvolver aplicações paralelas fortran90 por um tempo. Eu costumo instalar a versão padrão do openmpi para desenvolvedores a partir dos repositórios e funciona fora da caixa. Eu fiz isso e funcionou quando eu primeiro instalei o Ubuntu16.04 na minha máquina local.

No entanto, acho que o openmpi foi atualizado e meus programas não serão mais compilados. Eu tentei em outras máquinas que usam versões mais antigas (libopenmpi-dev 1.6) e funciona. Parece que o compilador não reconhece sub-rotinas básicas como MPI_RECV (..).

Por exemplo, este pequeno trecho de código não é compilado em minha máquina local, mas não há problema em outro com o openmpi1.6.

program main
   use mpi
   implicit none
   integer :: ierr,np,myid,i,rbuf
   integer, dimension(:,:), allocatable :: ista

   CALL MPI_INIT(ierr)

   CALL MPI_COMM_RANK(MPI_COMM_WORLD,myid,ierr) 

   CALL MPI_COMM_SIZE(MPI_COMM_WORLD,np,ierr) 


   allocate(ista(MPI_STATUS_SIZE,np))


   if (myid==0) then
         do i = 1, np-1
            CALL MPI_RECV(rbuf,1,MPI_INTEGER4,i,i,MPI_COMM_WORLD,ista,ierr)
            write(*,"('process ',i2,' sent:',i2)") i,rbuf
         end do
   else
         i=10*myid
         CALL MPI_SEND(i,1,MPI_INTEGER4,0,myid,MPI_COMM_WORLD,ierr)
   end if

   CALL MPI_FINALIZE(ierr)


end program main

Compilar isso usando mpif90 me dá o seguinte erro:

 main.f90:19:75:

             CALL MPI_RECV(rbuf,1,MPI_INTEGER4,i,i,MPI_COMM_WORLD,ista,ierr)
                                                                           1
Error: There is no specific subroutine for the generic ‘mpi_recv’ at (1)

Alguém sabe o que isso poderia ser?

Muito obrigado antecipadamente

    
por Rafael Perez-Torro 11.12.2016 / 19:41

0 respostas