I am very confused when it comes to use the mpi library under the Visual Studio environment.
I have several folders with mpi stuff under IntelSWTools and have no clue if I even need an additional one besides the original installation.
I tried to include the path for each of these folders to the Project Properties (Fortran, Linker etc) but nothing seems to work.
Would anyone have a straight forward way to solve this?
I am trying Intel's example and the log is below.
Many thanks!
=============================================================
!
! Copyright 2003-2013 Intel Corporation. All Rights Reserved.
!
! The source code contained or described herein and all documents
! related to the source code ("Material") are owned by Intel Corporation
! or its suppliers or licensors. Title to the Material remains with
! Intel Corporation or its suppliers and licensors. The Material is
! protected by worldwide copyright and trade secret laws and treaty
! provisions. No part of the Material may be used, copied, reproduced,
! modified, published, uploaded, posted, transmitted, distributed, or
! disclosed in any way without Intel's prior express written permission.
!
! No license under any patent, copyright, trade secret or other
! intellectual property right is granted to or conferred upon you by
! disclosure or delivery of the Materials, either expressly, by
! implication, inducement, estoppel or otherwise. Any license under
! such intellectual property rights must be express and approved by
! Intel in writing.
!
program main
use mpi
implicit none
integer i, size, rank, namelen, ierr
character (len=MPI_MAX_PROCESSOR_NAME) :: name
integer stat(MPI_STATUS_SIZE)
call MPI_INIT (ierr)
call MPI_COMM_SIZE (MPI_COMM_WORLD, size, ierr)
call MPI_COMM_RANK (MPI_COMM_WORLD, rank, ierr)
call MPI_GET_PROCESSOR_NAME (name, namelen, ierr)
if (rank.eq.0) then
print *, 'Hello world: rank ', rank, ' of ', size, ' running on ', name
do i = 1, size - 1
call MPI_RECV (rank, 1, MPI_INTEGER, i, 1, MPI_COMM_WORLD, stat, ierr)
call MPI_RECV (size, 1, MPI_INTEGER, i, 1, MPI_COMM_WORLD, stat, ierr)
call MPI_RECV (namelen, 1, MPI_INTEGER, i, 1, MPI_COMM_WORLD, stat, ierr)
name = ''
call MPI_RECV (name, namelen, MPI_CHARACTER, i, 1, MPI_COMM_WORLD, stat, ierr)
print *, 'Hello world: rank ', rank, ' of ', size, ' running on ', name
enddo
else
call MPI_SEND (rank, 1, MPI_INTEGER, 0, 1, MPI_COMM_WORLD, ierr)
call MPI_SEND (size, 1, MPI_INTEGER, 0, 1, MPI_COMM_WORLD, ierr)
call MPI_SEND (namelen, 1, MPI_INTEGER, 0, 1, MPI_COMM_WORLD, ierr)
call MPI_SEND (name, namelen, MPI_CHARACTER, 0, 1, MPI_COMM_WORLD, ierr)
endif
call MPI_FINALIZE (ierr)
end
====================================================================
Build Log
Build started: Project: ex3, Configuration: Debug|x64
Output
Linking... Link /OUT:"x64\Debug\ex3.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2017.1.143\windows\mpi\intel64\lib\<configuration>" /MANIFEST /MANIFESTFILE:"x64\Debug\ex3.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"D:\_1 - shared\_Arquivos\Alexandre\_Tecnicos\Pós-Doutorado\Exercicios MPI\ex3\ex3\ex3\x64\Debug\ex3.pdb" /SUBSYSTEM:CONSOLE /IMPLIB:"D:\_1 - shared\_Arquivos\Alexandre\_Tecnicos\Pós-Doutorado\Exercicios MPI\ex3\ex3\ex3\x64\Debug\ex3.lib" /qoffload-ldopts="-mkl=parallel""x64\Debug\test.obj" ipo: warning #11082: D:\_1 - shared\_Arquivos\Alexandre\_Tecnicos\Pós-Doutorado\Exercicios MPI\ex3\ex3\ex3\x64\Debug\test.obj: locally defined symbol __imp_MPIFCMB5 imported ipo: warning #11082: D:\_1 - shared\_Arquivos\Alexandre\_Tecnicos\Pós-Doutorado\Exercicios MPI\ex3\ex3\ex3\x64\Debug\test.obj: locally defined symbol __imp_MPIFCMB9 imported ipo: warning #11082: D:\_1 - shared\_Arquivos\Alexandre\_Tecnicos\Pós-Doutorado\Exercicios MPI\ex3\ex3\ex3\x64\Debug\test.obj: locally defined symbol __imp_MPIPRIV1 imported ipo: warning #11082: D:\_1 - shared\_Arquivos\Alexandre\_Tecnicos\Pós-Doutorado\Exercicios MPI\ex3\ex3\ex3\x64\Debug\test.obj: locally defined symbol __imp_MPIPRIV2 imported ipo: warning #11082: D:\_1 - shared\_Arquivos\Alexandre\_Tecnicos\Pós-Doutorado\Exercicios MPI\ex3\ex3\ex3\x64\Debug\test.obj: locally defined symbol __imp_MPIPRIVC imported test.obj : warning LNK4049: locally defined symbol MPIFCMB5 imported test.obj : warning LNK4049: locally defined symbol MPIFCMB9 imported test.obj : warning LNK4049: locally defined symbol MPIPRIV1 imported test.obj : warning LNK4049: locally defined symbol MPIPRIV2 imported test.obj : warning LNK4049: locally defined symbol MPIPRIVC imported test.obj : error LNK2019: unresolved external symbol MPI_INIT referenced in function MAIN__ test.obj : error LNK2019: unresolved external symbol MPI_COMM_SIZE referenced in function MAIN__ test.obj : error LNK2019: unresolved external symbol MPI_COMM_RANK referenced in function MAIN__ test.obj : error LNK2019: unresolved external symbol MPI_GET_PROCESSOR_NAME referenced in function MAIN__ test.obj : error LNK2019: unresolved external symbol MPI_RECV referenced in function MAIN__ test.obj : error LNK2019: unresolved external symbol MPI_SEND referenced in function MAIN__ test.obj : error LNK2019: unresolved external symbol MPI_FINALIZE referenced in function MAIN__ x64\Debug\ex3.exe : fatal error LNK1120: 7 unresolved externals ex3 - 8 error(s), 10 warning(s)