MPQC
3.0.0-alpha
|
The latest version of the source code is available from Github. Public stable releases of MPQC have not occured since 2006. Therefore it is recommended that the users obtain the latest source code directly from the code repository.
MPQC is a complex piece of software and can be customized extensively. For example, to use MPQC on a parallel machine an MPI library (see below) may be needed. While the basic subset of MPQC features will work on all platforms, advanced features of MPQC will require additional prerequisites.
The following programs are necessary to compile even a bare-bones version of MPQC. Most are available on any modern computer system.
flex
program is used for this purpose.Certain advanced features of MPQC require additional packages.
You can build MPQC in the source code directory or you can make a companion target directory which will be used to hold all of the files generated by the compilation. You may name this directory anything you want. Typically, this directory is named to indicate the architecture (e.g. mpqc.i686-linux
) and will be referred to as the target directory below.
A configure
script is used to prepare MPQC for compilation. In the target directory execute the configure
command which is located in the source directory. Use the absolute pathname to the configure script. This command should build a hierarchy of target directories and the necessary makefiles. Do a configure –help
to see a list of options. Options are specified with an equals sign, as in configure –prefix=/usr/local
. Some options, such as all the enable
and disable
options, do not require an argument. The most useful options to configure include:
–prefix
Specifies the installation directory. The default is /usr/local/mpqc/
version-number
–debug
Options for debugging will be given to the compiler.
–new-features
Enables compilations of all advanced features of MPQC, hence most, if not all, prerequisites will be checked and built, if needed.
If you would like to further customize your target directory, you can edit src/lib/mpqc_config.h
to suit your needs. The next time you run configure, this files and all the makefiles will be overwritten.
To compile with GNU compilers:
We are not aware of any significant issues with the GNU compilers.
To compile with Intel compilers, set appropriate CXX (and optionally C and FC):
C++11 support is incomplete as of version 13. See C++11 Features Supported by IntelĀ® C++ Compiler
Compiling Eigen generates lots of warnings #2536 and #2196.
Those can be disabled with -wd
switch, eg:
Using for range loops and openmp causes Intel compilers (at least version 13.0.1) to segfault, internal error: assertion failed at: "shared/cfe/edgcpfe/checkdir.c", line 5406<\tt>. As a workaround in production code use foreach macro.
CMake will try to find BLAS/LAPACK automatically. If it fails, a Netlib Lapack will be built and used (this is NOT recommended). You can also specify BLAS/LAPACK libraries with
–lapack
option.
BLAS/LAPACK libraries have
INTEGER
types that do not necessarily map to default C/C++ int
type. The default is to assume that INTEGER
type is 4-bytes. In case the BLAS/LAPACK library uses 8-byte types add –integer8
flag:
To use MKL (with GNU gfortran, GNU OpenMP, and 8-byte integers):
To use MKL with Intel compiler:
Now you are ready to build the libraries and executables. Do this by typing
make
in your target directory. If you are running on a symmetric multi-processor, you can use GNU make to parallelize the compilation. To compile four files at a time, type make -j4
.
You can install the executables and data files with
make install
. Starting with version 3, this will also install the libraries and header files needed for development.
See Validating MPQC for instructions for checking your compilation.