pgf902 TERMINATED by signal 11

Hi

I tried compiling WRF with the PGI compilers 14.1. The compilation worked without any problems with 10.6. With 14.1 I get the error message

pgf902 TERMINATED by signal 11

What is the appropriate course of action in this case?

J

Hi J,

What is the appropriate course of action in this case?

Let me try and recreate the problem here. What version of WRF are you using? Are you using another package (like WRF-CHEM)? At what file does the error occur?

Thanks,
Mat

Hi Mat

The problem occurs with WRF-CHEM 3.1.1 and 3.5 (no modifications). I didn’t test other versions. The compilation fails at

mpif90 -o module_mosaic_addemiss.o -c -O2 -w -Mfree -Mextend -byteswapio -tp amd64 -Kieee -Mpreprocess -Msave -DFC=PGI -I…/dyn_em -I…/dyn_nmm -module /home/user/WRF3.5/main -I/home/user/WRF3.5/external/esmf_time_f90 -I/home/user/WRF3.5/main -I/home/user/WRF3.5/external/io_netcdf -I/home/user/WRF3.5/external/io_int -I/home/user/WRF3.5/frame -I/home/user/WRF3.5/share -I/home/user/WRF3.5/phys -I/home/user/WRF3.5/chem -I/home/user/WRF3.5/inc -I/usr/local/netCDF/netcdf-4.0-pgi/include -r4 -i4 module_mosaic_addemiss.f90

pgf90-Fatal-/opt/pgi/linux86-64/14.1/bin/pgf902 TERMINATED by signal 11

Arguments to /opt/pgi/linux86-64/14.1/bin/pgf902
/opt/pgi/linux86-64/14.1/bin/pgf902 /tmp/pgf90ZvjbzbYIsjA9.ilm -fn module_mosaic_addemiss.f90 -opt 2 -terse 1 -inform severe -x 51 0x20 -x 119 0xa10000 -x 122 0x40 -x 123 0x1000 -x 127 4 -x 127 17 -x 19 0x400000 -x 28 0x40000 -x 120 0x10000000 -x 70 0x8000 -x 122 1 -x 125 0x20000 -x 117 0x1000 -quad -vect 56 -y 34 16 -x 34 0x8 -y 19 8 -y 35 0 -x 42 0x30 -x 39 0x40 -x 39 0x80 -x 34 0x400000 -x 149 1 -x 150 1 -x 59 4 -x 6 0x100 -y 129 2 -tp k8 -x 120 0x1000 -x 124 0x1400 -y 15 2 -x 57 0x3b0000 -x 58 0x48000000 -x 49 0x100 -x 120 0x200 -astype 0 -x 121 1 -ieee 1 -save -x 124 1 -y 189 0x4000000 -x 9 1 -x 72 0x1 -x 136 0x11 -quad -x 119 0x10000000 -x 129 0x40000000 -x 164 0x1000 -x 42 0x400000 -y 129 4 -x 129 0x400 -y 124 0x8 -cmdline ‘+pgf90 module_mosaic_addemiss.f90 -tp amd64 -o module_mosaic_addemiss.o -c -O2 -Mvect=sse -Mcache_align -Mpre -w -Mfree -Mextend -byteswapio -Kieee -Mpreprocess -Msave -DFC=PGI -I…/dyn_em -I…/dyn_nmm -module /home/user/WRF3.5/main -I/home/user/WRF3.5/external/esmf_time_f90 -I/home/user/WRF3.5/main -I/home/user/WRF3.5/external/io_netcdf -I/home/user/WRF3.5/external/io_int -I/home/user/WRF3.5/frame -I/home/user/WRF3.5/share -I/home/user/WRF3.5/phys -I/home/user/WRF3.5/chem -I/home/user/WRF3.5/inc -I/usr/local/netCDF/netcdf-4.0-pgi/include -r4 -i4 -I/usr/local/openMPI/openmpi-1.6.4-pgi/include -I/usr/local/openMPI/openmpi-1.6.4-pgi/lib’ -asm /tmp/pgf907vjbX1reKK5Q.sm

