[Hpc-forum] VASP fordítás
Rőczei Gábor
roczei at niif.hu
2012. Sze. 3., H, 17:52:19 CEST
Kedves Csonka Gábor és szuperszámítógép fehasználók,
On 2012.09.03., at 17:21, Csonka Gabor wrote:
> Kedves Gábor, szeretnék segíteni, elkezdeném a fordítást a saját munka
> területemen. Ha op. rendszer specifikus szakmai segítség kell, akkor
> szeretnék segítséget kérni. Fordulhatok valakihez?
Én már elkezdtem a VASP fordításával foglalkozni a budapesti gépen. AMD Open64 fordítót, ACML-es matematikai könyvtárat (Szegeden és Budapesten ezt ajánlott használni) és ezt az MPI verziót állítottam be:
[login.budapest:~]$ mpi-selector --query
default:openmpi_open64-1.6
level:user
[login.budapest:~]$
Erre a makefile módosításra volt szükség:
[login.budapest:~/VASP5/src/vasp.5.2]$ diff -u makefile.hp makefile
--- makefile.hp 2009-04-15 11:51:08.000000000 +0200
+++ makefile 2012-06-24 10:38:59.000000000 +0200
@@ -22,7 +22,7 @@
SUFFIX=.f90
# fortran compiler us $(FC) allready set
-FC=f90
+FC=mpif90
FCL=$(FC)
# C-preprocessor define any of the flags given below
@@ -34,27 +34,27 @@
# wNGXhalf gamma point only reduced in X direction
# wNGZhalf gamma point only reduced in Z direction
-CPP = ./preprocess <$*.F >$*$(SUFFIX)
-CPPFLG= +cpp=yes -DHOST=\"HP\" \
- -Dkind8 -DNGXhalf -DCACHE_SIZE=0
+CPP_ = ./preprocess <$*.F | /opt/x86_open64/v1.0/x86_open64-4.2.4/open64-gcc-4.2.0/bin/cpp -P -C -traditional >$*$(SUFFIX)
+
+CPP = $(CPP_) -DHOST=\"Open64-AMD\" \
+ -Dkind8 -DCACHE_SIZE=12000 -Davoidalloc -DNGXhalf
# general fortran flags
-PROF = +pa
+PROF =
FFLAGS = $(CPPFLG) $(PROF)
# optimization (if you are running on POWER2 only set -qarch=pwr2)
-OFLAG = -O +Odataprefetch +Olibcalls +Oinfo
+OFLAG = -Ofast
OFLAG_HIGH = $(OFLAG) #+O3 +Oaggressive +Onovectorize +Oreport=all
OBJ_HIGH = rmm-diis.o nonlr.o dfast.o $(FFT3D)
OBJ_NOOPT = steep.o
DEBUG = -g
-INCS = -I../../archives/mpich/include/
+INCS = -I/opt/x86_open64/v1.0/openmpi/1.6/include
INLINE = $(OFLAG)
# options for linking
-LINK = $(FFLAGS) $(OFLAGS) +FPD
-#LIB = -Wl,-L../vasp.5.lib -ldmy ../vasp.5.lib/linpack_double.o ../vasp.5.lib/lapack_double.o -lveclib -lm
-LIB = -Wl,-L../vasp.5.lib -ldmy ../vasp.5.lib/linpack_double.o -llapack -lveclib -lm
+LINK = $(FFLAGS) $(OFLAGS)
FFT3D = fft3dfurth.o fft3dlib.o
+LIB = -L/opt/x86_open64/v1.0/openmpi/1.6/lib -L/opt/acml/open64_64_int64/lib -lacml -lm
#-----------------------------------------------------------------------
# general rules and compile lines
[login.budapest:~/VASP5/src/vasp.5.2]$
Ezután kiadtam a "make" parancsot...
Egy fordítási hibát kellene megoldanunk közösen és akkor már elvileg készen is vagyunk. Én sajnos nem értek a Fortran-hoz. Erről lenne szó:
[login.budapest:~/VASP5/src/vasp.5.2]$ make
./preprocess <dfast.F | /opt/x86_open64/v1.0/x86_open64-4.2.4/open64-gcc-4.2.0/bin/cpp -P -C -traditional >dfast.f90 -DHOST=\"Open64-AMD\" -Dkind8 -DCACHE_SIZE=12000 -Davoidalloc -DNGXhalf
mpif90 -Ofast -I/opt/x86_open64/v1.0/openmpi/1.6/include -c dfast.f90
USE dfast
^
openf95-736 openf90: ERROR LINCOM, File = dfast.f90, Line = 157, Column = 11
"LINCOM" is the name of this program unit, therefore it must not be use associated from module "DFAST".
Ezen leírás szerint át kellene nevezni valamit: http://devgurus.amd.com/thread/153608
Ha esetleg valaki tudna nekem segíteni akkor nagyon megköszönném!
Üdvözlettel,
Rőczei Gábor
Ui.: Nagyon örülnék, ha ezentúl minden fordítással kapcsolatos problémát a hpc-forum at listserv.niif.hu listán oldanánk majd meg. Ezáltal mindenki hozzá tudna szólni egy adott problémához és ebből kifolyólag sokkal hatékonyabbak lehetnénk.
További információk a(z) Hpc-forum levelezőlistáról