콘텐츠로 이동

Translation update pending

The Korean translation may be out of date because the Japanese source has changed. The existing translation remains available while it is being updated.

CMake를 이용한 빌드 절차

이 페이지에서는 FrontISTR 소스 코드의 입수부터 빌드·설치까지의 절차를 설명한다. 의존 라이브러리의 자세한 내용은 필수·선택 의존 라이브러리를 참조한다.

소스 코드 입수

FrontISTR 소스 코드는 GitLab 또는 GitHub에서 입수할 수 있다.

# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git

# GitHub(미러)
git clone https://github.com/FrontISTR/FrontISTR.git

빌드 절차

FrontISTR는 아웃오브소스 빌드를 전제로 한다(소스 트리 바로 아래에서의 빌드는 금지되어 있다). build 디렉터리를 만들고 그 안에서 cmake를 실행한다.

cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)

빌드 후에는 /path/to/FrontISTR/build/fistr1/fistr1로 직접 실행할 수 있다. 시스템 경로(CMAKE_INSTALL_PREFIX)에 설치하는 경우에는 추가로 다음을 실행한다.

cmake --build . --target install

CMake 옵션 목록

「검출 시 ON」으로 기재된 옵션은 cmake 실행 시 시스템에서 해당 라이브러리가 발견되면 자동으로 활성화된다. 명시적으로 -DWITH_XXX=OFF를 지정하면 비활성화할 수 있다.

옵션 기본값 설명
WITH_MPI ON MPI 병렬을 활성화한다
WITH_OPENMP 검출 시 ON OpenMP 스레드 병렬을 활성화한다
WITH_METIS 검출 시 ON METIS에 의한 영역 분할을 활성화한다
WITH_MUMPS 검출 시 ON MUMPS 병렬 직접법 솔버를 활성화한다
WITH_MKL 검출 시 ON Intel MKL(PARDISO 포함)을 활성화한다
WITH_LAPACK 검출 시 ON LAPACK에 의한 조건수 추정을 활성화한다
WITH_ML 검출 시 ON Trilinos ML에 의한 AMG 전처리를 활성화한다
WITH_REFINER 검출 시 ON REVOCAP_Refiner에 의한 메시 세분화를 활성화한다
WITH_REVOCAP 검출 시 ON REVOCAP_Coupler에 의한 연성 해석을 활성화한다
WITH_TOOLS ON 부속 도구 모음을 빌드한다
WITH_DOC OFF Doxygen으로 API 문서를 생성한다
WITH_NETCDF 검출 시 ON Exodus II 형식 출력(NetCDF)을 활성화한다
WINDOWS OFF Windows용 빌드를 활성화한다
CMAKE_BUILD_TYPE RELEASE 빌드 유형(RELEASE / DEBUG)
CMAKE_INSTALL_PREFIX /usr/local 설치 대상 디렉터리
DEBUG_EXTRA OFF 메모리 누수 검사를 활성화한다(GCC용, -fsanitize=address)
NVHPC_NO_ACC OFF NVIDIA HPC SDK 컴파일러를 사용할 때 OpenACC를 비활성화하고 CPU 버전을 빌드한다

DEBUG 빌드

CMAKE_BUILD_TYPE=DEBUG를 지정하면 컴파일러별로 다음 디버그 플래그가 추가된다.

컴파일러 추가 플래그
GCC -fbounds-check -fbacktrace
Intel -check uninit,bound -traceback
cmake -DCMAKE_BUILD_TYPE=DEBUG ..

GPU를 사용한 빌드

NVIDIA HPC SDK(nvc/nvc++/nvfortran)를 컴파일러로 지정한 경우 CMake는 자동으로 다음 플래그를 추가한다.

플래그 설명
-acc OpenACC를 활성화한다
-Minfo=accel GPU 오프로딩 정보를 컴파일 시 표시한다
-gpu=ccnative,mem:managed 빌드 환경의 GPU를 자동 검출하여 타깃을 결정하고 Unified Memory를 사용한다

-DNVHPC_NO_ACC=ON을 지정하면 이러한 플래그는 추가되지 않는다.

OpenACC를 이용한 GPU 빌드의 자세한 절차는 GPU를 사용한 빌드를 참조한다.