[molpro-user] compilation troubles on AIX 5.3

Toon Verstraelen toon.verstraelen at UGent.be
Mon Feb 26 13:45:54 GMT 2007


Dear Molpro users,


We experience some difficulties with the compilation of molpro 2006.1 on 
AIX 5.3 systems (p510 and p575, recently updated, version 5003-05-05) 
Details about our system configuration (compilers and libraries) are 
included below. The actual compilation runs fine. after running gmake, 
the a binary molprop_2006_1_i8_lapi.exe can be found in the bin 
directory. Unfortunately we can not start any job, e.g. when we try to 
do run tune.com as follows:

export MP_PROCS=2
export MP_MSG_API=lapi
export MP_HOSTFILE=/home/toon/hostfile
export RT_GRQ=ON
export AIXTHREAD_SCOPE=S
export MP_INFOLEVEL=1
export LAPI_USE_SHM=yes
export USE_OLDAIO=y
./bin/molpro < tuning.com

We get the following output:


  MPP nodes  nproc
  moldyn60     2
  ga_uses_ma=false, calling ma_init with nominal heap.
  GA-space will be limited to   8.0 MW (determined by -G option)

  Primary working directories:    /tmp/toon
  Secondary working directories:  /tmp/toon


  MPP tuning parameters: Latency=     0 Microseconds,   Broadcast speed= 
    0 MB/sec
  default implementation of scratch files=sf

  memory,8,m
  maxdim=32
  maxdim1=64
  maxdim2=180

  blastest,n=120,unroll=4,ntrans=2,mxmblk=48,mxmbln=48,blas2=0
  mflop=max(flopmxm,flopdgm)

  blastest,n=480,unroll=2,ntrans=2,mxmblk=64,mxmbln=64,mflop=mflop,blas2=0
  flopmx2=flopmxm
  blastest,n=480,unroll=3,ntrans=2,mxmblk=64,mxmbln=64,mflop=mflop,blas2=0
  flopmx3=flopmxm
  blastest,n=480,unroll=4,ntrans=2,mxmblk=64,mxmbln=64,mflop=mflop,blas2=0
  flopmx4=flopmxm

  flopmx480=max(flopmx2,flopmx3,flopmx4)
  flopdg480=flopdgm
  nroll=4
  if(flopmx3.gt.max(flopmx2,flopmx4)) nroll=3
  if(flopmx2.gt.max(flopmx3,flopmx4)) nroll=2

  if(nroll.eq.2) then
    mxmblk=64
 
blastest,n=960,unroll=nroll,mxmblk=nblk,mxmbln=nblk,ntrans=2,mflop=mflop,blas2=0
    flopmax=flopmxm
  else
    flopmax=0
    do nblk=64,188,24
 
blastest,n=960,unroll=nroll,mxmblk=nblk,mxmbln=nblk,ntrans=2,mflop=mflop,blas2=0
    if(flopmxm.gt.flopmax) then
      mxmblk=nblk
      flopmax=flopmxm
    end if
    enddo
  endif
  flopmx960=flopmax
  flopdg960=flopdgm

 
blastest,n=60,unroll=nroll,ntrans=2,mxmblk=mxmblk,mxmbln=mxmblk,mflop=mflop,blas2=0
  flopmx60=flopmxm
  flopdg60=flopdgm

  mflop=mflop/2
  i=0
  mindgm=4
  mindgv=4
  do k=4,maxdim+2
  i=i+1
  dim(i)=k
  if(k.gt.maxdim  ) dim(i)=maxdim1
  if(k.gt.maxdim+1) dim(i)=maxdim2
 
blastest,n=dim(i),ntrans=2,unroll=nroll,mxmblk=mxmblk,mxmbln=mxmblk,mflop=mflop
  flopmxma(i)=flopmxm
  flopdgem(i)=flopdgm
  flopmxmv(i)=flopmxv
  flopdgev(i)=flopdgv
  if(flopdgm.le.flopmxm) mindgm=dim(i)+1
  if(flopdgv.le.flopmxv) mindgv=dim(i)+1
  if(k.gt.max(mindgm,mindgv)) goto lab1:
  enddo

  lab1:
  if(mindgm.gt.maxdim2) mindgm=5000
  if(mindgv.gt.maxdim2) mindgv=5000
  mindgc=1
  do i=1,maxdim+2
  dim1(i)=i
  if(i.gt.maxdim  ) dim1(i)=maxdim1
  if(i.gt.maxdim+1) dim1(i)=maxdim2
 
