problem to generate mm5.mpp

Hi, I have a cluster with 8 intel xeon processor to 3.16 Ghz, with red hat enterpriser linux v. 5 cluster and pgi 8.0(32 and 64 bits but i use 32) and the cluster is a x86-64. The problem is when a run make mpp appear this:

/usr/local/mpich/bin/mpicc  -c -I../../MPP -I../../MPP/RSL -I../../pick -I../../MPP/debug -I../../MPP/RSL/RSL -DMPP1 -DIOR=2 -DIWORDSIZE=4 -DRWORDSIZE=4 -DLWORDSIZE=4 -DASSUME_HOMOGENEOUS_ENVIRONMENT=1 -debug -DMPI -I/usr/local/mpich/include milliclock.c
/usr/local/mpich/bin/mpif90 -o mm5.mpp addall.o addrx1c.o addrx1n.o bdyin.o bdyrst.o bdyten.o bdyval.o cadjmx.o coef_diffu.o condload.o consat.o convad.o couple.o date.o dcpl3d.o dcpl3dwnd.o decouple.o define_comms.o diffu.o dm_io.o dots.o dtfrz.o fillcrs.o fkill_model.o gamma.o gauss.o hadv.o init.o initsav.o initts.o kfbmdata.o kill_model.o lb_alg.o lbdyin.o mhz.o mm5.o mp_equate.o mp_initdomain.o mp_shemi.o mparrcopy.o mpaspect.o nconvp.o nudge.o output.o outsav.o outtap.o outts.o outts_c.o param.o paramr.o rdinit.o rho_mlt.o savread.o settbl.o setvegfr.o sfcrad.o shutdo.o slab.o solar1.o solve.o sound.o subch.o trans.o transm.o upshot_mm5.o vadv.o vecgath.o write_big_header.o write_fieldrec.o write_flag.o                                exmoiss.o                                cup.o cupara3.o maximi.o minimi.o              heipre.o maxim.o minim.o moiene.o precip.o zunc.o   cloudws.o entrs.o kerhels.o shallcu.o shallow.o araouts.o      mrfpbl.o tridi2.o                    initnest.o chknst.o                  nstlev1.o nstlev2.o nstlev3.o                  mp_stotndt.o smt2.o bcast_size.o                  merge_size.o mp_feedbk.o                  rdter.o            lwrad.o swrad.o            milliclock.o ../../MPP/RSL/RSL/librsl.a -O2 -Mcray=pointer -mp -Mnoframe -Mbyteswapio -Mnosgimp -L/usr/local/mpich/lib -lfmpich -lmpich
/usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in ../../MPP/RSL/RSL/librsl.a(rsl_malloc.o)
/lib/libc.so.6: could not read symbols: Bad value
make[1]: [all] Error 2 (no tiene efecto)
/bin/mv mm5.mpp ../../Run/mm5.mpp

I succesfully configure mpich2 with fortran using 32 bits:

env CFLAGS="-O2 " CXXFLAGS="-O2" FFLAGS="-O2 " F90FLAGS="-O2 " LDFLAGS="-O2 " OPTFLAGS="-O2 " CC="pgcc" CXX="pgCC" F90="pgf90" FC="pgf77" CPP="pgCC -E" ./configure --prefix=/path/to/install/dir

the configure.user in mm5 have this:

RUNTIME_SYSTEM = "linux"
MPP_TARGET=$(RUNTIME_SYSTEM)
# edit the following definition for your system
LINUX_MPIHOME = /usr/local/mpich
##LINUX_MPIHOME = /usr/local/lam_intel
MFC = $(LINUX_MPIHOME)/bin/mpif90
MCC = $(LINUX_MPIHOME)/bin/mpicc
MLD = $(LINUX_MPIHOME)/bin/mpif90
##FCFLAGS = -O3 -convert big_endian -pc32 -axT
FCFLAGS = -O2 -Mcray=pointer -mp  -Mnoframe -Mbyteswapio -Mnosgimp
##LDOPTIONS = -O3 -convert big_endian -pc32 -axT
LDOPTIONS = -O2 -Mcray=pointer -mp -Mnoframe -Mbyteswapio -Mnosgimp
##LOCAL_LIBRARIES = -L$(LINUX_MPIHOME)/lib -llamf77mpi -lmpi -llam
##LOCAL_LIBRARIES = -L$(LINUX_MPIHOME)/lib -llamf77mpi -lmpi -llam
LOCAL_LIBRARIES = -L$(LINUX_MPIHOME)/lib -lfmpich -lmpich
MAKE = make -i -r
AWK = awk
SED = sed
CAT = cat
CUT = cut
EXPAND = expand
M4 = m4
CPP = /lib/cpp -C -P -traditional
CPPFLAGS = -DMPI -Dlinux -DSYSTEM_CALL_OK
CFLAGS = -debug -DMPI -I$(LINUX_MPIHOME)/include
ARCH_OBJS =  milliclock.o
IWORDSIZE = 4
RWORDSIZE = 4
LWORDSIZE = 4

