Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.

MPI

chdthanh
Beginner
938 Views
Dear
Can I use MPI in Intel fortran 10.1.021 and E7200 Intel Core 2 duo? I am studying MPI and trying my first simple example but I can not link. The error is
hello.obj : error LNK2019: unresolved external symbol _MPI_INIT referenced in function _MAIN__
Thanks
Thanh
0 Kudos
7 Replies
TimP
Honored Contributor III
938 Views
If you want a pre-built MPI to work with ifort, you need Intel MPI. If using an open source MPI, you must follow their instructions to configure and build. Are you using the mpif77/mpif90/mpiifort wrapper according to your choice of MPI?
0 Kudos
chdthanh
Beginner
938 Views

Dear:
I am using Visial Studio as enrivonment for intel fortran. I am studying MPI by myself so I do not understand what you said about ifort, mpif70.. Are they commands in Unix OS?
Can I study and practice MPI on my destop computer? If can, what should I need?
What is pre-build?
My fisrt example is

program hello

include 'mpif.h'

integer rank, size, ierror

call MPI_INIT(ierror)

call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror)

call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror)

print *, 'I am MPI process', rank, ' of ', size

call MPI_FINALIZE(ierror)

end



Many thanks
0 Kudos
TimP
Honored Contributor III
938 Views
If you made any study of MPI, you would have seen that many popular MPI implementations are open source, even for running on Windows. This means you must read up on them, configure and compile them according to instructions. All MPI versions provide compiler wrappers which translate the MPI macros and link the MPI libraries automatically, once you have configured them correctly. Guesswork won't do. You can't expect intelligent answers about specific implementations if you don't divulge which one you are using.
For Windows, the primary recommended MPI implementations might be Argonne MPICH2 (which does include a packaged GUI installer), Intel MPI (a command line install, license fee after 30 days), and OpenMPI (must build it yourself). All of those work independently of Visual Studio. If you want the MPI which is tied to Windows Server, and want to go to the additional effort, there is Microsoft HPC 2008, but the expected financial investment seems inconsistent with self-study.
Questions about Intel MPI are appropriate on the HPC forum, even though it has been dealing mainly with linux.
0 Kudos
chdthanh
Beginner
938 Views
Thanks Tim. I could rum my first simple example as I use Argonne MPICH2
0 Kudos
kiran_s_
Beginner
938 Views

hi,

i have tried to install mpi in java by using mpiJava-1.2.5x.tar but wont compile. gives error of mpich1.2.1 installed path but i am using intel cluster studio so i guess i dont need mpich library.

please anybody having any idea regarding this please suggest me.

0 Kudos
TimP
Honored Contributor III
938 Views

If anyone knows of efforts with Java and Intel MPI, you should get an answer on the HPC/Cluster forum. Easily searchable information indicates that most Windows Java MPI work has been carried out with specific non-Intel MPI implementations e.g.

http://stackoverflow.com/questions/20397750/mpi-java-under-windows

0 Kudos
Brouwer__Wout
Beginner
938 Views

Hello,

 Bit of a long story with a cry for help at the end.

  The usual scenario for running an MPI application from within an existing application is to build a script with the relevant commands (mpdboot, mpiexec , mpdallexit) and to run that script (e.g. using execve). The results from the mpi application data/messages can then be retrieved and used in the calling application. The limitation of this model is that the calling application isn't part of the MPI ring and as such can't use MPI message passing to send info to/from the MPI application.  One could obviously set up some other sort of communication channel between e.g. the rank 0 process and the calling process but that is a quite elaborate.

  We successfully implemented a model where the existing application first runs mpdboot  but instead of  launching a script with the mpiexec commands uses MPI_Comm_Spawn_multiple() to launch the (other) mpi tasks and uses MPI_Intercom_Merge() all the tasks into a single group.

 All worked well until we changed the communication fabric from tcp to afo  by setting I_MPI_FABRICS to shm:ofa. Whilst this works perfectly well when we run the mpi application on it's own (launched using a script) this caused MPI_Init() to fail when called from the existing application.  To cut a long story short it appears that this issue is caused by the existing application not being launched by mpiexec.

 We've tried to simulate the environment in which mpiexec launches a process but have not been able to resolve this issue. Has anybody been successful in using  the "ofa" fabric from an MPI process that wasn't launched using mpiexec?

Any hints would be welcome.

Tnx
Wout

 

 

 

 

0 Kudos
Reply