next up previous contents index
Next: Linux Specific Issues Up: Prerequisites Previous: Hardware Requirements   Contents   Index

Software Requirements

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 up previous contents index
Next: Linux Specific Issues Up: Prerequisites Previous: Hardware Requirements   Contents   Index
Costas Bekas 2008-09-04