KISTI 슈퍼컴퓨팅 기술 블로그

누리온 OpenFOAM-7 버전 설치 소개(SKL) 본문

SW 설치 문서 창고/누리온(NURION)

누리온 OpenFOAM-7 버전 설치 소개(SKL)

슈퍼컴퓨팅인프라센터 2019. 10. 25. 15:12

KISTI 슈퍼컴퓨팅센터의 누리온 시스템에 OpenFOAM-v7 Source 버전으로 설치하는 과정을 정리하여 사용자들이 설치하는 방법에 대하여 참고할 수 있도록 내용을 소개한다.

 

1. 설치 환경

  구분 내용 
 대상 시스템 누리온
 OS Version 리눅스 / CentOS 7.3
 CPU Intel(R) Xeon(R) Gold 6126
 컴파일러  Intel 2018.3
 MPI IntelMPI 2018.3

 기타

 


2. 설치 전 환경 설정

OpenFOAM-v7 버전 설치에 필요한 gmp, mpfr, mpc, boost, CGAL은 누리온 시스템에 미리 설치된 /apps/commons 라이브러리들을 사용한다.

만약 다른 버전의 gmp, mpfr, mpc, boost, CGAL이 필요한 경우는 사용자의 홈 디렉터리(/home01/$USER)에 설치 후 환경 설정을 해서 사용하면 된다.

 

[ 환경 설정 ]

$ module load cmake/3.12.3
$ module load intel/18.0.3 impi/18.0.3


3. OpenFOAM-v7 버전 설치 과정

 설치 과정 소개는 tar 를 이용한 압축 해제 방법과 설정 방법등 진행 절차를 위주로 설명하고, 소스 파일 다운로드 등은 생략한다.  
 설치 소개 시 사용된 경로 /Install_Path/SKL는 설치 안내를 위한 경로이므로, 사용자는 실제 사용할 경로를 지정하여 설치하면 된다
 
  설치과정  
$ cd /Install_Path/SKL
tar xzvf OpenFOAM-7-20190902.tar.gz
$ tar xzvf ThirdParty-7-version-7.tar.gz
$ mv OpenFOAM-7-20190902 OpenFOAM-7

$ mv ThirdParty-7-version-7 ThirdParty-7
$ vi OpenFOAM-7/etc/config.sh/settings 
- - - [settings 수정 사항] 참고 - - -
$ vi OpenFOAM-7/etc/bashrc 
- - - [bashrc 수정 사항] 참고 - - -
$ vi ThirdParty-7/makeCGAL
 - - - [makeCGAL 수정 사항] 참고 - - -
$ vi OpenFOAM-7/etc/config.sh/mpi 
- - - [mpi 수정 사항] 참고 - - -
$ vi OpenFOAM-7/wmake/rules/linux64Icc/c++ 
- - - [c++ 수정 사항] 참고 - - -
$ vi ThirdParty-7/scotch_6.0.6/src/Makefile.inc
  - - - [Makefile.inc 수정 사항] 참고 - - -
$ sed -i -e 's/\(boost_version=\)boost-system/\1boost_1_68_0/' OpenFOAM-7/etc/config.sh/CGAL
$ sed -i -e 's/\(cgal_version=\)cgal-system/\1CGAL-4.9.1/' OpenFOAM-7/etc/config.sh/CGAL
$ source OpenFOAM-7/etc/bashrc
$ mkdir -p $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER
$ ln -s /apps/common/gmp/6.1.2 $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/gmp-system
$ ln -s /apps/common/mpfr/4.0.1 $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/mpfr-system
$ ln -s /apps/common/mpc/1.1.0 $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/mpc-system
$ ln -s /apps/common/boost/1.68.0 $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/boost_1_68_0
$ ln -s /apps/common/CGAL/4.9.1 $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/CGAL-4.9.1
$ ln -s /apps/applications/cmake/3.12.3 $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/cmake-system
 
$ cd ThirdParty-7
$ ./Allwmake
 
