모바일 메뉴 닫기
 

데이터센터

사용 환경 구성

Module

1. Module 이란

클러스터에 설치된 공유 프로그램을 사용하기 위해서
사전에 정의된 환경변수(PATH)를 불러오거나(load) 전환(swap) 할 수 있는 도구 입니다.
 
https://modules.readthedocs.io/en/latest/
 
클러스터 에서 사용할 수 있는 디스크 용량이 한정적 이기 때문에
사용 가능한 공유 프로그램이 있다면 활용하는 것이 좋습니다.
 
또한 anaconda 같은 도구에서 제공되지 않는 프로그램을
관리자에게 설치 요청하여 사용할 수 있습니다.
 
 
2. 현재 사용중인 용량과 가능한 용량 확인
# anaconda 설치 용량 확인.
du -h -d 0 ~/anaconda3/
 
# home directory 전체 용량 확인.
df -hT /home
 
# 할당된(quota) 용량 확인
ssh  MASTER   '/usr/sbin/xfs_quota -xc "quota -h $USER"'
 
 
3. module 명령어
module
 
#  module list  ==  ml
#  module avail ==  ml av
# 현재 load 되어 있는 module 목록  
ml list
 
# 사용 가능한 module 목록  
ml av
 
# 일부 module 내리기
ml unload cuda  
ml list
 
# 모든 module 내리기(all unload)
ml purge
ml list
 
# module 올리기 (load)
ml load ohpc  # ohpc == default load module name
ml            #   ml == ml list or module list
 
# 일부 moudel 바꾸기 (swap)
ml
ml av
 
ml swap  cuda/11.2   cuda/9.0
ml
 
# module 의 상세 정보 출력
ml show ohpc
ml show cuda/9.0
 
 
4. module 사용 예 (컴파일러 버젼 변경)
1) cuda / nvcc
ml purge
ml
 
which nvcc ; echo ; nvcc -V
 
ml av | grep cuda
ml load cuda/9.0
 
which nvcc ; echo ; nvcc -V
 
ml swap   cuda/9.0  cuda/11.2
which nvcc ; echo ; nvcc -V
 
 
2) gnu / gcc
 
ml purge
ml
 
which gcc  ; echo ; gcc --version
 
ml av | grep gnu
ml load gnu/5.4.0
 
which gcc  ; echo ; gcc --version
 
ml swap   gnu/5.4.0  gnu7
ml
 
which gcc  ; echo ; gcc --version
 
 
3) 환경변수(PATH, env) 의 변화 확인
ml purge
echo $PATH
 
ml load gnu/5.4.0
echo $PATH
 
env | grep PATH
 
 
5. bash 스크립트 (Script) 파일로 만들어서 실행
cat << EOF > ~/module_test.sh
module  purge
module  load  cuda/9.0
 
echo
which nvcc ; echo
 
nvcc --version ; echo
EOF
 
cat  ~/module_test.sh
 
bash  ~/module_test.sh
 
## 스크립트에서 실행된 결과와 비교.
which nvcc ; echo
 
nvcc --version ; echo
 
6. 로그인시 module 기본 환경 구성 (bashrc / rc = Run command)
~/.bashrc 파일에 module swap cuda/9.0 cuda/11.2 를 추가 하면 로그인 할때마다 해당 환경이 기본으로 load 됩니다.
 
## 홑화살괄호 를 반드시 2개 '>>' 넣어야 합니다. 1개만 넣으면 파일에 있던 기존 내용이 삭제되고 덮어씌워 집니다.
cat << EOF >>  ~/.bashrc
 
# User Custom Module
module swap    cuda/11.2  cuda/9.0
module unload  gnu/5.4.0
 
EOF
 
cat ~/.bashrc
 
exit
 
# Re-login
 
module list
 
which nvcc