Thanks for your response!

J

Hi J -

I have not yet been able to reproduce your issue.

I’ve taken WRFV3.5.1 and untarred it. WRFV3-Chem-3.5.1 and untarred it and moved the resulting chem directory into WRFV3.

Did a “./clean -a”

set the environment variables:
setenv WRF_CHEM 1
setenv EM_CORE 1
setenv NMM_CORE 0

configured and chose option 7 (PGI distributed memory build)

compiled with PGI 14.1 on both an Intel machine and an AMD machine

I’m not seeing the issue you report.

Would you be able to provide more details of how you set up the environment and configured the model to help me track down the issue you are seeing?

thanks
-dave


rm -f module_mosaic_addemiss.o
/lib/cpp -C -P -I/home/norton/Documents/NCAR/WRF/WRFV3/inc -DEM_CORE=1 -DNMM_CORE=0 -DNMM_MAX_DIM=2600 -DCOAMPS_CORE=0 -DDA_CORE=0 -DEXP_CORE=0 -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM -DDM_PARALLEL -DNETCDF -DUSE_ALLO
CATABLES -DGRIB1 -DINTIO -DLIMIT_ARGS -DCONFIG_BUF_LEN=65536 -DMAX_DOMAINS_F=21 -DMAX_HISTORY=25 -DNMM_NEST=0 -DWRF_CHEM -DBUILD_CHEM=1 -I. -traditional module_mosaic_addemiss.F > module_mosaic_addemiss.bb
/home/norton/Documents/NCAR/WRF/WRFV3/tools/standard.exe module_mosaic_addemiss.bb | /lib/cpp -C -P > module_mosaic_addemiss.f90
rm -f module_mosaic_addemiss.b module_mosaic_addemiss.bb
mpif90 -f90=pgf90 -o module_mosaic_addemiss.o -c -O3 -w -Mfree -byteswapio -I…/dyn_em -I…/dyn_nmm -module /home/norton/Documents/NCAR/WRF/WRFV3/main -I/home/norton/Documents/NCAR/WRF/WRFV3/external/esmf_time_f90 -I/home/norton/Documents/NCAR/WRF/WRFV3/main -I/home/n
orton/Documents/NCAR/WRF/WRFV3/external/io_netcdf -I/home/norton/Documents/NCAR/WRF/WRFV3/external/io_int -I/home/norton/Documents/NCAR/WRF/WRFV3/frame -I/home/norton/Documents/NCAR/WRF/WRFV3/share -I/home/norton/Documents/NCAR/WRF/WRFV3/phys -I/home/norton/Documents/NCAR/W
RF/WRFV3/chem -I/home/norton/Documents/NCAR/WRF/WRFV3/inc -I/proj/ta/libraries/netcdf-fortran-4.2/linux86-64/pgi/14.1/redhat-5.3-Tikanga/include -r4 -i4 module_mosaic_addemiss.f90

Hi Dave

I forgot to mention that I use gcc instead of pgcc to compile the C parts of the WRF/Chem code. This has worked so far with the 10.6 version of pgf90. The problem I experience can be reproduced as follows (Fedora Linux 3.11.10-100.fc18.x86_64 on an AMD Opteron™ processor 6376):

Downloaded WRFV3.5.1, untarred it; downloaded WRFV3-Chem-3.5.1, untarred it, moved the resulting chem directory into WRFV3. Renamed WRFV3 to WRF3.5.1 to distinguish from older versions. Then (using the bash):

./clean -a

export LM_LICENSE_FILE=$LM_LICENSE_FILE:/opt/pgi/license.dat
export PATH=/opt/pgi/linux86-64/14.1/bin:$PATH

