Installing VASP on the Itanium Cluster

I am using the Intel Itanium compiler Version 6.0.1, Build 20020821 installed at the Ohio State Supercomputer Center and the MPI library mpich-1.2.4..8a. I am currently not using Intel's MKL libraries. I compiled VASP with the latest MKL libraries and found no problem but also no speed advantage over the netlib BLAS libraries on the Itanium cluster. Early versions of the MKL library had problems with some BLAS routines. On the Itanium 2 cluster I have not been able to successfully link VASP to the MKL libraries.

The early MKL libraries are not the only Itanium software with problems. The Fortran90 compiler "efc" has difficulties with the initialization of array variables. I had to make small changes to the subroutines optics.F and pseudo.F in order to initialize some arrays properly and get VASP to run.

See sample make file. Be careful to check all the tab are in place.

In file optics.F line 396, replace "P(NT)%NABLA=0._q" with


#ifdef INTEL
      DO IDIR=1,3
      DO LL=1,P(NT)%LMMAX
      DO MP=1,P(NT)%LMMAX
         P(NT)%NABLA(IDIR,LL,MP)=0._q
      ENDDO
      ENDDO
      ENDDO
#else
      P(NT)%NABLA=0._q
#endif

In file pseudo.F line 159, replace


      P(NTYP)%DION=0
      P(NTYP)%QION=0
with

#ifdef INTEL
      DO I=1,LDIM
         DO J=1,LDIM
            P(NTYP)%DION(I,J)=0
            P(NTYP)%QION(I,J)=0
         ENDDO
      ENDDO
#else
      P(NTYP)%DION=0
      P(NTYP)%QION=0
#endif

In file pseudo.F line 312, replace


         P(NTYP)%NABLA=0
         READ(10,*)
         P(NTYP)%QPAW=0
         READ(10,FORM) P(NTYP)%QPAW(:,:,0)

         READ(10,'(1X,A1)') CSEL
         IF (CSEL=='t') THEN
            READ(10,*) P(NTYP)%QTOT
            READ(10,*)
         ELSE
            P(NTYP)%QTOT=0
            DO I=1,CHANNELS
               P(NTYP)%QTOT(I,I)=1
            ENDDO
         ENDIF
with

#ifdef INTEL
         DO I=1,LMDIM
            DO J=1,LMDIM
               P(NTYP)%NABLA(1,I,J)=0
               P(NTYP)%NABLA(2,I,J)=0
               P(NTYP)%NABLA(3,I,J)=0
            ENDDO
         ENDDO
#else
         P(NTYP)%NABLA=0
#endif
         READ(10,*)
#ifdef INTEL
         DO I=1,CHANNELS
            DO J=1,CHANNELS
               DO K=0,LMAX
                  P(NTYP)%QPAW(I,J,K)=0
               ENDDO
            ENDDO
         ENDDO
#else
         P(NTYP)%QPAW=0
#endif
         READ(10,FORM) P(NTYP)%QPAW(:,:,0)
         READ(10,'(1X,A1)') CSEL
         IF (CSEL=='t') THEN
            READ(10,*) P(NTYP)%QTOT
            READ(10,*)
         ELSE
#ifdef INTEL
            DO I=1,CHANNELS
               DO J=1,CHANNELS
                  P(NTYP)%QTOT(I,J)=0
               ENDDO
               P(NTYP)%QTOT(I,I)=1
            ENDDO
#else
            P(NTYP)%QTOT=0
            DO I=1,CHANNELS
               P(NTYP)%QTOT(I,I)=1
            ENDDO
#endif
         ENDIF

These were all the changes I had to make. Note that you may need to specify the location of the efc compiler in the makefile and the location of your blas or MKL library whichever one you want to use. I also attach the makefile for the Itanium cluster to this mail. Please let me know if you have any trouble reading this attachement.

The Itanium and Itanium 2 clusters run VASP in parallel significantly faster than the Pentium or AMD clusters.

Richard Hennig, rhennig@mps.ohio-state.edu


To cite this page:
Installing VASP on the Itanium Cluster
<http://www.physics.ohio-state.edu>
[]
Edited by: wilkins@mps.ohio-state.edu on