SIESTA 4.1-b3 설치(SKL)

슈퍼컴퓨팅인프라센터 2018. 11. 30. 15:27

KISTI 슈퍼컴퓨터센터의 누리온 시스템에 siesta-4.1-b3 source 버전으로 설치 하는 방법에 대하여 소개 한다.

가. 설치 환경

구분

내용

대상 시스템

누리온

OS Version

리눅스 / CentOS 7.3

CPU

Intel(R) Xeon(R) Gold 6148

컴파일러

Intel 2017.5 Version

MPI

IntelMPI 2017.5 Version

기타

Intel MKL Math Library

나. 설치 전 환경 설정

KISTI 시스템은 PATH, LD_LIBRARY_PATH 등을 쉽게 하기 위하여 OpenSource 인 Environment Modules(http://modules.sourceforge.net)이 구성되어 있고, 이하 설치 소개 에서는 module load를 이용한 환경 설정 방법을 이용한다.


[ 환경 설정 ]

$ module load craype-x86-skylake intel/17.0.5 impi/17.0.5 netcdf-hdf5-parallel/4.6.1

다. 설치 과정

설치 과정 소개는 tar 를 이용한 압축 해제 방법과 설정 방법등 진행 절차를 위주로 설명하고, 소스 파일 다운로드 등은 생략한다.

$ tar -xvf siesta-4.1-b3.tar.gz
$ cd siesta-4.1-b3
$ cd Obj
$ sh ../Src/obj_setup.sh
$ cp intel.make arch.make
$ vi arch.make 수정
- - - [arch.make 파일 수정 내용] 참고 - - -
$ make

[arch.make 파일 수정 내용]

#
# Copyright (C) 1996-2016 The SIESTA group
# This file is distributed under the terms of the
# GNU General Public License: see COPYING in the top directory
# or http://www.gnu.org/copyleft/gpl.txt.
# See Docs/Contributors.txt for a list of contributors.
#
#-------------------------------------------------------------------
# arch.make file for gfortran compiler.
# To use this arch.make file you should rename it to
# arch.make
# or make a sym-link.
# For an explanation of the flags see DOCUMENTED-TEMPLATE.make
.SUFFIXES:
.SUFFIXES: .f .F .o .c .a .f90 .F90
SIESTA_ARCH = unknown
CC = mpiicc
FPP = $(FC) -E -P
FC = mpiifort
FC_SERIAL = ifort
FFLAGS = -O2 -xCORE-AVX512 -fPIC
AR = ar
RANLIB = ranlib
SYS = nag
SP_KIND = 4
DP_KIND = 8
KINDS = $(SP_KIND) $(DP_KIND)
LDFLAGS = -mkl=cluster
COMP_LIBS = libsiestaLAPACK.a libsiestaBLAS.a
FPPFLAGS = $(DEFS_PREFIX)-DFC_HAVE_ABORT
MPI_INTERFACE = libmpi_f90.a
MPI_INCLUDE = .
FPPFLAGS += -DMPI
LIBS = -mkl=cluster -L/apps/compiler/intel/17.0.5/impi/17.0.5/applib2/x86-skylake/netcdf-hdf5-parallel/4.6.1/lib -lnetcdf
# Dependency rules ---------
FFLAGS_DEBUG = -g -O1 # your appropriate flags here...
# The atom.f code is very vulnerable. Particularly the Intel compiler
# will make an erroneous compilation of atom.f with high optimization
# levels.
atom.o: atom.F
**** $(FC) -c $(FFLAGS_DEBUG) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F) $<
pdos2k.o: pdos2k.F
$(FC) -c $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F) $<
pdos3k.o: pdos3k.F
$(FC) -c $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F) $<
.c.o:
$(CC) -c $(CFLAGS) $(INCFLAGS) $(CPPFLAGS) $<
.F.o:
$(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F) $<
.F90.o:
$(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_free_F90) $<
.f.o:
$(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_fixed_f) $<
.f90.o:
$(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_free_f90) $<

Last updated