cd WRF3.5.1
WRF_ROOT=pwd
export PATH=$PATH:.
export PATH=$PATH:${WRF_ROOT}/chem/KPP/util/wkc
export WRF_EM_CORE=1
export WRF_NMM_CORE=0
export WRFIO_NCD_LARGE_FILE_SUPPORT=1
export WRF_CHEM=1
export WRF_KPP=1
export YACC=‘yacc -d’
export MPI=/usr/local/openMPI/openmpi-1.6.4-pgi
export PATH=${MPI}/bin/:$PATH
export NETCDF=/usr/local/netCDF/netcdf-4.0-pgi
export FLEX=${HOME}/Packages/flex/flex-2.5.3/bin/flex
export FLEX_LIB_DIR=${HOME}/Packages/flex/flex-2.5.3/lib

To compile with pgf90 and gcc, I add the following section at the end of ${WRF_ROOT}/arch/configure_new.defaults:

###########################################################
#ARCH Linux x86_64, PGI compiler with gcc #serial smpar dmpar dm+sm

DMPARALLEL = # 1
OMPCPP = # -D_OPENMP
OMP = # -mp -Minfo=mp
SFC = pgf90
SCC = gcc
DM_FC = mpif90
DM_CC = mpicc
FC = CONFIGURE_FC
CC = CONFIGURE_CC
CCOMP = CONFIGURE_CC
LD = $(FC)
RWORDSIZE = CONFIGURE_RWORDSIZE
PROMOTION = -r$(RWORDSIZE) -i4
ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR
CFLAGS_LOCAL = -w -O3 -m64
LDFLAGS_LOCAL =
CPLUSPLUSLIB =
ESMF_LDFLAG = $(CPLUSPLUSLIB)
FCOPTIM = -O2
FCREDUCEDOPT = $(FCOPTIM)
FCNOOPT = -O0
OPTERON_TYPE = -tp amd64
FCDEBUG = # -C -g $(FCNOOPT)
FORMAT_FIXED = -Mfixed
FORMAT_FREE = -Mfree -Mextend
FCSUFFIX =
BYTESWAPIO = -byteswapio
FCBASEOPTS = -w $(FCDEBUG) $(FORMAT_FREE) $(BYTESWAPIO) $(OPTERON_TYPE) -Kieee -Mpreprocess -Msave -DFC=PGI
MODULE_SRCH_FLAG = -module $(WRF_SRC_ROOT_DIR)/main
TRADFLAG = -traditional
CPP = /lib/cpp -C -P
AR = ar
ARFLAGS = ru
M4 = m4 -B 14000
RANLIB = ranlib
CC_TOOLS = $(SCC)

Then I run ./configure, choose options 58

“Linux x86_64, PGI compiler with gcc (dmpar)”

and then option 1, followed by

./compile em_real 2>&1 | tee compile.em_real.log

J

Hi J -

Can you try your compile without the -Kieee flag and see if the compile succeeds? It looks to me that is were the issue is, so I’ll see if I can isolate it further for engineering.

It looks to me like the issue is with the subroutine seasalt_emitfactors_1bin when compiled with a combination of -O3 and -Kieee

-dave

Dave,

Thanks so much! The compilation worked like a charm without the -Kieee flag!

J

Engineering has the root issue tracked down - thanks for reporting this. I’ll post here when the fix for this is released.

A couple of notes about your compile:

You pass in the -Mpreprocess flag. I don’t think this really does anything as it looks like the build system runs /lib/cpp to generate the *.f90 files from the original source so there should be nothing left to preprocess.

I don’t believe the -Msave flag is needed, although it’s hard to tell without running and having an issue.

You shouldn’t need to pass in a -tp flag (target processor) unless you are planning on running the exectuable on a different archtecture then you compile on. PGI automagically optimizes for whatever processor is used to compile the code on. If you have a newer machine, there may be some optimizations that are missed if you compile for a generic architecture.

pgf90 -tp -help
gives the latest list of the supported architectures

Glad I could help - and check back later to see when this fix will be in a release.

-dave

Dave,

Thanks for all the help. I’ll remove the flags you mention from the compile script and check back later on the compilation issue.

J