Dec 19, 2011

Geant4 9.5 Released (1). CMake의 등장

12월 2일 지안트4 가 9.4p2 에서 9.5로 프로덕션 버전을 업데이트를 했다[2].
필자는 지안트 9.5의 새로운 기능들 중 다음의 세 가지를 손꼽는데,

1. cmake의 등장과 clhep의 내장
2. 저 에너지 영역의 em 계산을 기본 em physics builder 에 내장
3. multi-thread 가능

이들 중 지금은 1번에 관해 설명하려고 한다.


cmake의 등장으로
윈도우, 리눅스, 맥 어떤 플랫폼이건 지안트의 개발 환경은 전 보다 훨씬 간편해지고 쉬워지고 가벼워졌다.
예를 들어 9.4 버전과 비교하자면, 그땐 윈도우에서 지안트를 설치 및 실행 하기 위해 cygwin을 깔아야 했고 make.exe 등의 파일 패치도 해야했다.
gcc는 불안했기 때문에 vc++ 를 또 설치해야 했고, root 연동 같은 것들이 쉽지 않았다.

조금 뒤에 설명할테지만, 지금(v 9.5)은 여느 윈도우 프로그램 처럼 클릭 만으로 지안트 윈도우 버전이 설치되고 그 뒤의 코드 실행과 수정은 친절한 vc++ 윈도우 프레임 안에서 쉽게 이루어 진다.

이 모든 내용에 관해 자세히 알고 싶다면 사용자 메뉴얼 설치편[1]과 새로 바뀐 사항[2] 을 참고하시라.

아래는 바뀐 cmake 때문에 윈도우 버전 설치와 실행이 얼마나 단순해 졌는지에 관한 테스트 기록이다.

윈도우용 지안트의 설치

그림 1 지안트 홈페이지의 다운로드 섹션

그림1의 맨 아래를 보면, executable installer !!, 그냥 마우스 클릭으로 설치가 완료된다는 것이다.

다시 그 아랫 줄을 보면, clhep 2.1.1.0 이 내장 되있다고 한다, 전처럼 별도로 clhep을 설치할 필요가 없다.

그럼 다운 받아 설치 하자,

그림 2 설치 직후 지안트 폴더(C:/Program Files/Geant4 9.5/)

설치과정은 생략했다. 그냥 [Next] 버튼만 클릭하면 되니까... 설치가 끝나면, 그림 2와 같이 지안트 설치가 되어있다. Geant4 9.5 디렉토리 아래 data를 만들고 그 안에 그림1 에서 봤던 데이터 파일들(그림 1에선 맨 위에 세 줄 다운로드가 보임, 안보이는 모든 데이터를 다운받아  그림 3을 보고 따라하시라)을 모두 다운로드 받아 압축 해제 한뒤 그림 3과 같이 풀어 놓자.

그림 3 데이터 세트를 설치한 모습(C:/Program Files/Geant4 9.5/data/)

위 페이지에 쓰여 있는 대로, 환경 변수를 설정한다.
지안트는 반응 단면적 실험데이터를 기초하여 몬테카를로 데이터를 셈플링한다.
때문에 계산시에 늘 이 자료를 필요로 한다. 그러므로 그림3 의 데이터 세트는 어디에 있든
위치는 별로 중요하지 않지만, 지안트에게 정확히 알려는 줘야 한다.
그래서 환경변수 설정이 필요하다.
(예전 버전에 비하면 환경 변수는 거의 없어진거라고 봐도 과언이 아니다.
9.4 대의 버전만 해도 이것 저것 심심하면 다 환경변수로 도배질이 되어 있었다.)

지안트의 설치는 이로서 끝이다.



예제의 실행

그림 4 예제는 share 폴더 아래 있음. 만일 없다면? 이 압축 파일을 share폴더에 해제 하면 된다.


