본문 바로가기

전체 글

(64)
Mac OSX에서 OpenMP 사용하기 (Catalina) 이번 글은 간단하게 포스팅하고 마치겠습니다. 이전의 OSX에서는 OpenMP의 소스를 다운받아 설치하고 이를 활용하는 방식으로 OpenMP를 이용했으나, 최근 추천되는 방식은 다음과 같습니다. 1. homebrew 설치 2020/10/12 - [Mac] - Mac 에 Brew 설치하기 (Catalina) 2. OpenMP 라이브러리 설치 brew install libomp 3. 컴파일시 OpenMP 지정 g++ -Xpreprocessor -fopenmp -lomp -o [target] [source] gcc 여도 파라미터는 같습니다. 관련하여 makefile 만드는 법에 대해서 향후 포스팅하겠습니다. 감사합니다.
Mac 에 Brew 설치하기 (Catalina) Mac을 이용하다 보면 open source 프로그램에 대한 필요성이 발생하게 되죠. Ubuntu 에서 apt-get, centos에서 yum을 이용해 각종 패키지를 설치하는 것과 같이요. 이럴땐 필요한 패키지를 관리하는 사이트에서 패키지를 받아 설치해서 사용하면 됩니다. 하지만 Mac OS는 일년에 한번씩 버전업하고 있고, Xcode와 LLVM 컴파일러는 더 빠른 주기로 업데이트 되고 있죠. 이럴때 마다 open source 프로그램은 먹통이 되기도 하고, 버전 문제로 말썽을 일으키기도 합니다. 이를 방지하기 위해선 개별적인 버전 관리가 필요하구요. 이런 작업은 귀찮고, 소중한 시간을 낭비하게 합니다. 위와 같은 문제를 조금이라도 해소하는 방법이 brew 입니다. Ubuntu에서 apt를 이용해 프로그..
컴퓨터 사용의 목적 이 글은 병렬 처리에 관한 포스팅 첫 번째이며, "컴퓨터의 목적"에 대해 논합니다. 글 자체는 주관적이니 불만이나 의견을 댓글로 남겨 주시면, 확인해 보고 필요하다면 적용하도록 하겠습니다. 컴퓨터는 "컴퓨터 과학의 아버지" 엘런 튜닝이 에니그마를 이용한 독일군 암호를 해독하기 위해 처음 개발하였고, 그 후 지속적으로 발전했습니다. 컴퓨터의 개발 이후 약간의 탈선(AI 분야)을 제외하면, 컴퓨터의 목적은 항상 동일했습니다. 그건 사람이 수행하기에 너무 복잡하거나, 오랜 시간이 요구되는 일을 단시간에 하는 것이죠. 예제를 들면 “소수 찾기” 가 어떨까요? 수학 기말 고사 시험에서 10 이하의 모든 소수를 적으라는 문제가 나왔습니다. 답은 쉽죠 “2,3,5,7” 입니다. 이런 쉬운 문제에는 컴퓨터가 필요 없겠..
sh script를 이용한 Gate의 효율적인 병렬 구동 ( wo condor) 2020년 최근 Gate의 버전은 9.0입니다. 사실 전 이전 버전의 Gate를 이용할 때도 9.0 버전 Gate에서는 병렬 처리가 될 것이라고 기대했습니다. 이유는 Geant4의 설치 옵션에 병렬 처리가 생겼습니다. 그래서 Gate에서도 지원되겠구나 했으나 9.0이 발표되고, 설치하면서 실망했습니다. Geant4의 병렬 처리 옵션을 킬 경우 아예 Gate 설치가 안되거든요. 그래서 이전에 know-how 문서로 만들었던 sh script를 이용한 Gate 병렬처리 내용을 포스팅합니다. 우선, 최근 Gate 커뮤니티에서는 저같이 쉘 스크립트를 이용한 병렬처리 보다 condor와 같은 툴킷을 이용하는 게 대세로 보이고, 제가 보기에도 그쪽이 더 쉬울 것입니다. (설치 방법) 혹시 본인의 환경이 다수의 유저..
Gate 구동시 파라미터 설정 Gate 시뮬레이션 툴은 병렬처리가 되지 않습니다. (2020년 기준) 그로 인해 쉘 스크립트를 이용해서 강제로 병렬처리를 해야 할 수도 있고 ( 이건 향후 포스팅 예정) 설정을 약간씩만 바꾸어서 같은 매크로 파일을 구동시켜야 할때도 있습니다. 그런 경우를 대비해 Gate 그룹에서는 매크로 상 변수를 지정하는 방법을 만들어 두었습니다. 그런데 의외로 많은 사람들이 쓰지 않더군요. 그래서 요렇게 포스팅 합니다. 사실 상기 링크에서 설명이 잘 되어 있으니 해당 링크를 보시는 것을 추천하지만 그래도 제가 예전에 정리해둔 내용을 포스팅 하겠습니다. 매크로 구동시 파라미터를 지정하고 싶을때는 매크로 파일 안에서 파라미터명을 "{"와 "}" 안에 넣어 주시면 됩니다. 첨부한 스냅샷은 특이한 SPECT를 구동 시키기..
로그아웃 이후 프로세스 유지 & 종료 최근 일반 유저에게 배포되는 리눅스는 보통 터미널이 종료 되거나 로그아웃( 쉘 종료 )을 해도 백그라운드에서 구동하던 프로세스를 유지 시켜 주는 경향이 있습니다. 하지만 만약 리눅스를 서버로 구동하고 있거나, AWS와 같은 웹 서비스를 이용한다면, 로그 아웃 시 프로세스는 종료 시켜야 합니다. 이 글은 해당 설정을 켜고 끄는 내용을 기술합니다. 쉘 종료시 백그라운드 프로세스 끄기 shopt -s huponexit 쉘 종료후에도 백그라운드 프로세스 유지 shopt -u huponexit huponexit 상태 확인 shopt huponexit 위 커맨드의 결과가 "on"이면 쉘 종료시 백그라운드 프로세스는 꺼지고, "off" 면 유지됩니다. 만약 huponexit가 on인 상태인 서버에서 프로세스를 유지하..
nohup 사용법 ( 터미널 로그아웃 후 프로세스 실행 유지 ) 대부분은 nohup의 목적을 알고 오셨으리라 생각해서 사용 방법부터 간단히 짚어 드린 뒤 자세한 설명을 하겠습니다. nohup [command] > [output file name] & [command]에는 보통 스크립트의 구동 명령이 들어 가겠죠. 만약 구동을 원하는 스크립트가 printLoop.sh 라면 아래와 같이 적으시면 됩니다. nohup sh printLoop.sh > printLoop.out & 위와 같은 코드에서는 printLoop.sh 가 실행되어 모니터로 출력되는 내용이 자동으로 printLoop.out 파일에 저장됩니다. 커맨드의 가장 끝 &는 백그라운드 실행을 의미합니다. 안 해도 상관없지만 nohup을 사용해야 하는 환경이라면 거의 필수적이라고 볼 수 있습니다. 출력이 중요하지 않..
Gate 설치하기 ( version 9.0 Ubuntu 20.04 LTS) Gate 설치 방법은 사이트에서 인스톨 매뉴얼을 잘 만들기 시작하면서 포스팅을 중지했었습니다. 그렇지만 가끔 문의가 오기도 해서 최신버전의 Gate를 설치하는 방법에 대해서 포스팅합니다. 일단 Gate 버전인 9.0을 가장 널리 사용되고 있다고 알려진 Ubuntu 20.04 LTS 버전에 설치하는 방법입니다. 이전 Gate 설치에 비해서 주의할 점부터 정리합니다. 주의사항 1. CLHEP 설치는 의무가 아님. 해당 내용은 Gate의 공식 인스톨 매뉴얼에도 명시되어 있듯 최신 geant가 CLHEP 라이브러리를 내장하고 있어서 해당 라이브러리를 사용해도 되기 때문입니다. 2. Geant의 병렬 처리 옵션을 끈다. Geant의 설치 과정에서 멀티 스레딩 옵션이 있습니다. 멀티 코어 프로세서가 보편화된 게 2..