[petsc-users] [petsc-maint #103068] problems compiling

Dominik Szczerba dominik at itis.ethz.ch
Fri Jan 20 11:12:12 CST 2012


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