좀 전에 얘기했던 cmake가 등장할 대목이다. 지안트의 설치도 그렇고, 실행도 그렇고 예전에 사용하던  "gnumake" 에서 "cmake 후 빌더"로 바뀌었다.

cmake는 이기종에서 컴파일할 때 사용하면 편리한 툴이다(여기까지만 설명하겠다 ㅎㅎㅎ 사실 필자도 cmake에 관해 잘 알지 못한다, 단, 중요한 것은 cmake는 여러 빌더에 맞는 환경을 선택해서 만들어 줄 수 있다는 것이다).

 이해가 어렵다면, 어쨌든 필요하니까 다운받아 설치하자.
 또한 visual c++ express도 다운받아 설치하자. (위는 모두 공짜이다)

이제 novice 예제 N05번을 컴파일 하려고 한다.

 우선 cmake를 실행 (그림 5 참고)
(1) source code 에  N05폴더를,
(2) build the bin. 에 N05 폴더를 적어주고,
좌측 하단의 Configure, Generate 버튼을 차례로 눌렀다.
이렇게 하면 vc++ 에서 예제를 컴파일 할 수 있도록  N05.sln 솔루션 파일이 생긴다.

그림 5 cmake 로 예제 돌릴 준비.

실제 N05 예제 폴더에 가보니, 위에서 언급한 대로 visual c++ project가 생겼다.
더블클릭하여 vc++로 들어가보자.


그림 6. 만들어진 프로젝트의 빌드


N05.sln을 클릭하면, vc++ 프로젝트 화면으로 진입하고, 이제 F7로 솔루션을 빌드하면 예제가
컴파일 된다.

그림 7 빌드 성공

가벼웁게 ㅠㅠ 완셩!!!

복습하는 겸 해서 위에서 했던 순서는
1. cmake로 예제 안에다 vc++ 용 sln 관련 파일 생성.
2. vc++로 sln을 로드한 다음 솔루션 빌드 클릭
끝.

아래는 실행된 모습. 설치와 예제 실행에 시행착오를 포함하여 공들인 시간 약... 두어 시간...
감동이지 않을 수 없다.
게다 vc++ express 라는 훌륭한 빌더와 에디터의 공짜 사용은 보다 큰 감동!

오래전 지도교수님을 통해 접한 지안트, 설치만 꼬박 2주가 걸렸고, 예제 분석에 한두달이 걸렸던 기억이 난다. 유닉스와 c언어의 조작이 어렵지 않았던 필자 였음에도 난생 처음 보는 코드를 설치하기 위해 혼자 헤딩했던 그 때의 기억을 떠올리면 지금도 끔찍하다. ㅎㅎ

그림 8 실행 (visualization macro를 이용)



한 가지 아쉬운 점은 아직 모든 example들이 cmake 화 되지 않았다는 것이다. 대부분 간단히 example 상위 폴더에 CMakeList.txt 파일을 만들면 모두 cmake환경에서 실행 가능하다.


얼마나 변했을까 싶어서 한번 시도 해 봤더니, 정말 많이 쉬워지고 간편해졌다. 적어도 설치 실행에 들이는 공을 줄일 수 있다는 면에서 주목할 만 하다.

하지만 여전히 초보자들에게는 c++ 의 벽이 큰건 사실이다. 허나 이 또한 훌륭한 M$ vc++ builder의 힘을 빌면(자동완성 기능이랄지, 소스 검색 기능이랄지) 충분히 해 볼만 하다.


참고 문헌

[1] Geant4 9.5 Installation Guide
[2] Geant4 9.5 Release Note
[3] CMake: Cross Platform MAKE

2 comments:

  1. 한선생님... 되네요.. ^^; 많은걸 배우네요..

    ReplyDelete
  2. ㅎㅎㅎ 첫 덧글, 이벤트 당첨! 담에 소주 한잔 쏩니다! 뭐 그리고, 제가 뭘 했다고;;; 스스로 배우신거죠 ㅋ

    ReplyDelete