Recent site activity

FAQ


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.