[Hpc-forum] SIESTA lefordítása

Rőczei Gábor roczei at niif.hu
2012. Sze. 29., Szo, 09:33:08 CEST


Kedves Péter,

Úgy néz ki hogy sikerült lefordítanom a számodra.

Ezek a weboldalak is segítettek:

http://hpcwiki.it.okstate.edu/index.php/Building_Siesta
http://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mkl_userguide_lnx/GUID-A2BEE926-ACA7-40B1-94D7-F728D145E1C0.htm

Lépések:

1)

cd Obj
sh ../Src/obj_setup.sh

2)

../Src/configure --with-siesta-blas --with-siesta-lapack --enable-mpi 

3)

Src/arch.make módosítása erre:

# This is a dummy arch.make
# You should not compile Siesta in this directory.
# See Obj/README
#

.SUFFIXES:
.SUFFIXES: .f .F .o .a .f90 .F90

SIESTA_ARCH=x86_64-linux-Intel_MPI

FC=mpif90
RANLIB=ranlib

SYS=nag

MKLPATH=/opt/intel/mkl/lib/intel64/

SP_KIND=4
DP_KIND=8
KINDS=$(SP_KIND) $(DP_KIND)

FFLAGS=-I/opt/intel/mkl/include/ -I/opt/intel/mkl/include/intel64/lp64/
FPPFLAGS= -DFC_HAVE_FLUSH -DFC_HAVE_ABORT

COMP_LIBS=dc_lapack.a

#SIESTA needs an F90 interface to MPI
#This will give you SIESTA's own implementation
#If your compiler vendor offers an alternative, you may change
#to it here.
MPI_INTERFACE=/opt/sgi/mpt/mpt-2.04/lib/libmpi.so
MPI_INCLUDE=/opt/sgi/mpt/mpt-2.04/include
MPI_LIBS =-L/opt/sgi/mpt/mpt-2.04/lib -lmpi
DEFS_MPI=-DMPI
DEFS= $(DEFS_MPI)

LIBS=-Wl,--start-group $(MKLPATH)/libmkl_blas95_lp64.a \
$(MKLPATH)/libmkl_lapack95_lp64.a $(MKLPATH)/libmkl_scalapack_lp64.a \
$(MKLPATH)/libmkl_blacs_sgimpt_lp64.a $(MKLPATH)/libmkl_intel_lp64.a \
$(MKLPATH)/libmkl_sequential.a $(MKLPATH)/libmkl_core.a -Wl,--end-group \
-lpthread -lm

#Dependency rules are created by autoconf according to whether
#discrete preprocessing is necessary or not.
.F.o:
	$(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F) $(DEFS) $<
.F90.o:
	$(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_free_F90) $(DEFS) $<
.f.o:
	$(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_fixed_f)  $<
.f90.o:
	$(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_free_f90)  $<

4)

Makefile módosítás (nem túl szép, de nincs időm most szépen megcsinálni):

roczei at service0:~/siesta-3.1/Obj> diff -u Makefile.old Makefile
--- Makefile.old	2012-09-29 08:58:56.868220812 +0200
+++ Makefile	2012-09-29 08:59:21.191647037 +0200
@@ -245,7 +245,11 @@
                 $(COMP_LIBS) $(ALL_OBJS) 
 	$(FC) -o siesta \
 	       $(LDFLAGS) $(ALL_OBJS) $(FDF) $(WXML) $(XMLPARSER) $(MPI_INTERFACE)\
-               $(COMP_LIBS) $(FoX_LIBS) $(LIBS) 
+               $(COMP_LIBS) $(FoX_LIBS) $(LIBS) -Wl,--start-group /opt/intel/mkl/lib/intel64/libmkl_blas95_lp64.a \
+/opt/intel/mkl/lib/intel64/libmkl_lapack95_lp64.a /opt/intel/mkl/lib/intel64/libmkl_scalapack_lp64.a \
+/opt/intel/mkl/lib/intel64/libmkl_blacs_sgimpt_lp64.a /opt/intel/mkl/lib/intel64/libmkl_intel_lp64.a \
+/opt/intel/mkl/lib/intel64/libmkl_sequential.a /opt/intel/mkl/lib/intel64/libmkl_core.a -Wl,--end-group \
+-lpthread -lm
 #
 #------------------------------------------------------------------------
 #----------------------------------------------------------------------------
roczei at service0:~/siesta-3.1/Obj> 


5)

make

6)

Teszt:

sule at service0:~/bin/SIESTA/siesta-3.1/Obj> /opt/sgi/mpt/mpt-2.04/bin/mpirun -np 10 ./siesta
Siesta Version:                                        siesta-3.1
Architecture  : x86_64-unknown-linux-gnu--Intel
Compiler flags: mpif90 -g
PARALLEL version

* Running on   10 nodes in parallel
>> Start of run:  29-SEP-2012   9:24:59

                           ***********************       
                           *  WELCOME TO SIESTA  *       
                           ***********************       

reinit: Reading from standard input
************************** Dump of input data file ****************************

Gábor

On 2012.09.28., at 16:33, Süle Péter wrote:

