[petsc-users] [petsc-maint #103068] problems compiling
Anton Popov
popov at uni-mainz.de
Fri Jan 20 11:08:12 CST 2012
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 <mailto: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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120120/7a68d2db/attachment-0001.htm>
More information about the petsc-users
mailing list