i hope you are doing good. i am trying to make an application using multiple CPUs connected via MPI over a network. I am able to compile my code. However i have an issues for which i seek your help through this forum.
The toolchain i am using is
Compiler XE for applications running on Intel(R) 64, Version 184.108.40.2061 Build 20120821
Copyright (C) 1985-2012 Intel Corporation.
I wish to use the intel compilers with intel MKL and intel-mpi.
This is my link line that i got from the link line advisor
-L$(MKLROOT)/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm
with compiler options
The doubts i have are as follows
1. I have a code with C and fortran (that i compile with mpif90) files. It seems that the fortran object files are 64 bit and the c object files end up being 32 bit. this however does nto produce any errors. however i do not understand how this works, could someone please explain or point me to a reading source?
thanks and regards
What are you using to compile your C code? I would recommend using mpiicc for the C code and mpiifort for the Fortran code. This will add the appropriate paths and libraries for MPI to your compile and link lines.
As to why you would have 32 bit object files from C and 64 bit object files from Fortran, if you are using the Intel compilers this should only happen if you are explicitly using the 32 bit C compiler and the 64 bit Fortran compiler. If you are using the MPI compiler scripts, use the -show argument to see the entire command line, and then use the Linux* command "which" to determine which compiler you are using. If the path contains intel64, you are using the 64 bit compiler. If the path contains ia32, you are using the 32 bit compiler.
Technical Consulting Engineer
Intel® Cluster Tools