|
[×ÊÔ´]
¡¾Ô´´¡¿²¢ÐбàÒëSIESTA
×î½üÏеÄÎÞÁÄ,ÔÚÊï¹â¼¯ÈºÉϲ¢ÐбàÒëÁËSIESTA,°ÑÆäÖеĹý³ÌºÍ½Ìѵ¸ú´ó¼Ò·ÖÏíÒ»ÏÂ.
1.»ñµÃSIESTA
SIESTA¶Ô¿ÆÑÐÈËÔ±ÊÇ¿ÉÒÔÃâ·ÑʹÓõÄ,Òò´Ë¿ÉÒÔÔÚhttp://www.icmab.es/siesta/Ö÷Ò³ÉÏ×¢²á,´ó¸ÅÁ½¸öÐÇÆÚºó¹ÜÀíÔ±»áͨ¹ýÉóºË,֪ͨÄú¿ÉÒÔʹÓÃSIESTA.È»ºó¾Í¿ÉÒÔ´ÓÉÏÃæÏÂÔص½Ô´Îļþ£¬ØÍÊÆÎļþµÈ¡£
2.±àÒëÆ÷°²×°
ÎÒÕâÀïʹÓõÄFORTRAN±àÒëÆ÷ÊÇPGI7.0£¬²¢ÐÐʹÓÃMPI-1.2.7.
PGIµÄ°²×°ºÜÓѺã¬Òò´Ë²»×ö½éÉÜ¡£
½Ó×ÅʹÓÃPGI±àÒëMPICH£¬ÏȽøÐÐÅäÖÃÉú³ÉMAKEFILEÎļþ¾ßÌåÊÇ£º
./configure -prefix=/your/mpich/directory -fc="pgf77 -Mx,119,0x200000" \
-f90="pgf90 -Mx,119,0x200000" \
-without-romio --without-mpe -opt=-O -rsh=ssh
È»ºó½øÈëÄãµÄ°²×°Ä¿Â¼£¬Ê¹ÓÃmakeÍê³É°²×°£¬×îºÃÊDzâÊÔÏÂÀý×ÓÈ·ÈÏ°²×°³É¹¦¡£
°²×°ÍêÖ®ºó½«MPICHµÄBIN¼ÓÈë»·¾³±äÁ¿ÖС£
3.°²×°Êýѧ¿â
²¢ÐбàÒëSIESTAÐèÒªÒÔÏÂ4¸öÊýѧ¿âBLAS,LAPACK,BLACSÒÔ¼°SCALAPACK£¬ÕâЩ¶¼¿ÉÒÔ´Óhttp://www.netlib.org/Ãâ·Ñ»ñµÃ¡£¶ÔÓÚBLASºÍLAPACK¿ÉÒÔʹÓÃÓÅ»¯¹ýµÄMKL£¨INTEL´¦ÀíÆ÷£©£¬ACML£¨AMD´¦ÀíÆ÷£©£¬Í¬ÑùºóÕßÒ²¿ÉÒÔ´ÓÍøÉÏÃâ·Ñ»ñµÃ¡£SIESTAÒ²ÄÜʹÓÃNETCDFÊýѧ¿â£¨ÕâÀïûÓÐʹÓã©¡£
ÔÚÕâÀïÎÒʹÓõÄACML£¬BLACSÒÔ¼°SCALAPACKÊýѧ¿â£¬ACMLµÄ°²×°ºÜÓѺ㬲»¹ýÒªÏÂÔضÔÓ¦ºÃ±àÒëÆ÷µÄ°æ±¾¡£ÕâÀïÖ÷Òª½éÉÜÏÂBLACSºÍSCALAPCKµÄ±àÒë¡£
3.1BLACSµÄ°²×°
´Óhttp://www.netlib.org/»ñµÃmpiblacs.gz£¬Ê¹ÓÃtar -zxvf mpiblacs.gz½âѹËõºó½øÈëBLACSĿ¼£¬´ÓBMAKESĿ¼Ï¿½±´³öÄã¶ÔӦϵͳϵͳµÄBmake.X-XÎļþµ½ÉÏһĿ¼µÄBmake.inc¶ÔÓÚÎÒµÄϵͳʹÓõÄÊÇ
cp Bmake.MPI-LINUX ../Bmake.inc
È»ºóÐÞ¸ÄBmake.incÎļþÖÐÏà¹ØÄÚÈÝ
ÏÈÐ޸ݲװĿ¼ BTOPdir =/your/BLACS/directory
½Ó×ÅÐÞ¸ÄMPIĿ¼MPIdir = /your/MPICH/directory
×îÖØÒªµÄÊǽ« INTFACE = -DAdd_ ÕâÀïÉèÖóÉ-DAdd_
È»ºóÉèÖà TRANSCOMM = -DUseMpich
×îºó½«ÏµÍ³Ä¬ÈϱàÒëÆ÷¸Ä³ÉPGI±àÒë
F77 = pgf77
F77NO_OPTFLAGS =
F77FLAGS = $(F77NO_OPTFLAGS) -O
F77LOADER = $(F77)
F77LOADFLAGS =
CC = pgcc
CCFLAGS = -O4
CCLOADER = $(CC)
CCLOADFLAGS =
Íê³ÉÐÞ¸ÄÖ®ºóʹÓÃmake mpi½øÐа²×°£¬°²×°³É¹¦ºó¾Í»áÔÚLIBĿ¼ÏÂÉú³ÉÈý¸öBLACS¿âÎļþ¡£
£¨ÕâÀï×¢ÒâµÄÊÇÈç¹û²»Ê¹ÓÃ-DAdd_ÒÔ¼°PGI±àÒëÆ÷£¬ÏµÍ³»áÔÚ±àÒëµ½×îºóÒ»²¿£¨Éú³É¿ÉÖ´ÐÐÎļþÊǶÔÊýѧ¿âÎļþ±¨´í£©£©¡£
3.2SCALAPACK°²×°
×°ºÃBLACSºó¾Í¿ÉÒÔ½øÐÐSCALAPACKµÄ°²×°ÁË
Èçͬ°²×°BLACS£¬ÏÂÔØSCALAPACKºó½âѹËõ£¬´Ó×ÓĿ¼Ï¿½±´³öÏàӦϵͳµÄSLmake.incÈ»ºó¶ÔÀïÃæÖƶ¨MPICH£¬BLACS£¬BLAS,LAPACKÊýѧ¿âµÄÏàӦλÖõĵط½½øÐÐÐ޸ģ¬Ö¸¶¨µ½ÄãËù°²×°µÄMPICH£¬BLACS£¬BLAS,LAPACKÊýѧ¿âλÖã¬Èç¹ûBLAS,LAPACKʹÓõÄÊÇMKL»òÕßACMLµÄÔòÖ¸¶¨ÏàÓ¦Îļþ¼ÐϵÄÏàÓ¦Îļþ£¬ÈçÎÒµÄÊÇÖƶ¨µ½/libacml.a¡£
ͬÑù×îÖØÒªÊǵÄÉèÖÃCDEFS = -DAdd_ -DNO_IEEE $(USEMPI)
(ÕâÀïÖ÷ÒªÒªÖ¸¶¨ºÃBLACS¿âº¯ÊýµÄλÖ㬶ÔÓÚBLASºÍLAPACKÓ°Ïì²»´ó)
±àÒëʹÓÃMPI½øÐÐ
F77 = mpif77
CC = mpicc
NOOPT =
F77FLAGS = -O3 $(NOOPT)
CCFLAGS = -O4
SRCFLAG =
F77LOADER = $(F77)
CCLOADER = $(CC)
F77LOADFLAGS =
CCLOADFLAGS =
4.±àÒëSIESTA
SIESTA±àÒëͬÑùÏȽâѹËõ£¬È»ºó½øÈëSrcĿ¼£¬½«/Src/SysĿ¼Ï¶ÔÓ¦µÄX-X.make¿½±´µ½Src£¬²¢¸ü¸ÄÃû×ÖΪarch.make,È»ºó¸ù¾ÝÄã¾ßÌåµÄÊýѧ¿âµØÖ·ºÍ±àÒëÆ÷Ãû×ÖÐÞ¸Äarch.make.
ÓÉÓÚʱ¼ä¹ØϵÕâÀïÎÒÖ±½Ó¸ø³öÎÒ×Ô¼ºµÄarch.make.¸ø´ó¼Ò×ö¸ö²Î¿¼
¸ü¸ÄÍê³Éºó£¬make¼´¿ÉÉú³ÉSIESTAÎļþ£¬È»ºó¿ÉÒÔÈ¥TESTSĿ¼Ï½øÐвâÊÔ¡£
PS£º
arch.makeÎļþ
#
# This file is part of the SIESTA package.
#
# Copyright (c) Fundacion General Universidad Autonoma de Madrid:
# E.Artacho, J.Gale, A.Garcia, J.Junquera, P.Ordejon, D.Sanchez-Portal
# and J.M.Soler, 1996-2006.
#
# Use of this software constitutes agreement with the full conditions
# given in the SIESTA license, as signed by all legitimate users.
#
SIESTA_ARCH=pgf90-mpich
#
FC=mpif90
FC_ASIS=$(FC)
#
FFLAGS= -O3 -fastsse -Mx,119,0x200000 -tp k8-64e
FFLAGS_DEBUG= -g -O0
RANLIB=echo
COMP_LIBS=dc_lapack.a
#
NETCDF_LIBS= # /public/home/liang/libs/netcdf-4.0.1/lib/libnetcdf.a
NETCDF_INTERFACE= # libnetcdf_f90.a
DEFS_CDF= # -DCDF
#
MPI_INTERFACE=libmpi_f90.a
MPI_INCLUDE=/your/MPICH/directory/include
DEFS_MPI=-DMPI -DFC_HAVE_FLUSH -DFC_HAVE_ABORT
#
# There are (were?) some problems with command-line processing compatibility
# that forced the extraction of "pgi.aux" and "pgiarg" as independent
# libraries (details unfortunately lost)
#
BLAS_LIBS=/your/BLAS/directory/libblas.a
LAPACK_LIBS=/your/LAPACK/diretory/liblapack.a
BLACS_LIBS=/your/BLACS/LIB/blacsF77init_MPI-LINUX-0.a /your/BLACS/LIB/blacs_MPI-LINUX-0.a /your/BLACS/LIB/blacsF77init_MPI-LINUX-0.a
SCALAPACK_LIBS=/your/scalapack-1.8.0/libscalapack.a
LIBS=$(SCALAPACK_LIBS) $(BLACS_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS) $(NETCDF_LIBS) $(PGI_LIBS) $(PGI_LIBS)
SYS=cpu_time
DEFS= $(DEFS_CDF) $(DEFS_MPI)
#
#
# Important (at least for V5.0-1 of the pgf90 compiler...)
# Compile atom.f and electrostatic.f without optimization.
#
atom.o:
$(FC) -c $(FFLAGS_DEBUG) atom.f
#
electrostatic.o:
$(FC) -c $(FFLAGS_DEBUG) electrostatic.f
#
.F.o:
$(FC) -c $(FFLAGS) $(INCFLAGS) $(DEFS) $<
.f.o:
$(FC) -c $(FFLAGS) $(INCFLAGS) $<
.F90.o:
$(FC) -c $(FFLAGS) $(INCFLAGS) $(DEFS) $<
.f90.o:
$(FC) -c $(FFLAGS) $(INCFLAGS) $<
# |
» ÊÕ¼±¾ÌûµÄÌÔÌùר¼ÍƼö
» ²ÂÄãϲ»¶
|