๊ฒฝํฌ๋ ์ ์์คํ์ฐ๊ตฌ์ค/์ค์ฑ๋ฏธ์์ ๋ฐ์ฐ๊ตฌ์ผํฐ ์ปดํจํ ๊ณผ ๊ด๋ จ๋ ๊ฐ์ข ์ด์๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ์ฌ์ฉ์ค ๋ฌธ์ ๋ ์ ์์ฌํญ์ด ์๋ค๋ฉด ๋ณธ repository์ issue๋ฅผ ๋ง๋ค์ด ๊ด๋ฆฌํฉ๋๋ค.
- ๊ฒฝํฌ๋ ์ ์์คํ ์๋ฒ์ ๊ฒธ์ฉ์ผ๋ก ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
- Main web service: https://hep.khu.ac.kr
- Monitoring: https://hep.khu.ac.kr/observability
- CPNR indico: https://indico.neutrino.or.kr
- KHU-HEP/CPNR cluster:
ssh hep.khu.ac.kr -p 2222
๋ณธ ์๋ฒ๋ ๊ฒฝํฌ๋ ์ ์์คํ์ฐ๊ตฌ์ค์์ ๊ตฌ์ถ, ๊ด๋ฆฌํ๊ณ ์์ต๋๋ค. ์ค์ฑ๋ฏธ์์ ๋ฐ์ฐ๊ตฌ์ผํฐ, ํ๊ตญCMS์ฐ๊ตฌํ์ ํฌํจํ ๊ด๋ จ ์ฐ๊ตฌ์๋ถ๋ค์ด ์ปดํจํ ์์์ ํ์ฉํ ์ ์๋๋ก ์ด์ํ๊ณ ์์ต๋๋ค.
- ๋ก๊ทธ์ธ ๋ ธ๋๋ CPU 256 threads, Memory 384GB ํ๊ฒฝ์ ๋๋ค.
- ์๋ฎฌ๋ ์ด์
์ํ ์์ฑ, ๋์ฉ๋ ๋ฐ์ดํฐ ๋ถ์๊ณผ ๊ฐ์ ์์
slurm๋ฐฐ์น ํ๊ฒฝ์ ์ด์ฉํด ์ฃผ์ธ์. - ๋คํธ์ํฌ ์ฐ๊ฒฐ์ KISTI ์์ธ ํ๋ฆ๋ถ์์ Kreonet(1G)๋ง์ ํตํด ์ฐ๊ฒฐ๋ฉ๋๋ค.
- ์ค์ฑ๋ฏธ์์ ๋ฐ์ฐ๊ตฌ์ผํฐ ์ด์ฉ์์ ๋์ฉ๋ ํ์ผ์
/store/cpnr์ ์ด์ฉํด ์ฃผ์ธ์. - ์ปดํจํ ์์์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ [์ฌ๊ธฐ]์์ ํ์ธํ ์ ์์ต๋๋ค.
๊ฒฝํฌ๋ ๊ณ ์ ํ ๊ต์์๊ฒ ์ด๋ฉ์ผ๋ก ๊ณ์ ์์ฑ ์์ฒญ ํด ์ฃผ์๋ฉด ๋ฉ๋๋ค. ๋ค์ ์ ๋ณด๋ฅผ ํจ๊ป ์๋ ค์ฃผ์ธ์.
- ์ด๋ฆ, ์์๊ธฐ๊ด
- ํฌ๋งํ๋ ๋ก๊ทธ์ธ ์์ด๋
๊ณ์ ์์ฑ ํ ์ฌ์ฉ ๊ด๋ จ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์๋ด ํด ๋๋ฆฝ๋๋ค.
์๋ฒ ์ ์์ ์ํด ssh๋ฅผ ์ด์ฉํฉ๋๋ค. ์๋์ <USER_ID>๋ถ๋ถ์ ๊ณ์ ์ ์ฒญํ๋ ๋ก๊ทธ์ธ ์์ด๋์
๋๋ค.
$ ssh hep.khu.ac.kr -p 2222 -l <USER_ID>์ ์ํ๋ฉด ์๋ ์์์ ๊ฐ์ ํ๋ฉด์ด ๋ํ๋ฉ๋๋ค.
...
Last login: Sun Mar 31 13:59:58 2024 from 194.12.146.87
<USER_ID>@lugia:~$
๋ฐ์ดํฐ ๋ถ์์ ์ํ ํ๊ฒฝ์ผ๋ก anaconda๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
anaconda๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์๋ ๋ช
๋ น์ด๋ฅผ ์คํํด ๊ธฐ๋ณธ ํ๊ฒฝ๋ณ์๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ์๋ ๋ด์ฉ์ ~/.bashrc์ ์ถ๊ฐํ์๋ฉด ๋ก๊ทธ์ธํ ๋ ์๋์ผ๋ก ์ ์ฉ๋ฉ๋๋ค.
source /store/sw/anaconda3/etc/profile.d/conda.shpython์ด๋ root๋ฅผ ์ฌ์ฉํ ์ ์๋ anaconda ํ๊ฒฝ์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋์์ต๋๋ค. ์๋ ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด ํ์ฑํ ํ ์ ์์ต๋๋ค.
conda activate ds4hepํ์ํ๋ค๋ฉด ๊ฐ์ธ๋ณ ํ๊ฒฝ์ ์ค์นํด ํ์ฉํ ์ ์์ต๋๋ค.
์๋ ์์์ <MY_ENVIRONMENT> ๋ถ๋ถ์ ๋ณธ์ธ์ด ์ํ๋ ๋๋ก ๋ฐ๊ฟ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค. ์์ ์ค conda install ๋ถ๋ถ๋ ๋ณธ์ธ์ด ํ์ํ ํจํค์ง๋ค์ ์ฐพ์ ๋ฐ๊ฟ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
conda create -p ~/<MY_ENVIRONMENT>
conda activate <MY_ENVIRONMENT>
conda install -c conda-forge root
conda install -c conda-forge uproot matplotlib scipy numpy yaml
conda install -c conda-forge jupyter-notebook๊ณต์ฉ์ผ๋ก ์ฌ์ฉํ ๋งํ ํจํค์ง๋ค์ด ์์ผ๋ฉด ๊ด๋ฆฌ์ (๊ณ ์ ํ ๊ต์)์๊ฒ ์๋ ค์ฃผ์๊ฑฐ๋, [github issue]๋ฅผ ์์ฑํด ์ฃผ์ธ์.
๋ค๋ฅธ Linux๋ฐฐํฌํ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, anaconda์ ํ๊ฒฝ์ด ์ ๊ณต๋์ง ์๋ ๊ฒฝ์ฐ ์ผ์ข ์ ๊ฐ์ํ ํ๊ฒฝ์ธ singularity๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. singularity imageํ์ผ์ ๋ง๋ค์ด ๋ฐฐํฌํ๋ ๋ฐฉ์์ผ๋ก ์ผ๋ฐ ์ ์ ๊ฐ ๊ฐ์ํ ํ๊ฒฝ์ ์ฌ์ฉํ ์ ์์ด ํธ๋ฆฌํฉ๋๋ค. ๋ํ, docker ํ๊ฒฝ์ ๊ทธ๋๋ก ๊ฐ์ ธ์์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก pythia8์ dockerํ๊ฒฝ์ ๊ฐ์ ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
apptainer run docker://mcnetschool/tutorial:pythia-1.0.0๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋ singularity imageํ์ผ๋ค์ ์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. -B ์ต์
์ ์ด์ฉํด ์์คํ
๋ด์ ํน์ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ฐ์ํ๊ฒฝ ๋ด์์์ ๋๋ ํ ๋ฆฌ๋ก ๋ณด์ผ ์ ์๋๋ก ๋ฐ์ธ๋ฉ ํฉ๋๋ค.
apptainer run -B /store/sw/hep/geant4-data:/hep-sw/geant4/share/Geant4-9.6.4/data /store/sw/singularity/geant4/geant4-9.6.4.sif๊ฐ๋จํ ์์ ์ ssh์ ์ ์งํ ๋ก๊ทธ์ธ ํ๊ฒฝ์์ ํ ์ ์์ง๋ง, ๊ณ์ฐ๋์ด๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋ง์ ์์ ์ slurm์ ์ด์ฉํด ๊ณ์ฐ ๋ ธ๋๋ก ์์ ์ ์ ์ถํด ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- ์์ธํ ๋ด์ฉ์ slurm ๊ณต์ ๋ฌธ์ [Slurm Quick Start]๋, [๊ณต์ ๋งค๋ด์ผ]์ ์ฐธ๊ณ ํด ์ฃผ์ธ์.
- slurm์ฌ์ฉ์ค ๋ฌธ์ ๊ฐ ์์ผ๋ฉด ๊ด๋ฆฌ์ (๊ณ ์ ํ ๊ต์)์๊ฒ ์๋ ค์ฃผ์๊ฑฐ๋, [github issue]๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์๋ ์์์ ๊ฐ์ด ์คํ์ฉ ์คํฌ๋ฆฝํธ ์์ฑ ํ sbatch ๋ช
๋ น์ด๋ฅผ ์ด์ฉํด ์์
์ ์ ์ถํ์๋ฉด ๋ฉ๋๋ค. (๊ณต์ ๋งค๋ด์ผ ๋ฑ์ ์ฐธ๊ณ ํด ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ค์ ์ด์ฉํ์
๋ ๋ฉ๋๋ค)
- ์ฐ๊ตฌ ์ํ์ ์ํ ๋ฉ์ธ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ (์์: pi๊ฐ์ ๊ณ์ฐํ๋ python script,
compute_pi.py)
#!/usr/bin/env python
import numpy as np
import pandas as pd
import sys, os
def getenv(var, default=''):
if var not in os.environ: return str(default)
return os.environ[var]
jobId = int(getenv('SLURM_JOB_ID', 0))
jobSection = int(getenv('SLURM_ARRAY_TASK_ID', 0))
np.random.seed(jobId*1000+jobSection)
n = 100000
rx = np.random.uniform(-1, 1, n)
ry = np.random.uniform(-1, 1, n)
r2 = rx*rx + ry*ry
nIn = (r2<1).sum()
print(nIn, n, nIn/n*4)- ์คํ์ฉ bash script ์์ฑ (์์:
run.sh)
#SBATCH -J MYTESTJOB
#SBATCH -p normal
#SBATCH -o OUTPUT_%A_%a.log
#SBATCH -e OUTPUT_%A_%a.err
hostname
source /store/sw/anaconda3/etc/profile.d/conda.sh
conda activate ds4hep
python compute_pi.py- ๋ก๊ทธ์ธ ํ๊ฒฝ์์ job submitํ๊ธฐ (์์: slurm์ array ๊ธฐ๋ฅ์ ์ด์ฉํด ํ๋ฒ์ 10๊ฐ job์ ์ ์ถ)
sbatch -a [0-9] run.sh