또 한동안 안정화 test를 해야할 분위기.
VASP 5.2는 intel 이 아닐경우 설치도 잘 안된다 그러는데...
쉘변경 : $ ldapchsh (/applic/shell 서 선택)
컴파일러 /applic/compilers PGI CDK 7.1 Intel
Compiler 10.1 gcc 3.4.6.9
MPI 라이브러리 /applic/mpi
MVAPICH 1.0 OpenMPI 1.2.5
수학 라이브러리
/applic/lib.{compiler} ATLAS BLAS BLACS FFTW GotoBLAS LAPACK Scalapack
분
야별 응용소프트웨어 /applic/Applications 「http://www.ksc.re.kr」보유자원-S/W정보 참조
- 작업 확인 및 제어
- 모든 사용자 큐 확인 : $ qstat -u '*' (모든 사용자)
- 큐 상세정보 : $ qstat -f
- 기다리는 큐 정보 표시
$ qstat -j job_id
$ qalter -w v job_id - $ qdel <jobid> 해당 <jobid>를 가지는 작업 삭제
- $
qdel -u <username> <username>의 모든 작업 삭제
※ job script 예제 : /applic/shell/job_examples/job_script 디렉터리에서 복사
큐이름 |
Wall Clock
Limit (시간) |
작업 실행 노드 |
작업별
CPU수 |
Priority |
SU Charge
Rate |
비 고 |
normal
|
48
|
tachyon001-188
|
17-1536
|
normal
|
1
|
|
long |
168 |
tachyon001-188 |
1-128 |
Low |
1 |
Long running 작업 |
strategy |
TBD |
tachyon001-188 |
32-3008 |
High |
1 |
Grand Challenge 작업 |
Option |
Result |
no option |
명령을 실행한 사용자 job의 상세 list를 보여줌 |
-f |
명령을 실행한 사용자에 대한 queue와 job의 상세 리스트를 보여줌 |
-u user_id |
명시한 user_id에 대한 상태를 보여줌. ?u "*"는 전체 사용자의 상태를 보여줌. 주로 ?f
옵션과 함께 쓰임. |
-r |
Job의 resource requirement를 display |
-ext |
Job의 Extended information을 display |
-j <iobid> |
Pending/running job에 대한 information을 보여줌 |
-t |
Job의 subtask에 대한 추가 정보 display |
홈 디렉터리 /home01 구좌 당 6GB -
스크래치 디렉터리 /work01 /work02 사용자 당 1TB 4일 이상 액세스 하지 않은 파일
애플리케이션 디렉터리 /applic - -
2. 작업 제출- job 실행 환경 선택 : $ select-mpi-bash [mvapich|openmpi] [pgi|intel|gnu]
- # of CPU
#$ -pe mpi_fu {Total_MPI_task(CPU)}
#$ -pe mpi_fu 32
※ 작업 스크립트 옵션 리스트
|
|
옵션 |
Argument |
기 능 |
-q |
queue_name |
작업을 수행할
queue 명시 |
-pe |
pe_name min_proc[-max_proc] |
Parallel
Environment를 선택하고, min_proc-max_proc 개수만큼의 병렬 process를 수행
● mpi_rr : 라운드 로빈 방식으로 노드의 CPU 할당
● mpi_fu : 각 노드의 비어있는 CPU를 꽉 채워서 할당
● mpi_[1-16]cpu : 정해진(범위 : 1-16) 숫자 만큼 노드의
CPU 할당
※ mpi의 종류[mvapich,openmpi]는
select-mpi-[bash,csh,ksh] 스크립트로 미리 선택함. |
-N |
job_name |
Job의 이름을 정해줌 |
-S |
shell (absolute path) |
Batch 작업의
shell을 지정. 미 지정 시 SGE가 지정한 shell로 수행(/bin/bash) |
-M |
Email address |
사용자의 email
address를 명시 |
-m |
{b|e|a|s|n} |
언제 email
notification을 보낼 지 명시
● b: Mail is sent at the beginning of the
job.
● e: Mail is sent at the end of the job.
● a: Mail is sent when the job is aborted or
rescheduled
● s: Mail is sent when the job is suspended.
● n: No mail is sent. (default) |
-V |
|
사용자의 현재
shell의 모든 환경변수가 qsub시에 job에 적용되도록 함 |
-cmd |
|
현재 디렉터리를
job의 working directory로 사용.(default) |
-o |
output_file |
Job의 stdout
결과를 output_file 로 저장 |
-e |
error_file |
Job의 stderr
결과를 error_file 로 저장 |
-l |
resource=value |
Resource
limit을 지정
● h_rt : 작업경과 예상시간 (hh:mm:ss) (wall clock
time)
● normal : normal 큐에 작업 제출 시 Job이 높은 우선순위를 얻기
위해 반드시 명시 ( -l normal 혹은 -l normal=TRUE )
● strategy : strategy 큐에 작업 제출 시 작업이 높은 우선순위를
얻기 위해 반드시 명시
( -l strategy 혹은 -l strategy=TRUE )
● OMP_NUM_THREADS : MPI 타스크 당 쓰레드 수를 의미하며,
hybrid[MPI+OpenMP] 병렬 작업 실행 시 반드시 명기 (-l OMP_NUM_THREADS=[MPI 타스크 당
OpenMP 쓰레드 수])
※ normal, strategy 큐를 제외한 다른 큐는 -l 옵션으로 기본
priority이기 때문에 큐 이름을 명시할 필요 없음. 추후 변경
시 공지 예정 | |
ex1)
#!/bin/bash
#$ -V
# 작업 제출 노드의 쉘 환경변수를 컴퓨팅 노드에도 적용 (default)
#$ -cwd #
현재 디렉터리를 작업 디렉터리로 사용
#$ -N mpi_job # Job Name,
명시하지 않으면 job_script 이름을 가져옴
#$ -pe mpi_fu 32 #
selec-bash-mpi에서 선택한 mvapich로 실행되며 각 노드의 가용 cpu를
# 모두 채워서(fu :
fill_up) 총 32개의 MPI task가 실행됨.
#$ -q normal # 큐 이름(17개 이상의 CPU를
사용하는 경우에는 normal 큐를
# 16개 이하 CPU를 사용하는 경우
small or long 큐 사용)
#$ -R yes # Resource
Reservation
#$ -wd /work01/<user01>
/mvapich # 작업 디렉터리를 설정. 현재
디렉토리(PWD)가
#
/work01/<user01>
/mvapich가 아닌 경우 사용,
# 그렇지
않으면 cwd로 충분함
#$ -l h_rt=01:00:00 # 작업
경과 시간 (hh:mm:ss) (wall clock time), 누락 시 작업 강제 종료
#$ -l normal # normal
queue에 job실행 시 다른 queue보다 높은 priority를
# 얻기 위해 반드시 명시,
누락 시 작업 강제 종료
#$ -M myEmailAddress # 작업 관련 메일을 보낼
사용자 메일 주소
#$ -m e
# 작업 종료 시에 메일을 보냄
mpirun -machinefile $TMPDIR/machines -np $NSLOTS ./mpi.exe
ex2)
#!/bin/bash
#$ -V
#$ -cwd
#$ -N mpi_mem_job
#$ -pe mpi_16cpu 32
#$ -q small
#$ -R yes
#$ -l h_rt=01:00:00
#$ -l normal
#$ -M myEmailAddress
#$ -m e
#unset existing MPI affinities
export MV2_USE_AFFINITY=0
export MV2_ENABLE_AFFINITY=0
export VIADEV_USE_AFFINITY=0
export VIADEV_ENABLE_AFFINITY=0
mpirun -np $NSLOTS -machinefile $TMPDIR/machines
./numa.sh
# 사용자 프로그램이 아니라 아래와 같은 numa관련 shell script를 제출한다.