blastest,n=60,ncol=dim1(i),ntrans=2,unroll=nroll,mxmblk=mxmblk,mxmbln=mxmblk,mflop=mflop,blas2=0
  flopmxma_c(i)=flopmxm
  flopdgem_c(i)=flopdgm
  if(flopdgm.le.flopmxm) mindgc=dim1(i)+1
  if(i.gt.mindgc) goto lab2:
  enddo

  lab2:
  if(mindgc.gt.maxdim2) mindgc=5000
  mindgr=1
  do i=1,maxdim+2
  dim1(i)=i
  if(i.gt.maxdim  ) dim1(i)=maxdim1
  if(i.gt.maxdim+1) dim1(i)=maxdim2
 
blastest,n=60,nrow=dim1(i),ntrans=2,unroll=nroll,mxmblk=mxmblk,mxmbln=mxmblk,mflop=mflop,blas2=0
  flopmxma_r(i)=flopmxm
  flopdgem_r(i)=flopdgm
  if(flopdgm.le.flopmxm) mindgr=dim1(i)+1
  if(i.gt.mindgr) goto lab3:
  enddo

  lab3:
  if(mindgr.gt.maxdim2) mindgr=5000
  mindgl=1
  do i=1,maxdim+2
  dim1(i)=i
  if(i.gt.maxdim  ) dim1(i)=maxdim1
  if(i.gt.maxdim+1) dim1(i)=maxdim2
 
blastest,n=60,nlink=dim1(i),ntrans=2,unroll=nroll,mxmblk=mxmblk,mxmbln=mxmblk,mflop=mflop,blas2=0
  flopmxma_l(i)=flopmxm
  flopdgem_l(i)=flopdgm
  if(flopdgm.le.flopmxm) mindgl=dim1(i)+1
  if(i.gt.mindgl) goto lab4:
  enddo

  lab4:
  if(mindgl.gt.maxdim2) mindgl=5000
  i=#dim+1
  dim(i)=60
  flopmxma(i)=flopmx60
  flopdgem(i)=flopdg60

  i=i+1
  dim(i)=480
  flopmxma(i)=flopmx480
  flopdgem(i)=flopdg480


  i=i+1
  dim(i)=960
  flopmxma(i)=flopmx960
  flopdgem(i)=flopdg960

  ncache=mxmblk*mxmblk*3
  mflop=2*mflop

  table,dim,flopmxma,flopdgem,flopmxmv,flopdgev
 
table,dim1,flopmxma_c,flopdgem_c,flopmxma_r,flopdgem_r,flopmxma_l,flopdgem_l
  show,nroll,mxmblk,ncache,mindgm,mindgc,mindgl,mindgr,mindgv

 
blastest,saverc,n=120,mxmblk=mxmblk,mxmbln=mxmblk,ncache=ncache,unroll=nroll\
 
mindgm=mindgm,mindgl=mindgl,mindgc=mindgc,mindgv=mindgv,mindgr=mindgr,mflop=mflop

  if(nproc_mpp.gt.1) then
  blastest,saverc,mxma_mpp=1,n=960,mflop=3000
  end if


  Variables initialized (517), CPU time=  .01 sec
  Commands  initialized (293), CPU time=  .01 sec, 434 directives.
  Default parameters read. Elapsed time=  .34 sec
  Checking input...
  Passed
1


                                          ***  PROGRAM SYSTEM MOLPRO  ***
                          Copyright, University College Cardiff 
Consultants Limited, 2004

                                     Version 2006.1 linked 26 Feb 2007 
14:34:13


 
**********************************************************************************************************************************
  LABEL *
  AIX-5.3/moldyn60(43P) 64 bit mpp version (xlf10.1.0.3/essl_r) 
                   DATE:  26-Feb-07         TIME: 14:39:18
 
**********************************************************************************************************************************

  Patch level:      59
 
