From T3_KR_KNU
Jump to: navigation, search
(CVMFS singularity.opensciencegrid.org repository에서 제공하고 있는 Apptainer 이미지)
(CVMFS singularity.opensciencegrid.org repository에서 제공하고 있는 Apptainer 이미지)
Line 150: Line 150:
 
  /cvmfs/singularity.opensciencegrid.org/:
 
  /cvmfs/singularity.opensciencegrid.org/:
 
  lscsoft                  pystamp            eic                eicweb    opencarp    htc    library  pycbc
 
  lscsoft                  pystamp            eic                eicweb    opencarp    htc    library  pycbc
 
+
 
   ...
 
   ...
 
   <중략>
 
   <중략>
Line 157: Line 157:
 
  /cvmfs/singularity.opensciencegrid.org/cwinpy:
 
  /cvmfs/singularity.opensciencegrid.org/cwinpy:
 
  cwinpy-containers
 
  cwinpy-containers
 
+
 
  /cvmfs/singularity.opensciencegrid.org/cwinpy/cwinpy-containers:
 
  /cvmfs/singularity.opensciencegrid.org/cwinpy/cwinpy-containers:
 
  cwinpy-dev-python38:latest
 
  cwinpy-dev-python38:latest
 
+
 
  /cvmfs/singularity.opensciencegrid.org/matthew-pitkin:
 
  /cvmfs/singularity.opensciencegrid.org/matthew-pitkin:
 
  cwinpy-containers
 
  cwinpy-containers
 
+
 
  /cvmfs/singularity.opensciencegrid.org/matthew-pitkin/cwinpy-containers:
 
  /cvmfs/singularity.opensciencegrid.org/matthew-pitkin/cwinpy-containers:
 
+
 
  /cvmfs/singularity.opensciencegrid.org/patrickrmiles:
 
  /cvmfs/singularity.opensciencegrid.org/patrickrmiles:
 
+
 
  /cvmfs/singularity.opensciencegrid.org/scipp-atlas:
 
  /cvmfs/singularity.opensciencegrid.org/scipp-atlas:
 
  mario-mapyde
 
  mario-mapyde
 
+
 
  /cvmfs/singularity.opensciencegrid.org/scipp-atlas/mario-mapyde:
 
  /cvmfs/singularity.opensciencegrid.org/scipp-atlas/mario-mapyde:
 
+
 
  /cvmfs/singularity.opensciencegrid.org/rucio:
 
  /cvmfs/singularity.opensciencegrid.org/rucio:
 
  igwn-rucio-client
 
  igwn-rucio-client
 
+
 
  /cvmfs/singularity.opensciencegrid.org/rucio/igwn-rucio-client:
 
  /cvmfs/singularity.opensciencegrid.org/rucio/igwn-rucio-client:
  

Revision as of 06:34, 23 April 2025

Apptainer 사용법

컨테이너란?

  • vmware로 대표되는 가상화 기술과는 다른 모듈식으로 프로그램을 격리하여 운영할 수 있는 기술입니다.
  • 해상 운송에서 사용하는 컨테이너에서 이름을 따왔으며 OS 환경과 독립적으로 모듈식으로 설치하고 실행할 수 있습니다.
  • 하드웨어 및 OS 계층을 두지 않고 프로세스만 격리하기 때문에 기존의 가상화 기술에 비해 실행속도가 월등히 빠릅니다.
  • 대표적인 컨테이너 프로그램으로 docker(https://www.docker.com) 가 있습니다.

컨테이너의 장점?

  • 프로그램의 배포 및 설치가 쉽습니다.
    • 해당 프로그램용으로 이미 구축된 이미지를 배포하고 그 이미지를 이용해서 바로 원하는 프로그램을 실행할 수 있습니다.
    • 이 부분에서 가상화 환경의 이미지와 비슷해보이나 월등이 작은 저장공간만을 사용하고 실행 속도 또한 빠릅니다.
  • OS 환경과 독립적인 실행환경을 구축할 수 있습니다.
    • ex) Scientific Linux 6 환경에서 Centos 7 환경에서 컴파일된 프로그램을 실행할 수 있습니다. 그 반대도 가능합니다.
  • 격리 환경이므로 사용자 프로그램간의 간섭을 최소화 할 수 있습니다.

Apptainer란?

