HPE CRAY 자료 공유

openfoam-v2006 install 본문

Applications/BUILDS

openfoam-v2006 install

알 수 없는 사용자 2021. 8. 6. 17:59

IBS aleph (XC50), GNU compiler 이용

 

1. ThirdParty application 설치

boost, cmake (따로 설치 후 module load 로 이용)
cgal, gmp, mpc, mpfr, scotch (ThirdParty directory에 위치)

 

2. etc/bashrc 수정

export WM_MPLIB=CRAY-MPICH
(XC 환경에 맞게 cray-mpich 선택)

 

3. etc/config.sh/settings

(cc, CC wrapper 사용을 위해 새로이 WM_ARCH 설정)
            WM_ARCH='crayxc'
            export WM_COMPILER_LIB_ARCH=64  # Target with lib64
            export WM_CC='cc'
            export WM_CXX='CC'
            export WM_CFLAGS='-fPIC'
            export WM_CXXFLAGS='-fPIC'

 

4. etc/config.sh/setup

(ThridParty application 설치 경로 찾아줌)
export WM_THIRD_PARTY_DIR="경로"

 

5. etc/config.sh/CGAL, scotch 파일 수정

ThridParty 경로와 버전을 수정

 

6. wmake/rules 밑에 crayxcGcc directory 생성 및 수정 (WM_ARCH=crayxc 이고 WM_COMPILER=gcc 이기 때문)

cp -r /wmake/rules/linux64Gcc /wmake/rules/crayxcGcc

wmake/rules/crayxcGcc/c 수정

SUFFIXES += .c

cc          = cc

cARCH       =
cDBUG       =
cOPT        = -O2
cWARN       = -Wall $(FOAM_EXTRA_CFLAGS)

cARCH       = -m64

# Compile option is non-mandatory, but must be non-empty
sinclude $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION)

cFLAGS      = $(cARCH) $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC

ctoo        = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $< -o $@


LINK_LIBS   = $(cDBUG)

LINKLIBSO   = $(cc) $(cARCH) -fuse-ld=bfd -shared

LINKEXE     = $(cc) $(cARCH) -fuse-ld=bfd -Xlinker --add-needed -Xlinker -z -Xlinker nodefs

wmake/rules/crayxcGcc/c++ 수정

SUFFIXES += .C .cc .cpp .cxx

CC          = CC

c++ARCH     =
c++DBUG     =
c++OPT      = -O2
ptFLAGS     = -DNoRepository -ftemplate-depth-100

# - Standard warnings
# - Less restrictive warnings (may be needed for flex++, CGAL, etc.)

c++WARN     = \
    -Wall -Wextra -Wold-style-cast \
    -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof \
    -Wno-attributes -Wno-unknown-pragmas \
    $(FOAM_EXTRA_CXXFLAGS)

c++LESSWARN = \
    -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds \
    -fpermissive

c++ARCH     = -m64

include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)

c++FLAGS    = $(c++ARCH) $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) $(LIB_HEADER_DIRS) -fPIC

Ctoo        = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $< -o $@
cxxtoo      = $(Ctoo)
cctoo       = $(Ctoo)
cpptoo      = $(Ctoo)

LINK_LIBS   = $(c++DBUG)

LINKLIBSO   = $(CC) $(c++FLAGS) -fuse-ld=bfd -shared \
    -Xlinker --add-needed \
    -Xlinker --no-as-needed \
    $(FOAM_EXTRA_LDFLAGS)

LINKEXE     = $(CC) $(c++FLAGS) -fuse-ld=bfd \
    -Xlinker --add-needed \
    -Xlinker --no-as-needed \
    $(FOAM_EXTRA_LDFLAGS)

wmake/rules/crayxcGcc/mplibCRAY-MPICH 생성 및 수정

PFLAGS   = -DMPICH_SKIP_MPICXX
PINC       =
PLIBS      =

 

7. bin/tools/Runfunctions 수정

   #if [ "$FOAM_MPI" = msmpi ]
    if [ "$FOAM_MPI" = msmpi || "$FOAM_MPI" = CRAY-MPICH ]

 

8. 빌드 방법

module swap PrgEnv-cray PrgEnv-gnu
module add cmake
module add boost
export CRAYPE_LINK_TYPE=dynamic
export CRAY_ADD_RPATH=yes

source etc/bashrc

./Allwmake > openfoam-build.log 2> openfoam-err.log

 

'Applications > BUILDS' 카테고리의 다른 글

[OpenMPI] 설치 옵션 정리  (0) 2022.02.08
CentOS 7.9 Kernel AMD Milan Patch  (0) 2021.12.20
singularity-3.8.5  (0) 2021.12.20
docker 20.10.8 install  (0) 2021.08.09
singularity-ce-3.8.0 install  (0) 2021.07.09