bug, parse error

bug, parse error

I'm trying to compile a program that works fine in a cluster but when I try to compile it
in a new machine that I have (in fact, a gpu machine) the following error arises:

Use mpi
Fatal Error: Parse error when checking module version for file 'mpi.mod' opened at (1)
make[1]: *** [prog] Error 1
make[1]: Leaving directory `/home/jivifair/gpuparallel'
make: *** [all] Error 2

Some people at the university claimed that I don't need to use open mpi for this kind
of machine and for what I have seen this error is related with the version installed.
Is that correct? How can I fix this error?

Greetings and thanks!

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

You're not using Intel Fortran for that compile - probably gfortran, and I'd guess it is finding an Intel .mod and (reasonably) complaining.  Make sure that you use consistent compilers.

Retired 12/31/2016

but if I type

[jivifair@titan-gpu gpuparallel]$ ifort -v
ifort version 12.1.3

and my Makefile contains

include /usr/local/cula/examples/common/common.mk

TARGET          = kEmbEns
OBJS            = mod_DefineKind.o mod_IniciaMPI.o mod_Params.o mod_BosonOp.o mod_random.o \
            mod_SubsRMT.o hqrii1c.o mod_SpFluc.o #mod_diag.o
SOURCE = mod_DefineKind.f90 mod_IniciaMPI.f90 mod_Params.f90 mod_BosonOp.f90 mod_random.f90 \
            mod_SubsRMT.f90 hqrii1c.f mod_SpFluc.f90 #mod_diag.f90

LIBS=-lcula_core -lcula_lapack -lcula_lapack_fortran -lcublas -lcudart -llapack

# Lo siguiente es necesario si se compila con ifort (sin mpif90) (version mas o menos minimalista)
MPI_OBJS        = -I/usr/local/include -I/usr/local/lib

MPI_LIBS        = -L/usr/local/lib -lmpi_f90 -lmpi_f77 -lmpi -lopen-rte -lopen-pal -llibopen-pal -lutil \
# Compiladores
#F90                    = gfortran $(MPI_OBJS) $(MPI_LIBS)
#F90                     = ifort $(MPI_OBJS) $(MPI_LIBS)
F90                    = mpif90
F90FLAGS        = -O3 # -mpe=mpicheck
LD                              = $(F90) $(F90FLAGS)

        make  objetos
        make  prog
        #make -s run
        $(F90) $(F90FLAGS) -c $(SOURCE)
        $(LD) $(OBJS) $(MODULES) $(TARGET).f90 -m64 -o $(TARGET).x -llapack -lblas $(CFLAGS) $(INCLUDES) $(LIBPATH64) $(LIBS)
        rm *.o *.mod *.x


If I compile with
F90                    = mpif90
I get this error that I posted, but if I compile with
F90                     = ifort $(MPI_OBJS) $(MPI_LIBS)
I get a bunch of errors :S

Your "mpif90" definition is invoking gfortran. When using ifort, make sure you are using an MPI distribution built for ifort.  It sounds to me as if you are using a gfortran version.

Retired 12/31/2016

Leave a Comment

Please sign in to add a comment. Not a member? Join today