Next: Linux Specific Issues
Up: Prerequisites
Previous: Hardware Requirements
Contents
Index
To compile CPMD in serial a FORTRAN 77 / FORTRAN 90 compiler
that supports ``Cray Pointer'' style dynamical memory management
is required. This is true for the vast majority of commercially
available FORTRAN compilers and the GNU Gfortran compiler.
Additionally a library containing BLAS/LAPACK linear algebra
subroutines is required. Those can be compiled from the reference
code available from http://www.netlib.org,
but this is not recommended since in most cases, alternate,
vendor optimized versions exist that result in significantly
improved performance. An Open Source ``self-optimizing'' version (ATLAS)
exists at http://math-atlas.sourceforge.net/
and an alternate approach to achieve optimal performance (Goto BLAS)
can be found at http://www.tacc.utexas.edu/resources/software/#blas.
Optionally, CPMD can be compiled with external FFT libraries,
but it also includes a portable FORTRAN based FFT implementation,
that is quite competitive. As much as the speed of the FFT itself
for a given grid size, the number of available grid dimensions has
a significant impact on the performance, as CPMD always tries use
the smallest grid that matches the requirements and for 3d-Fourier
transforms the gain from being able to use a smaller grid frequently
outweighs the difference in performance, if the vendor FFT requires
a larger grid.
To compile CPMD in parallel, an MPI library is required and
the MPI library has to be adapted to the fast network. CPMD requires
only a small subset of the MPI-1 standard, practically all currently
available MPI implementations - including several Open Source MPI
packages - can be used to compile and run CPMD in parallel.
Next: Linux Specific Issues
Up: Prerequisites
Previous: Hardware Requirements
Contents
Index
Costas Bekas
2008-09-04