모바일 메뉴 닫기
 

데이터센터

사용 환경 구성

Singularity

 

과학 및 애플리케이션 기반 워크로드 와 HPC 클러스터 환경에 최적화 된 컨테이너 솔루션 입니다.
Docker 저장소의 이미지를 사용할 수 있습니다.
내려 받은 이미지는 사용자의 HOME 디렉토리에 저장 됩니다.
Docker 에 의한 권한상승 문제가 발생하지 않습니다.
권한상승 문제가 없는 대신 Singularity 이미지를 직접 수정할 수 없습니다. (docker 를 통해서 수정후 다시 build 해야 함)
 
1. Singularity 사용 가능한지 확인
# Module 을 통해 제공 됩니다.
module list  |  grep singularity
 
# load 되어 있지 않다면 load 해 줍니다.
module load singularity
 
which singularity
 
singularity --version
 
 
2. Singularity 기본 명령
# 이미지 생성(build) - (docker 의 pull 과 동일함.) / .simg == Singularity Image
singularity  build   ~/tf-1.11-gpu-py3.simg    docker://tensorflow/tensorflow:1.11.0-gpu-py3
 
# 다운로드 된 이미지 파일 확인.
ll   -trh   ~/tf-1.11-gpu-py3.simg
file        ~/tf-1.11-gpu-py3.simg
 
# 이미지 실행(exec)  (singularity 의 경우 home 디렉토리는 기본으로 mount 됩니다.)
singularity exec   ~/tf-1.11-gpu-py3.simg    pwd
singularity exec   ~/tf-1.11-gpu-py3.simg    ls -l
 
singularity exec   ~/tf-1.11-gpu-py3.simg    pip list | grep tensor
 
# 코드 실행.       (--nv 옵션 = GPU 사용)    
singularity exec --nv ~/tf-1.11-gpu-py3.simg  \
   python  ~/TensorFlow-Examples/examples/3_NeuralNetworks/neural_network_raw.py
 
# 볼롬 마운트 (예를 들어. /dataset)
singularity exec --nv -B /dataset:/dataset   ~/tf-1.11-gpu-py3.simg   ls -l /dataset
 
 
3. bash 스크립트 (Script) 파일로 만들어서 실행
cat << EOF > ~/singularity-py3-example.sh
singularity exec --nv ~/tf-1.11-gpu-py3.simg  \
   python  ~/TensorFlow-Examples/examples/3_NeuralNetworks/neural_network_raw.py
EOF
 
cat   ~/singularity-py3-example.sh
 
bash  ~/singularity-py3-example.sh
 
 
4. Singularity 로 python jupyter-notebook 열기. (x11forwading 사용)
Singularity 를 이용한 jupyter-notebook 은
x11forwading 이용해 웹브라우져로 접속해야 합니다.
 
login 노드에서는 x11forwading 을 사용할 수 있지만,
일반 계산 node 에서는 x11forwading 이 지원되지 않아
계산 작업에는 사용할 수 없습니다.
login 노드에서 간단한 디버깅(debug) 용도로만 사용할 수 있겠습니다.
 
# tensorflow-notebook 이미지 build (docker hub 에서 download)
singularity   build   ~/tensorflow-notebook.simg    docker://jupyter/tensorflow-notebook
 
# 이미지 에서 실행된 jupyter-notebook 에 접속하기 위한 웹브라우져 실행.
## & == 명령이 실행된 후에도 커맨드를 입력할 수 있게함. (백그라운드 작업)
## x11forwading 환경이 구성되어 있어야 함.
firefox &
 
# 작업이 실행 중인지 확인.
jobs
 
# tensorflow-notebook image 안에 cuda 가 포함되어 있지 않아서, module 을 통해 cuda를 load 해 줍니다.
## 모든 module 내리고 (purge), singularity 와 cuda 10.0 module을 load 합니다.
ml purge   &&  ml  load   singularity cuda/10.0
 
# singularity image 에서 load 된 module을 사용할 수 있도록 /opt/ohpc 를 볼륨으로 마운트 해줍니다.
## 볼륨으로 마운트 하지 않았을 경우 cuda 라이브러리를 불러 올수 없다는 오류가 발생 합니다.
singularity exec --nv -B /opt/ohpc:/opt/ohpc/  tensorflow-notebook.simg  start-notebook.sh
 
# 화면에 출력된 copy and paste one of these URLs 아랫줄의 웹페이지 주소를 복사하여 웹브라우져에 붙여 넣습니다.
 
# 작업이 끝나면 Control + C 를 눌러서 종료 시킵니다.