> 
> Köszi. Sajnos az eredmény ua.
> 
> MPI: This application was not compiled with a mpi.h or mpif.h header file from
> SGI's MPT MPI implementation.
> MPI: This application was not compiled with a mpi.h or mpif.h header file from
> SGI's MPT MPI implementation.
> MPI: This application was not compiled with a mpi.h or mpif.h h
> 
> Üdv. Péter
> 
> On Fri, 28 Sep 2012, Rőczei Gábor wrote:
> 
>> Kedves Péter,
>> 
>> Ezen leírás (http://www.mail-archive.com/siesta-l@uam.es/msg04389.html) alapján készítettem Neked egy arch.make fájlt:
>> 
>> roczei at service0:~/siesta-3.1/Src> cat arch.make
>> # This is a dummy arch.make
>> # You should not compile Siesta in this directory.
>> # See Obj/README
>> #
>> 
>> .SUFFIXES:
>> .SUFFIXES: .f .F .o .a .f90 .F90
>> 
>> SIESTA_ARCH=x86_64-linux-Intel_MPI
>> 
>> FC=mpif90
>> RANLIB=ranlib
>> 
>> SYS=nag
>> 
>> MKLPATH=/opt/intel/mkl/lib/intel64/
>> 
>> SP_KIND=4
>> DP_KIND=8
>> KINDS=$(SP_KIND) $(DP_KIND)
>> 
>> FFLAGS=-I/opt/intel/mkl/include/ -I/opt/intel/mkl/include/intel64/lp64/
>> FPPFLAGS= -DFC_HAVE_FLUSH -DFC_HAVE_ABORT
>> 
>> COMP_LIBS=dc_lapack.a
>> 
>> #SIESTA needs an F90 interface to MPI
>> #This will give you SIESTA's own implementation
>> #If your compiler vendor offers an alternative, you may change
>> #to it here.
>> MPI_INTERFACE=
>> MPI_INCLUDE=/opt/sgi/mpt/mpt-2.04/include
>> MPI_LIBS =-L/opt/sgi/mpt/mpt-2.04/lib -lmpi
>> DEFS_MPI=-DMPI
>> DEFS= $(DEFS_MPI)
>> 
>> LIBS=-Wl,--start-group $(MKLPATH)/libmkl_blas95_lp64.a \
>> $(MKLPATH)/libmkl_lapack95_lp64.a $(MKLPATH)/libmkl_scalapack_lp64.a \
>> $(MKLPATH)/libmkl_blacs_intelmpi_lp64.a $(MKLPATH)/libmkl_intel_lp64.a \
>> $(MKLPATH)/libmkl_sequential.a $(MKLPATH)/libmkl_core.a -Wl,--end-group \
>> -lpthread -lm
>> 
>> #Dependency rules are created by autoconf according to whether
>> #discrete preprocessing is necessary or not.
>> .F.o:
>> 	$(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F) $(DEFS) $<
>> .F90.o:
>> 	$(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_free_F90) $(DEFS) $<
>> .f.o:
>> 	$(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_fixed_f)  $<
>> .f90.o:
>> 	$(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_free_f90)  $<
>> 
>> roczei at service0:~/siesta-3.1/Src>
>> 
>> Ma több időt nem tudok ezzel foglalkozni. Légyszives próbáld meg ezzel.
>> 
>> Hozzáadtam a CC-hez a hpc-forum-ot is, hátha valaki más is használ Siesta-t és tudja hogyan kell lefordítani.
>> 
>> Gábor
>> 
>> 
>> On 2012.09.28., at 14:59, Süle Péter wrote:
>> 
>>> 
>>> Szia !
>>> 
>>> Közben megpróbáltam sgi/mpt-2.04/bin/mpif90-el fordítani,
>>> de így is bajok vannak:
>>> Simán lefordul, linkelődik, de futáskor:
>>> 
>>> /scratch/sule/SIESTA/gr/test/t4/mpirun -np 4 /home/sule/bin/SIESTA/siesta-3.1/Obj/siesta <gr.fdf
>>> 
>>> MPI: This application was not compiled with a mpi.h or mpif.h header file from
>>> SGI's MPT MPI implementation.
>>> MPI: Global rank 0 is aborting with error code 0.
>>>    Process ID: 10995, Host: service0, Program: /mnt/nfs1/home/sule/bin/SIESTA/siesta-3.1/Obj/siesta
>>> 
>>> MPI: --------stack traceback-------
>>> MPI: This application was not compiled with a mpi.h or mpif.h header file from
>>> SGI's MPT MPI implementation.
>>> MPI: This application was not compiled with a mpi.h or mpif.h
>>> 
>>> a következőt használtam:
>>> Compiler flags: /opt/sgi/mpt/mpt-2.04/bin/mpif90 -g -O2 -I/opt/sgi/mpt/mpt-2.04/include
>>> 
>>> Elvileg meg kellene találnia az mpi.h és mpif.h file-t
>>> az /opt/sgi/mpt/mpt-2.04/include helyen. De valami miatt
>>> nem teszi. Ez nekem rendszer hiba gyanús, vagy más
>>> nem kód specifikus probléma.
>>> Ja és volt: mpi-selector --set mpt-2.04
>>> 
>>> hely:
>>> /home/sule/bin/SIESTA/siesta-3.1/Obj/siesta




További információk a(z) Hpc-forum levelezőlistáról