next up previous contents
Next: Performance optimisation of VASP Up: The installation of VASP Previous: CRAY_MPP   Contents


Compiling VASP.4.X, f90 compilers

Compilation of VASP.4.X is not always straightforward, because f90 compilers are in general not very reliable yet. Mind that the include file mpif.h must be supplied in f90 style for the compilation of the parallel version (see Section 3.5.15). Here is a list of compilers and platforms and the kind of problems we have detected, in some cases more information can be found in the relevant makefiles:

  • CRAY C90/J90

    No problems, but compilation (especially of main.F) takes a long time. If there are time-limits the f90 compiler might be killed during compilation. In that case a corrupt .o file remains, and must be removed by hand. If the last file compiled was for instance nonl.F, the user must logout, login again and type

    
      rm nonl.o
    
    before typing make again.

  • IBM RS6000, IBM-SP2

    All compiler versions starting from 3.2.5.0 work correctly (including xlf90 4.X.X). Compiler version 3.2.0.0 will not compile the parallel version correctly, but the serial version should be fine. One user reported that the version 3.2.3.0 compiles the parallel version correctly if the option -qddim is used.

    On some systems the file mpif.h is located in the default include search path. Copying the mpif.h file to the local directory and converting it to f90 style does not work (because the system wide mpif.h file is always included). One solution is to rename the mpif.h file to mpif90.h. If the new mpi routines (parallel$\_n$ew.tar) are used only the line

    
          INCLUDE "mpif.h"
    
    must be changed to
    
          INCLUDE "mpif90.h"
    
    in the file pm.inc.

    (use lslpp -L | grep xlf to find out the current compiler version)

  • SGI

    On some SGI's the option -64 must be changed to -n32 in the makefiles of VASP.4.X and VASP.lib (O2 for instance).

    Power Fortran 90, 7.2 on irix 6.2 works correctly. Older version tend to crash when compiling main.F, in particular compiler version Fortran 90, 6.3 and 7.1 will not work.

    (use versions | grep f90 to find out the current compiler version)

  • DEC

    The compiler version DIGITAL Fortran 90 V5.0-492 and V5.2 compile VASP.4.X correctly. Older compiler releases and release V5.1 do not compile VASP, and require a compiler fix or upgrade.

  • T3D

    No problems, but compilation (especially of main.F) takes a long time. If there are time-limits the f90 compiler might be killed during compilation. In that case a corrupt .o file remains, and must be removed by hand. If the last file compiled was for instance nonl.F, the user must logout, login again and type

    
      rm nonl.o
    
    before typing make again. Do not forget to upload all required modules before starting compilation. This is usually done in the profile, on the U.K. T3D the following modules must be initialised:
    
    if [ -f /opt/modules/modules/init/ksh ] ; then
     # Initialize modules
     . /opt/modules/modules/init/ksh
     module load modules PrgEnv
    fi
    

    VASP supports only the newest ``alpha'' scaLAPACK release on the T3D (on the T3E PrgEnv 3.0.1.0 must be installed), and VASP will not work correctly with the scaLAPACK version supplied in the libsci.a (libsci.a contains only a down-scaled scaLAPACK version, supporting very limited functionality). If you do not have access to this alpha release you must switch of the scaLAPACK (see Sec. 3.5.20).

  • T3E

    The compiler versions 3.0.1.0 (and newer) should compile the code correctly and without difficulties.

    It might be necessary to change the makefiles slightly: On the IDRIS-T3E the cpp (C-preprocessor) was located in the directory /usr/lib/make/, it might be necessary to change this location (line CPP in the makefiles) on other T3E machines.

    For best performance one should also allow for hardware data streaming on the T3E, this can be done using

    
     export SCACHE_D_STREAMS=1
    
    before running the code. The performance improvements can be up to $30\%$. But we have to point out that the code crashed from time to time if the switch T3D_SMA is specified in the makefile. Therefore in the default makefile, T3D_SMA is currently not specified (and the optimised T3D/T3E communication routines are not used). If the communication performance is very important, T3D_SMA can be specified in the makefile, but then it might be required to switch on data streaming explicitly of by typing:
    
     export SCACHE_D_STREAMS=0
    

  • LINUX

    Reportedly the NAG compiler NAGWare f90 compiler Version 2.2(260) can compile the code. We do not have access to this version, so that we can not help if problems are experienced with NAG compilers under LINUX. Please also check the makefiles before attempting the compilation.

    At present we support the Portland Group F90/HPF (PGI). Tests for the Absoft f90 compiler have shown that the code generated by the PGI compiler is 10-30% faster. The makefiles for the PGI f90 compiler have the extension linux_pg. Release 1.7 and 3.0.1 have been tested to date, the resulting code has the same speed for both releases. For more details please check the makefile.


next up previous contents
Next: Performance optimisation of VASP Up: The installation of VASP Previous: CRAY_MPP   Contents
Georg Kresse
2009-04-23