Running problems
All the threads are running on a core MVAPICH2
Set env in bash
export MV2_ENABLE_AFFINITY=0
Consult MVAPICH2 document: 9.1.5 says
MVAPICH2 uses CPU affinity to have better performance for single-threaded programs. For multi-threaded programs, e.g. MPI+OpenMP, it may schedule all the threads of a process to run on the same CPU. CPU affinity should be disabled in this case to solve the problem, i.e. set -env MV2_ENABLE_AFFINITY 0
Build problems
Failed to link blas/lapack
If the automatic detection fails with cmake, set LAPACK environment. For example on a linux box,
export LAPACK="-L/usr/lib64 -llapack -lblas"
and cmake/make should solve the problem.
The procedure to link blas/lapack is not the same as that is used with
cmake distribution. It tries to locate the best BLAS/LAPACK
implementation on each platform and that means using MKL on Intel and
ACML on AMD processors.
On IBM systems, use ESSL and mass(v)
libraries. Since ESSL does not support important functions of LAPACK
used in QMPACK, it is always necessary to build and link LAPACK as well
as ESSL library. Setting LAPACK environment should work, e.g.
export LAPACK="-L${LAPACK_LIBDIR} -lnameoflapack -lessl -lmass -lmassv
Note
that the name of LAPACK library and mass libraries (and where they are
located) can vary on different systems. Consult the system
documentation. If all these fail, check IBM Power running Linux as an example to make a toolchain file that works on your system.
Failed to link HDF5
This
can happen when HDF5 library is compiled with compression libraries.
cmake 2.8.x and higher can handle the extra libraries nicely but for
those with older cmake, follow these steps.
- check libhdf5.settings if extra libraries are needed.
- Set these variables
- SZLIB_HOME for libsz
- ZLIB_HOME for libz
- cmake/make as usual.
Warning:
Very often, there are multiple installations of these libraries and
libxml2 may be using different libz from libz used by hdf5. It is easy
to build hdf5 yourself. You don't have to use the compression libraries,
since the performance of I/O is not critical for the typical QMCPACK runs.
|
|