**********************************************************************************************************************************
  SETTING MAXDIM         =        32.00000000
  SETTING MAXDIM1        =        64.00000000
  SETTING MAXDIM2        =       180.00000000

  Variable memory set to    8000000 words,  buffer space   230000 words



  Starting benchmark for BLAS routines with   ncache=  16384  mxmblk= 
  48  mxmbln=    48  nspars= 2  nroll=4

  N= 120 L= 120 M= 120  NREP2=    6944  NREP3=      58  ITRA= 1  ITRB= 1
          MXMA:               CPU=  .05    (  4008.960 MFLOP)

DGEMM : 2538-2005
The size of the leading dimension (ARG NO. 8) of an array must be greater
than zero.

DGEMM : 2538-2005
The size of the leading dimension (ARG NO. 10) of an array must be greater
than zero.

DGEMM : 2538-2005
The size of the leading dimension (ARG NO. 13) of an array must be greater
than zero.

DGEMM : 2538-2099
End of input argument error reporting. For more information, refer to
Engineering and Scientific Subroutine Library Guide and Reference 
(SA22-7904).

DGEMM : 2538-2604
Execution terminating due to error count for error number 2099.

DGEMM : 2538-2605
Message summary:      2005     - 3

DGEMM : 2538-2605
Message summary:      2099     - 1
STOP 1
STOP 1
ERROR: 0031-300  Forcing all remote tasks to exit due to exit code 1 in 
task 0

It seems that the routine DGEMM is called with incorrect parameters? 
Note that when we use

FTCFLAGS="mpp eaf blas4"

instead of

FTCFLAGS="mpp eaf blas1 blas2 blas3"

the problem disappears. This should not be necessary since the essl 
libraries contain both 64 and 32 bit versions of the BLAS and LAPACK 
routines. We would really like to perform a native 64bit compilation. 
Have there been successful 64bit-builds for AIX 5.3. We would be very 
interested in details to get a fully working binary?


best regards,

Toon Verstraelen




P.S. Here are some details about the configuration of our system:


IBM XL Fortran Enterprise Edition V10.1 for AIX,Version: 10.01.0000.0003
IBM XL C/C++ Enterprise Edition V8.0 for AIX,Version: 08.00.0000.0012
essl.rte.common            4.2.0.4
Global arrays 4-0-1, compiled with 'gmake TARGET=LAPI64'
Molpro 2006.1 CONFIG file:

# MOLPRO CONFIG generated at Wed Feb 14 12:28:48 NFT 2007 with version 
2006.1
#               for host moldyn60, architecture unix unix-i8 unix-ibm
#
#  insert additional hosts before moldyn60 in above line, if desired
#
ARCHITECTURE="unix unix-i8 unix-ibm mpp"

#If you have a POWER2 machine, consider adding -qarch=pwr2 to the FOPT 
options. Power3 should just work.