$ cd $WM_PROJECT_DIR
$ ./Allwmake 

 

[settings 수정 사항]

 수정 전 64)
            WM_ARCH=linux64
            export WM_COMPILER_LIB_ARCH=64
            export WM_CC='gcc'
            export WM_CXX='g++'
            export WM_CFLAGS='-m64 -fPIC'
            export WM_CXXFLAGS='-m64 -fPIC -std=c++0x'


            export WM_LDFLAGS='-m64'
 수정 후  64)
            WM_ARCH=linux64
            export WM_COMPILER_LIB_ARCH=64
            export WM_CC='icc'
            export WM_CXX='icpc'
            export WM_CFLAGS='-m64 -fPIC -xCORE-AVX512'
            export WM_CXXFLAGS='-m64 -fPIC -xCORE-AVX512 -std=c++0x'
            export WM_LDFLAGS='-m64'

※ "-xCORE-AVX512" 옵션은 SKL CPU 타입 전용 옵션으로, SKL 계산노드와 KNL 계산노드 모두 실행을 희망하는 경우는 "-xCOMMON-AVX512" 로 변경해서 사용

 

[bashrc 수정 사항]

 수정 전  [ "$BASH" -o "$ZSH_NAME" ] && \
 export FOAM_INST_DIR=$(cd $(dirname $)/../.. && pwd -P) || \
 export FOAM_INST_DIR=$HOME/$WM_PROJECT
 
 export WM_COMPILER=Gcc
 export WM_MPLIB=SYSTEMOPENMPI
 수정 후  export FOAM_INST_DIR=/Install_Path/SKL
 
 export WM_COMPILER=Icc         (I는 대문자 cc는 소문자)
 export WM_MPLIB=INTELMPI

※ 위 수정 예제에서 /Install_Path/SKL 경로는 설치 시 사용된 경로이므로 변경 후 사용

 

[makeCGAL] 수정 사항]

수정 전   cgalPACKAGE=${cgal_version:-CGAL-4.10}
 boostPACKAGE=${boost_version:-boost-system}
수정 후  cgalPACKAGE=${cgal_version:-CGAL-4.9.1}
 boostPACKAGE=${boost_version:-boost_1_68_0}

 

[mpi 수정 사항]

 수정 전  libDir=`mpicc --showme:link | sed -e 's/.*-L\([^ ]*\).*/\1/'`
 수정 후  libDir=`mpiicc --showme:link | sed -e 's/.*-L\([^ ]*\).*/\1/'`

 

[c++ 수정 사항]

 수정 전  CC          = icpc -std=c++11 -fp-trap=common -fp-model precise
 수정 후  CC         = icpc -std=c++11 -xCORE-AVX512 -fp-trap=common -fp-model precise

 

 

[Makefile.inc 수정 사항]

 수정 전  AR              = gcc
 ARFLAGS         = $(WM_CFLAGS) -shared -o
 CCS             = gcc
 CCP             = mpicc
 CCD             = mpicc
 CFLAGS          = $(WM_CFLAGS) -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_RANDOM_FIXED_SEED - DSCOTCH_RENAME -Drestrict=__restrict
 CLIBFLAGS       = -shared
 수정 후  AR              = icc
 ARFLAGS         = -m64 -fPIC -shared -o
 CCS             = icc
 CCP             = mpiicc
 CCD             = mpiicc
 CFLAGS          = -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -Drestrict=__restrict -xCOMMON-AVX512
 
 CLIBFLAGS       = -shared -fPIC -xCOMMON-AVX512

 

4. 테스트

$ module load intel/18.0.3 impi/18.0.3
$ source /Install_Path/SKL/OpenFOAM-7/etc/bashrc
$ mkdir -p $FOAM_RUN 
$ run 
$ cp -r $FOAM_TUTORIALS/incompressible/simpleFoam/pitzDaily .
$ cd pitzDaily 
$ blockMesh 
$ simpleFoam 

 

 

Comments