Hi,I reinstalled/upgraded the operating system on my desktop (now it is Kubuntu 
12.04 64 bit) and installed the newest set of intel compilers (ver. 12.1.3 ). 
Then I built OpenMPI with that set of intel compilers. Everything seems to be 
fine and I can compile my fortran+MPI code with no problem when I invoke ifort. 
I should say that I do not actually invoke the "wrapper" mpi compiler. I 
normally just add flags as MPICOMPFLAGS=$(shell mpif90 --showme:compile) and 
MPILINKFLAGS=$(shell mpif90 --showme:link) in my makefile. I know it is not the 
recommended way of doing things but the reason I do that is that I absolutely 
need to be able to use different fortran compilers to build my fortran code. So 
far I never had problems using gfortran even though my OpenMPI build is always 
done with intel compilers. There seemed to be compatibility. However, after the 
last upgrade of the OS and compilers I can no longer do that. When I use 
gfortran (ver. 4.6.3) I get messages such as:
debug/main.o: In function 
`MAIN__':/home/bubin/fp/pectus_prototype/./src/main.f90:6: undefined reference 
to `mpi_init_'/home/bubin/fp/pectus_prototype/./src/main.f90:7: undefined 
reference to `mpi_comm_rank_'/home/bubin/fp/pectus_prototype/./src/main.f90:8: 
undefined reference to 
`mpi_comm_size_'/home/bubin/fp/pectus_prototype/./src/main.f90:12: undefined 
reference to 
`omp_get_max_threads_'/home/bubin/fp/pectus_prototype/./src/main.f90:13: 
undefined reference to 
`omp_get_num_procs_'/home/bubin/fp/pectus_prototype/./src/main.f90:19: 
undefined reference to `mpi_finalize_'
I also tried to use the fortran compiler (f95) from the latest Solaris Studio 
(ver 12.3) together with OpenMPI (which was again built with intel) and I do 
not have that problem there. The version of OpenMPI source that I have is 1.4.3 
(I also tried 1.4.5 - same result) 
Thus, I can compile my code with ifort or solaris studio f95, but not gfortran. 
As I said I never had this problem before (have used ubuntu + ifort + gfortran 
+ sun/solaris studio for several years on my desktop computers). I wonder if 
there is an easy solution here, such as some compiler flags for gfortran that 
force compatibility. Or, perhaps, I need to rebuild OpenMPI with some other 
flags. I tried to google something useful but did not find anything that would 
help me.
One potential solution to my problem, I imagine, would be to build OpenMPI 
separately with intel compilers and gnu compilers (in fact it is already 
prebuilt with gnu compilers by the ubuntu team) and then use one of those 
builds depending on the fortran compiler for my code. However, that will create 
inconvenience because I normally use Netbeans or Solaris Studio and switch 
configurations while working in there (each configuration has its own set of 
parameters for the makefile; one of the parameter accepted by the makefile is 
the compiler type -- intel, gnu, or solaris).
Any help would be appreciated.Sergiy                                            
  

Reply via email to