# Compilers ..
CC="cc -q64 -qmaxmem=-1"
FC="/usr/bin/xlf_r -I. 
-I/home/toon/tmp/build/molpro.2006.1/molpro2006.1/src -NA16384 -NQ20000 
-qzerosize -qcharlen=1024 -qextname -qmaxmem=-1 -qnolm -qarch=auto -q64 
-qwarn64 -qintsize=8 -Wl,-bbigtoc"
F90="/usr/bin/xlf_r -I. 
-I/home/toon/tmp/build/molpro.2006.1/molpro2006.1/src -NA16384 -NQ20000 
-qzerosize -qcharlen=1024 -qextname -qmaxmem=-1 -qnolm -qarch=auto -q64 
-qwarn64 -qintsize=8 -Wl,-bbigtoc -qsuffix=f=f90 -qfree=f90"
# compiler command to be used only when linking molpro.exe .. eg mpxlf 
on IBM SP
LINKFC="/usr/bin/xlf_r -I. 
-I/home/toon/tmp/build/molpro.2006.1/molpro2006.1/src -NA16384 -NQ20000 
-qzerosize -qcharlen=1024 -qextname -qmaxmem=-1 -qnolm -qarch=auto -q64 
-qwarn64 -qintsize=8 -Wl,-bbigtoc"
YACC="yacc"
ARFLAGS="-X64 -r"
PERL="1"
PERLEXE="/usr/bin/perl"
PERLVERSION="5.008002"
# C defines
# nb    SEEK is disk seek speed in seconds
#       SPEED is disk transfer rate in 8 bytes/second
# compiler optimisation
COPT="-O2"
FOPT="-O3"
# compiler explicit no optimisation
CDEF="-DSEEK=.001 -DSPEED=200000 -qarch=auto -DI64 -q64 -qwarn64 -DAIX42 
-DAIX5 -DNOALRM -DUSE_LAPI -DMPIGM_FORMAT=1 -DHAVE_INTTYPES_H 
-DMOLPRO_GETOPTLONG   -DMA_ALLOC -DMOLPROC_PAR"
CNOPT=" "
COPT1="-O1"
COPT2="-O2"
FNOPT=" "
FOPT1="-O1"
FOPT2="-O2"
FOPT3="-O3 -qnosave"
# compiler debug flag
CDEBUG="-g"
FDEBUG="-g"
# static variables
FSTATIC=" "
# 64-bit integers
FI64="-qintsize=8"
# profiling
FPROFILE="-p"
CPROFILE="-p"
# additional pre-processor flags
FTCFLAGS="mpp eaf blas1 blas2 blas3"
# additional directories to be compiled in mpp case
MPPDIR="mpp"
SLATERDIR=""
# additional libraries and link options
LIBS=" "
LINKOPT=" "
# non-standard location of system libraries
LIBDIR="/home/toon/tmp/build/ga-4-0-1/lib/LAPI64"
# GKS X-windows library
GKSLIB="-lgks0"
# BLAS library
BLASLIB="-lessl_r"
# LAPACK library
LAPACKLIB=""
# MPP?
MPP="1"
MPPX="0"
SLATER=0
WRAPPER="/usr/bin/poe"
USE_MPI=""
USE_LAPI="1"
USE_MYRINET=""
MPI_LIB=""
MPPNAME="lapi"
ARCHNAME=""
MPITYPE=""
MPIBASEDIR=""
MYRINET_LIB=""
MYRINET_LINKPARS=""
MPIGM_FORMAT="1"
USE_GIO="0"
USE_GATOOLS="0"
# files in src/ to be compiled without optimization
F77VERSION="10.1.0.3"
FORTVERSION="xlf10.1.0.3"
NO_OPT=""
F_OPT1="mrci/ciinp.f sapt/response.f90"
F_OPT2="Molcas/pget2.f dtraf/dtfint2.f blas/mxm.f blas/mxm3.f 
blas/mxm4.f local/mxmadd.f"
F_OPT3="explicit/explicit_util.f util/getvar.f eom/ldip.f"
C_OPT1=" "
C_OPT2=" "
# ranlib command (if not needed, true)
RANLIB="true"
# ls command to get user and group
LSFULL="ls -l"
# cp -p if it exists, else cp
CP="cp -p"
# tar command
TAR="tar"
# awk command
AWK="awk"
# strip command
STRIP="strip -X 32_64"
# installation directories
INSTBIN="/software/molpro/2006.1/bin"
INSTLIB="/software/molpro/2006.1/lib"
INSTHTML="/software/molpro/2006.1/doc"
INSTCGI="/software/molpro/2006.1/doc"
# makedepend configuration
MAKEDEPEND_OPTIONS=""
MODULE_SUFFIX="mod"
MODULE_FLAG="-I"
# non-default libraries
LIBDIR_lapi=/home/toon/tmp/build/ga-4-0-1/lib/LAPI64
WRAPPER_lapi=/usr/bin/poe
LINKFC_lapi="/usr/bin/mpxlf_r -I. 
-I/home/toon/tmp/build/molpro.2006.1/molpro2006.1/src -NA16384 -NQ20000 
-qzerosize -qcharlen=1024 -qextname -qmaxmem=-1 -qnolm -qarch=auto -q64 
-qwarn64 -qintsize=8 -Wl,-bbigtoc "
LINKFC_mpi="/usr/bin/mpxlf_r -I. 
-I/home/toon/tmp/build/molpro.2006.1/molpro2006.1/src -NA16384 -NQ20000 
-qzerosize -qcharlen=1024 -qextname -qmaxmem=-1 -qnolm -qarch=auto -q64 
-qwarn64 -qintsize=8 -Wl,-bbigtoc "
PARSE=parse-rs6000-ibm-aix5.3.0.0-i8.o.gz



More information about the Molpro-user mailing list