somebody have idea to resolve this problem or some one want to give me a advice to modify mi configure.user.

best regards.
Joe

cuestion:
if i use /usr/local/mpich/bin/mpif77 i have a lot of errors, do you know how to resolve this.

some errors:

/usr/local/mpich/bin/mpicc  -c -I/usr/local/mpich/include -DMPI -DRSL_SYNCIO -Dlinux -DSWAPBYTES -O -I/usr/pgi/linux86/lib -lfmpich -lmpich  -DIMAX_MAKE= -DJMAX_MAKE= -DMAXDOM_MAKE=5 -DMAXPROC_MAKE=256 -DHOST_NODE=0 -DMON_LOW=1 -DALLOW_RSL_168PT=1  period_def.c
period_def.c(79): warning #266: function "rsl_fatal" declared implicitly
    RSL_TEST_ERR( i == RSL_MAXDESCRIPTORS,



/usr/local/mpich/bin/mpif77 -c -O -byteswapio mpi_init_f.F
/usr/local/mpich/bin/mpif77: line 298: /opt/intel/fc/10.0.023/bin/ifc: No existe el fichero o el directorio
make[2]: [mpi_init_f.o] Error 127 (no tiene efecto)
/usr/local/mpich/bin/mpicc  -c -I/usr/local/mpich/include -DMPI -DRSL_SYNCIO -Dlinux -DSWAPBYTES -O -I/usr/pgi/linux86/lib -lfmpich -lmpich  -DIMAX_MAKE= -DJMAX_MAKE= -DMAXDOM_MAKE=5 -DMAXPROC_MAKE=256 -DHOST_NODE=0 -DMON_LOW=1 -DALLOW_RSL_168PT=1  debug.c
debug.c(63): warning #1193: standard requires that parameter "j" be given a type by a subsequent declaration ("int" assumed)
  dumdebug(j)
           ^

/usr/local/mpich/bin/mpif77 -c -O -byteswapio vicopy.F
/usr/local/mpich/bin/mpif77: line 298: /opt/intel/fc/10.0.023/bin/ifc: No existe el fichero o el directorio
make[2]: [vicopy.o] Error 127 (no tiene efecto)
ar cr librsl.a set_padarea.o set_f_padarea.o domain_def.o within_nest.o mesh_topo.o decomp.o show_decomp.o rsl_new_decom.o rsl_nl.o rsl_initial.o rsl_malloc.o index.o border.o pt.o proc.o proc_f.o buf_for_proc.o message_def.o stencil_def.o comp_sten.o pack_message.o exch_sten.o rsl_probe.o comp_cells_f.o comp_cells.o fort_realread.o fort_intread.o fort_complexread.o fort_characterread.o fort_close.o fort_realwrite.o fort_intwrite.o fort_complexwrite.o fort_characterwrite.o rsl_funit_close.o fort_bdyin_real.o rsl_io.o rsl_ioserve.o rsl_init_f.o rsl_mm_io.o handle_spec1.o handle_spec2.o handle_spec3.o rsl_bcast.o rsl_bcast_f.o rsl_merge.o rsl_merge_f.o rsl_order.o rsl_move.o rsl_debug.o rsl_mon_bcast.o rsl_fopen_f.o rsl_fclose_f.o rsl_socket.o comp_slabs.o comp_slabs_f.o destroy_list.o comp_world.o cd.o rsl.o default_decomposition.o rsl_child_info.o get_bdy_info.o rsl_remap_state.o patchmap.o boundary_safe.o fill_boundary.o process_refs.o rsl_error_dup.o fort_doubleread.o  fort_doublewrite.o fort_bdyin_dbl.o comp_period.o exch_period.o period_def.o period_refs.o rsl_hemiforce.o comp_xpose.o xpose_def.o xpose.o rsl_mpi_compat.o mpi_init_f.o debug.o fort_doubleread.o fort_doublewrite.o rsl_error_dup.o fort_bdyin_dbl.o vicopy.o
ar: set_f_padarea.o: No such file or directory
make[2]: [librsl.a] Error 1 (no tiene efecto)
ranlib librsl.a
ranlib: 'librsl.a': No such file
make[2]: [librsl.a] Error 1 (no tiene efecto)

Hi inda,

I don’t think the MPICH2 you’re using is configured to use the PGI compilers. The warning message from mpicc is not in a PGI format (it looks like gcc or icc) and the mpif77 error is that Intel’s fortran compiler can’t be found.

Double check that the MPICH2 library you have installed in /usr/local/mpich is the same one you built using the PGI compilers. If you did use the exact MPICH2 configure command you have listed above then you forgot to change the “–prefix=/path/to/install/dir” to the path to the install directory (i.e. /usr/local/mpich). To fix this, you need to rerun configure with the corrected prefix and then rerun ‘make install’.

As for the non-TLS error, I have not seen this before. However, I think it should go away once you use the PGI build MPICH library.

  • Mat

Ok Mat i’m going to explain what to do at this moment:

1.- tar -xvf mpich2-1.0.8.tar
2.- cd /home/jose/mpich2/mpich2-1.0.8
3.-

env CFLAGS="-O2" CXXFLAGS="-O2" FFLAGS="-O2" F90FLAGS="-O2" LDFLAGS="-O2" OPTFLAGS="-O2" CC="pgcc" CXX="pgCC" F90="pgf90"         	FC="pgf77" CPP="pgCC -E" ./configure --prefix=/usr/local/mpich2

4.-make 2>&1 | tee make.log (in this file i dont have error and the last line appear Make completed)
5.-make install 2>&1 | tee install.log
6.-all this create /usr/local/mpich2, the bin directory have this:

check_callstack  mpdallexit.py   mpdhelp.py      mpdrun.py      mpif77
clog2_join       mpdboot         mpdkilljob      mpdsigjob      mpif90
clog2print       mpdboot.py      mpdkilljob.py   mpdsigjob.py   mpirun
clog2_print      mpdcheck        mpdlib.py       mpdtrace       mpirun.py
clog2_repair     mpdcheck.py     mpdlistjobs     mpdtrace.py    parkill
clog2TOslog2     mpdchkpyver.py  mpdlistjobs.py  mpecc.in       slog2filter
clogprint        mpdcleanup      mpdman.py       mpefc.in       slog2navigator
clogTOslog2      mpdcleanup.py   mpd.py          mpicc          slog2print
jumpshot         mpdexit         mpdringtest     mpich2version  slog2updater
logconvertor     mpdexit.py      mpdringtest.py  mpicxx
mpd              mpdgdbdrv.py    mpdroot         mpiexec
mpdallexit       mpdhelp         mpdrun          mpiexec.py

7.- go to MM5, my configure.user have this:

RUNTIME_SYSTEM = "linux"
MPP_TARGET=$(RUNTIME_SYSTEM)
LINUX_MPIHOME = /usr/local/mpich2
MFC = $(LINUX_MPIHOME)/bin/mpif77
MCC = $(LINUX_MPIHOME)/bin/mpicc
MLD = $(LINUX_MPIHOME)/bin/mpif77
FCFLAGS = -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio
LDOPTIONS = -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio
LOCAL_LIBRARIES = -L$(LINUX_MPIHOME)/lib -lfmpich -lmpich
MAKE = make -i -r
AWK = awk
SED = sed
CAT = cat
CUT = cut
EXPAND = expand
M4 = m4
CPP = /lib/cpp -C -P -traditional
CPPFLAGS = -DMPI -Dlinux -DSYSTEM_CALL_OK
CFLAGS = -DMPI -I$(LINUX_MPIHOME)/include
ARCH_OBJS =  milliclock.o
IWORDSIZE = 4
RWORDSIZE = 4
LWORDSIZE = 4

8.-make mpp
9.-and finally i have three errors:

1.-    parsing diffintp.b
/tmp/aaa.13286: type warning: possibly incompatible types. cannot coerce unknown and integer  on line 515.  Ident = max
/tmp/aaa.13286: type warning: possibly incompatible types. cannot coerce unknown and integer  on line 548.  Ident = min
finished parsing diffintp.b
m4 ../../MPP/RSL/LMexp.m4 diffintp.dm | sed '/^$/d' | /lib/cpp -C -P -traditional  -I../../MPP -I../../MPP/RSL -I../../pick -I../../MPP/debug -I../../MPP/RSL/RSL | ../../MPP/col_cutter >diffintp.f
/usr/local/mpich2/bin/mpif77 -c -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio diffintp.f 2> diffintp.lis
make[1]: [diffintp.o] Error 2 (no tiene efecto)

2.-  parsing init.b
finished parsing init.b
m4 ../../MPP/RSL/LMexp.m4 init.dm | sed '/^$/d' | /lib/cpp -C -P -traditional  -I../../MPP -I../../MPP/RSL -I../../pick -I../../MPP/debug -I../../MPP/RSL/RSL | ../../MPP/col_cutter >init.f
/usr/local/mpich2/bin/mpif77 -c -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio init.f 2> init.lis
make[1]: [init.o] Error 2 (no tiene efecto)
echo init.b init.dm init.f
init.b init.dm init.f

3.- PGC/x86 Linux 8.0-4: compilation completed with warnings
/usr/local/mpich2/bin/mpif77 -o mm5.mpp addall.o addrx1c.o addrx1n.o bdyin.o bdyrst.o bdyten.o bdyval.o cadjmx.o coef_diffu.o condload.o consat.o convad.o couple.o date.o dcpl3d.o dcpl3dwnd.o decouple.o define_comms.o diffu.o diffth.o diffthd.o diffmoi.o diffintp.o dm_io.o dots.o dtfrz.o fillcrs.o fkill_model.o gamma.o gauss.o hadv.o init.o initsav.o initts.o kfbmdata.o kill_model.o lb_alg.o lbdyin.o mhz.o mm5.o mp_equate.o mp_initdomain.o mp_shemi.o mparrcopy.o mpaspect.o nconvp.o nudge.o output.o outsav.o outtap.o outts.o outts_c.o param.o paramr.o rdinit.o rho_mlt.o savread.o settbl.o setvegfr.o sfcrad.o shutdo.o slab.o solar1.o solve.o sound.o subch.o trans.o transm.o upshot_mm5.o vadv.o vadv2.o vecgath.o write_big_header.o write_fieldrec.o write_flag.o                                exmoiss.o                                              cup.o cupara3.o maximi.o minimi.o               heipre.o maxim.o minim.o moiene.o precip.o zunc.o   cloudws.o entrs.o kerhels.o shallcu.o shallow.o araouts.o      mrfpbl.o tridi2.o                    initnest.o chknst.o                  nstlev1.o nstlev2.o nstlev3.o nstlev4.o nstlev5.o                  mp_stotndt.o smt2.o bcast_size.o                  merge_size.o mp_feedbk.o                  rdter.o            lwrad.o swrad.o            milliclock.o ../../MPP/RSL/RSL/librsl.a -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio -L/usr/local/mpich2/lib -lfmpich -lmpich
/usr/bin/ld: diffintp.o: No such file: No such file or directory
make[1]: [all] Error 2 (no tiene efecto)
/bin/mv mm5.mpp ../../Run/mm5.mpp

in my .bashrc have this:

ulimit -s unlimited
PATH=/usr/pgi/linux86/8.0/bin:$PATH
export PATH
MANPATH=$MANPATH:/usr/pgi/linux86/8.0/man
export MANPATH
LM_LICENSE_FILE=$LM_LICENSE_FILE:/usr/pgi/license.dat
export LM_LICENSE_FILE

i think that follow your advice or not?

what can i do whit this errors…

Regars: José Rosario

Hi Jose,

Try adding “CC=gcc -m32” or “CC=pgcc” to your configure.user and recompile from scratch. I think the issue here is that portions of the code are being compiled in 64-bits.

Also, you should consider removing the “-tp p6” flag. This tells the compiler to target a generic i386 system, which is good for portability, but poor for performance.

Hope this helps,

  • Mat