[petsc-users] [petsc-maint #103068] problems compiling
Anton Popov
popov at uni-mainz.de
Fri Jan 20 11:21:11 CST 2012
Well, I simply gave up on Cray compilers, as well as on the other
compilers installed on this machine (Intel, Portland, Pathscale). After
many attempts only GNU compilers were functional with PETSc.
On 1/20/12 6:12 PM, Dominik Szczerba wrote:
> Hi Anton,
>
> Many thanks for your hints. I am on the same machine. The key
> difference here is that I want to use the cray environment to compare
> performance with gnu. And I have no issues with gnu and my experience
> is very similar to yours.
>
> Many thanks and best regards,
> Dominik
>
> On Fri, Jan 20, 2012 at 6:08 PM, Anton Popov<popov at uni-mainz.de> wrote:
>> Hi Dominik,
>>
>> It really depends on which Cray machine you are installing. If you like I
>> can describe my recent installation experience on Cray XE6 "Rosa" in Zurich
>> (it uses Linux).
>> First make sure which compiler you are using. For me, GNU compilers did the
>> job well. I also prefer using ACML BLAS/LAPACK Library, because XE6 uses AMD
>> processors.
>>
>> So just go to your .bashrc and add something like:
>>
>> module load PrgEnv-gnu
>> module load acml
>>
>> # PETSC 3.X
>> export PETSC_DIR="$HOME/LIB/petsc-3.X-pY"
>> export PETSC_ARCH="PETSC_CRAY_XE6_GNU_OPT"
>> export PATH=$PATH:$PETSC_DIR/bin/
>>
>> Don't forget to logout/login for changes to take effect. Also, you should
>> only have one PrgEnv module in your .bashrc.
>>
>> Depending on the packages you need, you can modify the configuration command
>> below:
>>
>> ./config/configure.py \
>> --with-batch=1 \
>> --known-mpi-shared=0 \
>> --known-memcmp-ok \
>> --with-blas-lapack-lib="$ACML_DIR/gfortran64/lib/libacml.a" \
>> --COPTFLAGS="-O3" \
>> --FOPTFLAGS="-O3" \
>> --CXXOPTFLAGS="-O3" \
>> --with-x=0 \
>> --with-debugging=0 \
>> --with-clib-autodetect=0 \
>> --with-cxxlib-autodetect=0 \
>> --with-fortranlib-autodetect=0 \
>> --with-shared=0 \
>> --with-dynamic=0 \
>> --with-mpi-compilers=1 \
>> --with-cc=cc \
>> --with-cxx=CC \
>> --with-fc=ftn \
>> --download-blacs=1 \
>> --download-scalapack=1 \
>> --download-mumps=1 \
>> --download-superlu_dist=1 \
>> --download-parmetis=1 \
>> --download-ml=1
>>
>> If you don't need ACML, just make PETSc download and install BLAS/LAPACK for
>> you.
>>
>> What is important here is to always keep the following:
>> --with-batch=1 \
>> --known-mpi-shared=0 \
>> --with-clib-autodetect=0 \
>> --with-cxxlib-autodetect=0 \
>> --with-fortranlib-autodetect=0 \
>>
>> NOTE: on CRAY machine you have to submit "conftest" executable on single
>> processor via batch system (Rosa uses slurm) and run "reconfigure.py" to
>> finalize configuration.
>>
>> After you proceed with this, you have to MANUALLY DELETE the following keys
>> in $PETSC_DIR/$PETSC_ARCH/include/petscconf.h
>>
>> PETSC_HAVE_SYS_PROCFS_H
>> PETSC_HAVE_DLFCN_H
>> PETSC_HAVE_SYS_SOCKET_H
>> PETSC_HAVE_SYS_UTSNAME_H
>> PETSC_HAVE_PWD_H
>> PETSC_HAVE_GETWD
>> PETSC_HAVE_UNAME
>> PETSC_HAVE_GETHOSTNAME
>> PETSC_HAVE_GETDOMAINNAME
>> PETSC_HAVE_NETINET_IN_H
>> PETSC_HAVE_NETDB_H
>> PETSC_USE_SOCKET_VIEWER
>> PETSC_HAVE_GETPWUID
>>
>> Otherwise nothing will run, and you'll get segfaults in the very beginning.
>> The reason behind it is that Cray version of Linux only supports reduced set
>> of system calls.
>>
>> NOW you can do "make all"
>>
>> Hope it'll be helpful,
>>
>> Anton
>>
>> ------------------------
>>
>>
>> On 1/20/12 4:45 PM, Matthew Knepley wrote:
>>
>> On Fri, Jan 20, 2012 at 9:43 AM, Dominik Szczerba<dominik at itis.ethz.ch>
>> wrote:
>>> I am building on a Cray system with crayftn fortran compiler. I
>>> specify --with-fc=crayftn and --FFLAGS=-em. Despite the latter, I am
>>> still getting the below cited error. Interestingly, the mod file IS
>>> THERE:
>>>
>>>> find /tmp/petsc-0Bnd1w -iname \*.mod
>>> /tmp/petsc-0Bnd1w/config.compilers/CONFIGTEST.mod
>>>
>>> How do I go on from here?
>>
>> The problem is not that is doesn't create a module file, but that it will
>> not put it
>> where we ask it to. Please send entire configure.log (don't Cc users).
>>
>> Matt
>>
>>> Thanks
>>> Dominik
>>>
>>>
>>>
>>>
>>> ================================================================================
>>> TEST checkFortranModuleInclude from
>>>
>>> config.compilers(/users/dsz/pack/petsc-3.2-p5/config/BuildSystem/config/compilers.py:1155)
>>> TESTING: checkFortranModuleInclude from
>>> config.compilers(config/BuildSystem/config/compilers.py:1155)
>>> Figures out what flag is used to specify the include path for Fortran
>>> modules
>>> Pushing language FC
>>> sh: crayftn -c -o /tmp/petsc-0Bnd1w/config.compilers/conftest.o
>>> -I/tmp/petsc-0Bnd1w/config.compilers
>>> -I/tmp/petsc-0Bnd1w/config.setCompilers -em -O3
>>> /tmp/petsc-0Bnd1w/config.compilers/conftest.F
>>> Executing: crayftn -c -o /tmp/petsc-0Bnd1w/config.compilers/conftest.o
>>> -I/tmp/petsc-0Bnd1w/config.compilers
>>> -I/tmp/petsc-0Bnd1w/config.setCompilers -em -O3
>>> /tmp/petsc-0Bnd1w/config.compilers/conftest.F
>>> sh:
>>> Successful compile:
>>> Source:
>>> module configtest
>>> integer testint
>>> parameter (testint = 42)
>>> end module configtest
>>>
>>> *******************************************************************************
>>> UNABLE to CONFIGURE with GIVEN OPTIONS (see configure.log
>>> for details):
>>>
>>> -------------------------------------------------------------------------------
>>> Fortran module was not created during the compile.
>>> configtest.mod/CONFIGTEST.mod not found
>>>
>>> *******************************************************************************
>>> File "/users/dsz/pack/petsc-3.2-p5/config/configure.py", line 283,
>>> in petsc_configure
>>> framework.configure(out = sys.stdout)
>>> File
>>> "/users/dsz/pack/petsc-3.2-p5/config/BuildSystem/config/framework.py",
>>> line 925, in configure
>>> child.configure()
>>> File
>>> "/users/dsz/pack/petsc-3.2-p5/config/BuildSystem/config/compilers.py",
>>> line 1338, in configure
>>> self.executeTest(self.checkFortranModuleInclude)
>>> File "/users/dsz/pack/petsc-3.2-p5/config/BuildSystem/config/base.py",
>>> line 115, in executeTest
>>> ret = apply(test, args,kargs)
>>> File
>>> "/users/dsz/pack/petsc-3.2-p5/config/BuildSystem/config/compilers.py",
>>> line 1187, in checkFortranModuleInclude
>>> raise RuntimeError('Fortran module was not created during the
>>> compile. configtest.mod/CONFIGTEST.mod not found')
>>>
>>
>>
>> --
>> What most experimenters take for granted before they begin their experiments
>> is infinitely more interesting than any results to which their experiments
>> lead.
>> -- Norbert Wiener
>>
>>
More information about the petsc-users
mailing list