Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] Confused on simple MPI/OpenMP program
From: Ed Blosch (eblosch_at_[hidden])
Date: 2013-04-09 09:03:06


I figured it out.

In the real application, I also did not have the 'use' statement, and there
was an IMPLICIT statement causing the omp_get_max_threads() function to be
automatically compiled as a real function instead of as integer, and the
integers were automatically promoted to 8-byte using -i8.

Once I added the 'use omp_lib' statement, the compiler caught the mis-match.

Just to verify, I did add the 'use omp_lib' statement and ran the test
program by itself. I do get '4' as expected regardless of whether or not I
run the program under MPI.

So there is no OpenMPI-related issue. I thought it was OpenMPI-related
because, after commenting out the MPI calls, I got the right answer. But
this was probably just a coincidence.

Thanks,

Ed

I did not have the 'use' statement.

-----Original Message-----
From: users-bounces_at_[hidden] [mailto:users-bounces_at_[hidden]] On
Behalf Of Reuti
Sent: Thursday, April 04, 2013 7:13 AM
To: Open MPI Users
Subject: Re: [OMPI users] Confused on simple MPI/OpenMP program

Hi,

Am 04.04.2013 um 04:35 schrieb Ed Blosch:

> Consider this Fortran program snippet:
>
> program test

use omp_lib
include 'mpif.h'

might be missing.

> ! everybody except rank=0 exits.
> call mpi_init(ierr)
> call mpi_comm_rank(MPI_COMM_WORLD,irank,ierr)
> if (irank /= 0) then
> call mpi_finalize(ierr)
> stop
> endif
>
> ! rank 0 tries to set number of OpenMP threads to 4 call
> omp_set_num_threads(4) nthreads = omp_get_max_threads() print*,
> "nthreads = ", nthreads
>
> call mpi_finalize(ierr)
>
> end program test
>
> It is compiled like this: 'mpif90 -o test -O2 -openmp test.f90'
> (Intel
> 11.x)
>
> When I run it like this: mpirun -np 2 ./test
>
> The output is: "nthreads = 0"
>
> Does that make sense? I was expecting 4.
>
> If I comment out the MPI lines and run the program serially (but still
> compiled with mpif90), then I get the expected output value 4.

Nope, for me it's still 0 then.

-- Reuti

> I'm sure I must be overlooking something basic here. Please enlighten me.
> Does this have anything to do with how I've configured OpenMPI?
>
> Thanks,
>
> Ed
>
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users

_______________________________________________
users mailing list
users_at_[hidden]
http://www.open-mpi.org/mailman/listinfo.cgi/users