ifc 7.0 and mpich-1.2.5 problems.

ifc 7.0 and mpich-1.2.5 problems.

Portrait de sdx1

Hi,

I installed ifc 7.0(with the latest patches) on a dual Pentium IV(Xeons) running on Kernel 2.4.18-3smp
with glibc-2.2.5-34
I compiled mpich 1.2.5 from http://www-unix.mcs.anl.gov/mpi/mpich/
with configure options
./configure --enable-f90modules --prefix=/apps/mpich-1.2.5ifc -cc=icc -fc=ifc -f90=ifc -c++=icc -rsh=ssh --enable-sharedlib
I compiled and did the testing.
All the tests pass excepts for f90
It fails for examples/basic/pi3f90.f90

mpif90 -c pi3f90.f90
program MAIN
ifc: error: Fatal error in /apps/intel/compiler70/ia32/bin/f90com, terminated by segmentation violation
compilation aborted for pi3f90.f90 (code 1)
make[1]: *** [pi3f90.o] Error 1
make: *** [default] Error 2

All the other codes(C,C++,F77) work fine except for any F90/F95 codes.

Any help will be apreciated.
-VG

6 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.
Portrait de Steve Lionel (Intel)

I suggest trying it with 7.1, which is the current version.

Steve

Steve
Portrait de Ning Wang (Intel)

This is not the version problem of ifc.

To fix this ,edit the source code of pi3f90.f90
change the code "use mpi" to "include 'mpif.h' "

it will ok!

Portrait de tangsk@astro.umass.edu

Hi,
I also meet this problem. If I keep "use mpi", I got the following error message:
examples% mpif90 -c pi3f90.f90
program MAIN
Error FCE37 : Module MPI not found

f(a) = 4.d0 / (1.d0 + a*a)
^
Comment 18 at (31:pi3f90.f90) : The statement function is obsolescent in Fortran 95

sum = sum + f(x)
^
Comment 18 at (60:pi3f90.f90) : The statement function is obsolescent in Fortran 95

1 Error
compilation aborted for pi3f90.f90 (code 1)

While if I use "include 'mpi.h'", I got the following error message:
examples% mpif90 pi3f90.f90
program MAIN

integer*8 MPI_DISPLACEMENT_CURRENT
^
Warning 2 at (248:mpif.h) : Type size specifiers are an extension to standard Fortran 95

f(a) = 4.d0 / (1.d0 + a*a)
^
Comment 18 at (31:pi3f90.f90) : The statement function is obsolescent in Fortran 95

sum = sum + f(x)
^
Comment 18 at (60:pi3f90.f90) : The statement function is obsolescent in Fortran 95

346 Lines Compiled
pi3f90.o(.text+0x1b): In function `main':
: undefined reference to `mpi_init_'
pi3f90.o(.text+0x32): In function `main':
: undefined reference to `mpi_comm_rank_'
pi3f90.o(.text+0x49): In function `main':
: undefined reference to `mpi_comm_size_'
pi3f90.o(.text+0x153): In function `main':
: undefined reference to `mpi_bcast_'
pi3f90.o(.text+0x1fb): In function `main':
: undefined reference to `mpi_reduce_'
pi3f90.o(.text+0x28b): In function `main':
: undefined reference to `mpi_finalize_'

It seems that some PATH isn't right. But How to solve this problem? Thanks!

Portrait de Tim Prince

In examples which I have in front of me:

Compiling is done with the mpich include path made explicit:

ifc -I/mpich/include *.f

Where ifc is used as the link command for an mpich build, the libraries are specified explicitly e.g.:

ifc *.o -L/mpich/lib -lfmpich -lmpich

I am more used to lam-mpi, where the mpif77 and mpif90 commands are built with ifc and a specific path to the installation (specified in .configure) and carry inside them the information about mpi library paths. If you don't have the paths built into mpif90, or chose not to use it as the link command, you surely will need to specify the paths.

Portrait de tangsk@astro.umass.edu

I found out the path problem. But it seems that the function MPI_Wtime() doesn't work for.
mpif90 -o flash2 Cosmology.o .......... -L /usr/local/lib -lhdf5
flash.o(.text+0x1f): In function `main':
: undefined reference to `mpi_wtime_'
flash.o(.text+0x2d9): In function `main':
: undefined reference to `mpi_wtime_'
init_flash.o(.text+0x229): In function `init_flash_':
: undefined reference to `mpi_wtime_'
output.o(.text+0x2d9): In function `output_':
: undefined reference to `mpi_wtime_'
output.o(.text+0x420): In function `output_':
: undefined reference to `mpi_wtime_'
output.o(.text+0x51b): more undefined references to `mpi_wtime_' follow
make[1]: *** [flash2] Error 1
make[1]: Leaving directory `/usr/local/flash/sources/FLASH2.3/object'
make: *** [default] Error 2

Other mpi_(functions) are ok.

Connectez-vous pour laisser un commentaire.