[gpaw-users] Trouble Compiling GPAW

Ask Hjorth Larsen asklarsen at gmail.com
Fri Mar 18 20:37:08 CET 2016


If it works, I would also like to know it :)

2016-03-18 19:19 GMT+01:00 Tomlinson, Warren (CDR) <wwtomlin at nps.edu>:
> Ask-
> Thanks for the help. I’ll give it a try and let you know if I have any
> problems.
> Thanks
> Warren
>
> On Mar 18, 2016, at 3:52 AM, Ask Hjorth Larsen <asklarsen at gmail.com> wrote:
>
> Hello
>
> 2016-03-17 19:57 GMT+01:00 Tomlinson, Warren (CDR) <wwtomlin at nps.edu>:
>
> All-
>        Please ignore my installation problem form my previous email (below).
> Problem has been solved.
>
>        On an unrelated note I have a question about a large system I’m
> working with (656 atoms).  It is the unit cell for the UiO-67 MOF (periodic
> in all three directions).  I’m trying to relax the structure and I’ve gotten
> to a point where the energy is not changing much at all between SCF steps,
> but the relaxation keeps running.  The system seemed to settle relatively
> quickly to -4163.05 eV (about 200 or so SCF steps), but since then there
> have been 1063 SCF steps and the energy went from -4163.026398 eV to
> -4163.069115 eV.  The lowest energy over those 1063 SCF steps was
> -4163.074407.  It seems to me that the system is just shifting around a
> minimum, but never quite settling there.  Do you have any tips for
> addressing this?
>
>        Below is my python file:
>
> from ase import Atoms
> from ase.io import read, write
> from ase.ga.relax_attaches import VariansBreak
> from gpaw import GPAW, Mixer, FermiDirac
> from ase.optimize import QuasiNewton
> from gpaw.poisson import PoissonSolver
> import numpy as np
>
> cell = read('Full_N_Pd_szp_ptl.pdb')
> cell.set_cell([26.52,26.52,26.52])
> cell.set_pbc(1)
>
> calc_LCAO = GPAW(mode='lcao',
>            gpts=(144,144,144),
>            xc='PBE',
>            poissonsolver=PoissonSolver(relax='GS', eps=1e-10),
>            parallel={'band':2,'sl_default':(24,24,64)},
>            basis = 'szp',
>            mixer=Mixer(0.1, 5, weight=100.0),
>
>
> Try lowering the mixer parameter from 0.1 to 0.05.  Larger systems
> tend to require more conservative mixing.
>
> If it does not work, please attach the logfile.
>
> It looks like you are using a very large number of cores (576).  On
> normal architectures this should probably run on 24-48 cores, or even
> less given that it is only szp.  Adding more cores beyond that may
> make it faster, but it is very unlikely that it strong-scales well to
> 576.
>
> Best regards
> Ask
>
>            occupations=FermiDirac(width=0.1),
>            txt='Full_N_Pd_szp.out',
>            maxiter=1000
>            )
>
> cell.set_calculator(calc_LCAO)
> opt = QuasiNewton(cell)
> vb = VariansBreak(cell, opt)
> opt.attach(vb.write)
> opt.run()
>
>
> Thanks,
> Warren
>
>
> On Mar 15, 2016, at 12:16 PM, Tomlinson, Warren (CDR) <wwtomlin at nps.edu>
> wrote:
>
> Hello-
> I’m having an issue compiling GPAW on a cluster and I’m wondering if someone
> can help.
>
> The system is a Cray XC30 cluster (called Lightning)
> I am attempting to compile in the GNU environment (although I get the same
> error when trying with Intel)
>
> Relevant modules:
> gcc/5.1.0
> cray-mpich/7.2.6
> cray-libsci/13.2.0
> python/gnu/2.7.9
> numpy/gnu/1.9.2
> spicy/gnu/0.15.1
>
>
> Relevant excerpts from system user’s manual:
> 5.1.1. Message Passing Interface (MPI)
>
> This release of MPI-2 derives from Argonne National Laboratory MPICH-2 and
> implements the MPI-2.2 standard except for spawn support, as documented by
> the MPI Forum in "MPI: A Message Passing Interface Standard, Version 2.2."
>
> The Message Passing Interface (MPI) is part of the software support for
> parallel programming across a network of computer systems through a
> technique known as message passing. MPI establishes a practical, portable,
> efficient, and flexible standard for message passing that makes use of the
> most attractive features of a number of existing message-passing systems,
> rather than selecting one of them and adopting it as the standard. See "man
> intro_mpi" for additional information.
>
> When creating an MPI program on Lightning, ensure the following:
>
> • That the default MPI module (cray-mpich) has been loaded. To check this,
> run the "module list" command. If cray-mpich is not listed and a different
> MPI module is listed, use the following command:
> module swap other_mpi_module cray-mpich
>
> If no MPI module is loaded, load the cray-mpich module.
>
> module load cray-mpich
>
> • That the source code includes one of the following lines:
> INCLUDE "mpif.h"        ## for Fortran, or
> #include <mpi.h>        ## for C/C++
>
> To compile an MPI program, use the following examples:
>
> ftn -o pi_program mpi_program.f
> ## for Fortran, or
> cc -o mpi_program mpi_program.c         ## for C/C++
>
> ———————————————————————
>
> 5.1.3. Open Multi-Processing (OpenMP)
>
> OpenMP is a portable, scalable model that gives programmers a simple and
> flexible interface for developing parallel applications. It supports
> shared-memory multiprocessing programming in C, C++ and Fortran, and
> consists of a set of compiler directives, library routines, and environment
> variables that influence compilation and run-time behavior.
>
> When creating an OpenMP program on Lightning, ensure the following:
>
> • That the default MPI module (cray-mpich) has been loaded. To check this,
> run the "module list" command. If cray-mpich is not listed and a different
> MPI module is listed, use the following command:
> module swap other_mpi_module cray-mpich
>
> If no MPI module is loaded, load the cray-mpich module.
>
> module load cray-mpich
>
> • That if using OpenMP functions (for example, omp_get_wtime), the source
> code includes one of the following lines:
>
> INCLUDE 'omp.h'     ## for Fortran, or
> #include <omp.h>    ## for C/C++
>
> Or, if the code is written in Fortran 90 or later, the following line may be
> used instead:
>
> USE omp_lib
>
> • That the compile command includes an option to reference the OpenMP
> library. The PGI, Cray, Intel, and GNU compilers support OpenMP, and each
> one uses a different option.
>
> To compile an OpenMP program, use the following examples:
>
> For C/C++ codes:
>
> cc -o OpenMP_program -mp=nonuma OpenMP_program.c  ## PGI
> cc -o OpenMP_program -h omp OpenMP_program.c      ## Cray
> cc -o OpenMP_program -openmp OpenMP_program.c     ## Intel
> cc -o OpenMP_program -fopenmp OpenMP_program.c    ## GNU
>
> ———————————————————————
>
> 5.2. Available Compilers
>
> Lightning has four programming environment suites.
>
> • Portland Group (PGI)
> • Cray Fortran and C/C++
> • Intel
> • GNU
> On Lightning, different sets of compilers are used to compile codes for
> serial vs. parallel execution.
>
> Compiling for the Compute Nodes
>
> Codes compiled to run on the compute nodes may be serial or parallel. The
> x86-64 instruction set for Intel Ivy Bridge E5-2697 processors has
> extensions for the Floating Point Unit (FPU) that require the module
> craype-ivybridge to be loaded. This module is loaded for you by default. To
> compile codes for execution on the compute nodes, the same compile commands
> are available in all programming environment suites as shown in the
> following table:
>
> Compute Node Compiler Commands
> Language PGI
> Cray Intel
> GNU Serial/Parallel
> C cc
> cc cc
> cc Serial/Parallel
> C++ CC
> CC CC
> CC Serial/Parallel
> Fortran 77 f77
> f77 f77
> f77 Serial/Parallel
> Fortran 90 ftn
> ftn ftn
> ftn Serial/Parallel
> ——————————————————————————————
>
>
> Building the serial version of GPAW gives me no trouble.  I have compiled it
> and run all the tests and they all pass.  When trying to build the custom
> interpreter, the compiling goes fine, but the linking fails.
>
> Below is the link line causing the issue:
> cc -o build/bin.linux-x86_64-2.7//gpaw-python
> build/temp.linux-x86_64-2.7/c/woperators.o
> build/temp.linux-x86_64-2.7/c/plt.o build/temp.linux-x86_64-2.7/c/lapack.o
> build/temp.linux-x86_64-2.7/c/symmetry.o
> build/temp.linux-x86_64-2.7/c/plane_wave.o
> build/temp.linux-x86_64-2.7/c/operators.o
> build/temp.linux-x86_64-2.7/c/mlsqr.o
> build/temp.linux-x86_64-2.7/c/transformers.o
> build/temp.linux-x86_64-2.7/c/utilities.o
> build/temp.linux-x86_64-2.7/c/spline.o build/temp.linux-x86_64-2.7/c/lfc2.o
> build/temp.linux-x86_64-2.7/c/localized_functions.o
> build/temp.linux-x86_64-2.7/c/wigner_seitz.o
> build/temp.linux-x86_64-2.7/c/mpi.o build/temp.linux-x86_64-2.7/c/lfc.o
> build/temp.linux-x86_64-2.7/c/bc.o build/temp.linux-x86_64-2.7/c/hdf5.o
> build/temp.linux-x86_64-2.7/c/blas.o build/temp.linux-x86_64-2.7/c/fftw.o
> build/temp.linux-x86_64-2.7/c/lcao.o
> build/temp.linux-x86_64-2.7/c/point_charges.o
> build/temp.linux-x86_64-2.7/c/_gpaw.o build/temp.linux-x86_64-2.7/c/cerf.o
> build/temp.linux-x86_64-2.7/c/blacs.o
> build/temp.linux-x86_64-2.7/c/bmgs/bmgs.o
> build/temp.linux-x86_64-2.7/c/xc/rpbe.o
> build/temp.linux-x86_64-2.7/c/xc/tpss.o
> build/temp.linux-x86_64-2.7/c/xc/xc.o
> build/temp.linux-x86_64-2.7/c/xc/revtpss_c_pbe.o
> build/temp.linux-x86_64-2.7/c/xc/pbe.o
> build/temp.linux-x86_64-2.7/c/xc/libxc.o
> build/temp.linux-x86_64-2.7/c/xc/m06l.o
> build/temp.linux-x86_64-2.7/c/xc/pw91.o
> build/temp.linux-x86_64-2.7/c/xc/revtpss.o
> build/temp.linux-x86_64-2.7/c/xc/ensemble_gga.o
> build/temp.linux-x86_64-2.7/c/xc/xc_mgga.o
> build/temp.linux-x86_64-2.7/c/xc/vdw.o  -L/home/wwtomlin/xc/lib
> -L/opt/gcc/5.1.0/snos/lib64 -L/opt/cray/libsci/13.2.0/GNU/5.1/x86_64/lib
> -L/app/COST/python/2.7.9/gnu/lib -L/opt/cray/mpt/7.2.6/gni/mpich-gnu/51/lib
> -L/app/COST/python/2.7.9/gnu/lib/python2.7/config -lxc -lpython2.7 -lpthread
> -ldl  -lutil -lm  -pg -L. -L/app/COST/bzip2/1.0.6/gnu//lib
> -L/app/COST/tcltk/8.6.4/gnu//lib
> -L/app/COST/dependencies/sqlite/3081101/gnu//lib
> -L/app/COST/dependencies/readline/6.3/gnu//lib -Xlinker -export-dynamic
>
>
> Below are the warnings and error I get:
> /app/COST/python/2.7.9/gnu/lib/libpython2.7.a(dynload_shlib.o): In function
> `_PyImport_GetDynLoadFunc':
> /app/COST/source/Python-2.7.9/Python/dynload_shlib.c:130: warning: Using
> 'dlopen' in statically linked applications requires at runtime the shared
> libraries from the glibc version used for linking
> /app/COST/python/2.7.9/gnu/lib/libpython2.7.a(posixmodule.o): In function
> `posix_tmpnam':
> /app/COST/source/Python-2.7.9/./Modules/posixmodule.c:7575: warning: the use
> of `tmpnam_r' is dangerous, better use `mkstemp'
> /app/COST/python/2.7.9/gnu/lib/libpython2.7.a(posixmodule.o): In function
> `posix_tempnam':
> /app/COST/source/Python-2.7.9/./Modules/posixmodule.c:7522: warning: the use
> of `tempnam' is dangerous, better use `mkstemp'
> /app/COST/python/2.7.9/gnu/lib/libpython2.7.a(posixmodule.o): In function
> `posix_initgroups':
> /app/COST/source/Python-2.7.9/./Modules/posixmodule.c:4161: warning: Using
> 'initgroups' in statically linked applications requires at runtime the
> shared libraries from the glibc version used for linking
> /app/COST/python/2.7.9/gnu/lib/libpython2.7.a(pwdmodule.o): In function
> `pwd_getpwall':
> /app/COST/source/Python-2.7.9/./Modules/pwdmodule.c:165: warning: Using
> 'getpwent' in statically linked applications requires at runtime the shared
> libraries from the glibc version used for linking
> /app/COST/python/2.7.9/gnu/lib/libpython2.7.a(pwdmodule.o): In function
> `pwd_getpwnam':
> /app/COST/source/Python-2.7.9/./Modules/pwdmodule.c:139: warning: Using
> 'getpwnam' in statically linked applications requires at runtime the shared
> libraries from the glibc version used for linking
> /app/COST/python/2.7.9/gnu/lib/libpython2.7.a(pwdmodule.o): In function
> `pwd_getpwuid':
> /app/COST/source/Python-2.7.9/./Modules/pwdmodule.c:114: warning: Using
> 'getpwuid' in statically linked applications requires at runtime the shared
> libraries from the glibc version used for linking
> /app/COST/python/2.7.9/gnu/lib/libpython2.7.a(pwdmodule.o): In function
> `pwd_getpwall':
> /app/COST/source/Python-2.7.9/./Modules/pwdmodule.c:164: warning: Using
> 'setpwent' in statically linked applications requires at runtime the shared
> libraries from the glibc version used for linking
> /app/COST/source/Python-2.7.9/./Modules/pwdmodule.c:176: warning: Using
> 'endpwent' in statically linked applications requires at runtime the shared
> libraries from the glibc version used for linking
> /usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in
> `/usr/lib/../lib64/libc.a(strcmp.o)' can not be used when making an
> executable; recompile with -fPIE and relink with -pie
> collect2: error: ld returned 1 exit status
>
>
> Finally, here are the lines from my customize.py file:
> compiler = 'cc'
> define_macros += [('PARALLEL', '1')]
> mpicompiler = 'cc'
> mpilinker = mpicompiler
>
> libraries = ['xc']
> scalapack = True
>
> mpi_library_dirs += ['/opt/cray/mpt/7.2.6/gni/mpich-gnu/51/lib']
> library_dirs += ['/home/wwtomlin/xc/lib']
> library_dirs += ['/opt/gcc/5.1.0/snos/lib64']
> library_dirs += ['/opt/cray/libsci/13.2.0/GNU/5.1/x86_64/lib']
> library_dirs += ['/app/COST/python/2.7.9/gnu/lib']
>
> mpi_include_dirs += ['/opt/cray/mpt/7.2.6/gni/mpich-gnu/51/include']
> include_dirs += ['/home/wwtomlin/xc/include']
> include_dirs += ['/opt/gcc/5.1.0/snos/include']
> include_dirs += ['/opt/cray/libsci/13.2.0/GNU/5.1/x86_64/include']
> include_dirs += ['/app/COST/python/2.7.9/gnu/include']
>
> define_macros += [('GPAW_NO_UNDERSCORE_CBLACS', '1')]
> define_macros += [('GPAW_NO_UNDERSCORE_CSCALAPACK', '1’)]
>
>
> My limited experience in this area tells me that there might be a problem
> with the way libc.a was compiled, but I’m note sure.  I can’t do anything
> about that directly, but I could bring a problem to the attention of the
> system administrators and they’re usually pretty helpful getting things
> updated.  Is that what I need to do?
>
> Thank you for any help,
> Warren
> PhD Student
> Naval Postgraduate School
>
> _______________________________________________
> gpaw-users mailing list
> gpaw-users at listserv.fysik.dtu.dk
> https://listserv.fysik.dtu.dk/mailman/listinfo/gpaw-users
>
>
>
> _______________________________________________
> gpaw-users mailing list
> gpaw-users at listserv.fysik.dtu.dk
> https://listserv.fysik.dtu.dk/mailman/listinfo/gpaw-users
>
>



More information about the gpaw-users mailing list