Apptainer (https://apptainer.org/) 과학 연산에 적합하게 만들어진 컨테이너 프로그램입니다. 과학연산 작업을 수행할때 docker보다 더 빠른 속도를 보여줍니다.

기본 사용법

exec

apptainer exec 컨테이너이미지 실행명령
  • 준비된 이미지를 이용하여 단일 프로그램이나 스크립트를 실행합니다.

shell

apptainer shell 컨테이너이미지
  • 컨테이너 안에 interactive shell을 생성합니다.

사용 예제

apptainer를 이용하여 el9 프로그램 실행하기

$ source /cvmfs/cms.cern.ch/cmsset_default.sh
$ cmssw-
cmssw-alma8   cmssw-cc7     cmssw-cs8     cmssw-el5     cmssw-el7     cmssw-el9     cmssw-fc39    cmssw-slc6
cmssw-cc6     cmssw-cc8     cmssw-cs9     cmssw-el6     cmssw-el8     cmssw-env     cmssw-rocky8  cmssw-ubi8

$ cmssw-el9
Singularity> cat /etc/redhat-release
AlmaLinux release 9.5 (Teal Serval)
  • cmssw-el8, cmssw-slc6 등 본인이 원하는 환경을 실행할 수 있습니다.
  • 처음 실행할 때는 이미지를 다운로드 받기 때문에 시간이 걸릴수 있습니다.

crab3 실행

# CMSSW 설치
$ set SCRAM_ARCH=slc7_amd64_gcc12  // 아키텍쳐 설정
$ source /cvmfs/cms.cern.ch/cmsset_default.sh
$ scramv1 list CMSSW | grep CMSSW_13_ // CMSSW 조회
$ scramv1 project CMSSW CMSSW_13_3_3  // CMSSW 설치
# crab 환경 설정
$ source /cvmfs/cms.cern.ch/cmsset_default.sh
$ cmsenv
$ source /cvmfs/cms.cern.ch/crab3/crab.sh
# 작업 설정
$ vi crab3config.py
$ vi job.py
# Grid proxy 생성
$ voms-proxy-init --voms cms 
# 작업 실행
$ crab submit -c crab3config.py
# 작업 조회
$ crab status

tensorflow 실행하기

shell
$ apptainer shell \
>             --home $PWD:/srv \
>             --bind /cvmfs \
>             --contain --ipc --pid \
>             /cvmfs/singularity.opensciencegrid.org/opensciencegrid/tensorflow:latest/
Singularity :~>
Singularity :~> python3
Python 3.6.9 (default, Jan 26 2021, 15:33:00)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import os
>>> os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
>>>
>>> import tensorflow as tf
>>>
>>> hello = tf.constant('Hello, TensorFlow!')
>>> print(hello.numpy())
b' Hello, TensorFlow!'
>>>
>>> a = tf.constant(15)
>>> b = tf.constant(10)
>>> result = a + b
>>> print(result.numpy())
25
>>> quit()
Singularity :~> 
Singularity :~> exit
$
  • 위의 각 명령 실행시 cvmfs local cache에 관련 파일들이 다운로드 되어있지 않다면 많은 시간이 소요될 수 있습니다. 파일을 받았다면 두번째 부터는 빠르게 실행됩니다.
exec
$ cat HelloTensorflow.py
#!/usr/bin/python3

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
print(hello.numpy())

a = tf.constant(15)
b = tf.constant(10)
result = a + b
print(result.numpy())


$ apptainer exec \
>             --home $PWD:/srv \
>             --bind /cvmfs \
>             --contain --ipc --pid \
>             /cvmfs/singularity.opensciencegrid.org/opensciencegrid/tensorflow:latest \
>             ./HelloTensorflow.py
'Hello, TensorFlow!'
25
$ 
  • shell 예제와 동일한 python 코드를 파일로 만들어 실행합니다.

CVMFS singularity.opensciencegrid.org repository에서 제공하고 있는 Apptainer 이미지

2024년 6월 현재 CVMFS singularity.opensciencegrid.org repository에서 제공하고 있는 Apptainer 이미지는 다음과 같습니다. 계속해서 업데이트 되니 본인에게 필요한 이미지가 있는지 확인해보세요.

$ ls -Rt /cvmfs/singularity.opensciencegrid.org/
/cvmfs/singularity.opensciencegrid.org/:
lscsoft                   pystamp             eic                 eicweb     opencarp    htc    library   pycbc

 ...
 <중략>
 ...

/cvmfs/singularity.opensciencegrid.org/cwinpy:
cwinpy-containers

/cvmfs/singularity.opensciencegrid.org/cwinpy/cwinpy-containers:
cwinpy-dev-python38:latest

/cvmfs/singularity.opensciencegrid.org/matthew-pitkin:
cwinpy-containers

/cvmfs/singularity.opensciencegrid.org/matthew-pitkin/cwinpy-containers:

/cvmfs/singularity.opensciencegrid.org/patrickrmiles:

/cvmfs/singularity.opensciencegrid.org/scipp-atlas:
mario-mapyde

/cvmfs/singularity.opensciencegrid.org/scipp-atlas/mario-mapyde:

/cvmfs/singularity.opensciencegrid.org/rucio:
igwn-rucio-client

/cvmfs/singularity.opensciencegrid.org/rucio/igwn-rucio-client:

경북대 UI에서 사용시 주의사항

  • 보안문제로 cvmfs 외의 이미지는 현재 지원하고 있지 않습니다.
  • 따라서 이미지 생성 및 다운로드 등 이미지 사용과 관련된 명령어는 현재 사용할 수 없습니다.
  • cvmfs의 특성상 원하는 이미지가 로컬 cache에 저장되어 있지 않다면 파일 다운로드로 인하여 초기 실행에 많은 시간이 필요할 수도 있습니다.

HTCondor에서 apptainer를 이용하여 코드 실행하기

참고문서