콘텐츠로 이동

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에 의한 영역 분할을 활성화한다
METIS_VER_4 OFF METIS v4를 사용한다(OFF이면 v5)
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)

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를 사용한다

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