From T3_KR_KNU
Jump to: navigation, search
(Created page with "== Singularity 사용법 == === 컨테이너 시스템이란? === === Singularity란? === === CVMFS singularity.opensciencegrid.org repository에서 제공하고 있는 sin...")
 
(컨테이너내에서 데이터 전송 오류가 발생할 때)
 
(132 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Singularity 사용법 ==
+
== Apptainer 사용법 ==
  
=== 컨테이너 시스템이란? ===
+
=== 컨테이너란? ===
  
=== Singularity란? ===
+
* vmware로 대표되는 가상화 기술과는 다른 모듈식으로 프로그램을 격리하여 운영할 수 있는 기술입니다.
 +
* 해상 운송에서 사용하는 컨테이너에서 이름을 따왔으며 OS 환경과 독립적으로 모듈식으로 설치하고 실행할 수 있습니다.
 +
* 하드웨어 및 OS 계층을 두지 않고 프로세스만 격리하기 때문에 기존의 가상화 기술에 비해 실행속도가 월등히 빠릅니다.
 +
* 대표적인 컨테이너 프로그램으로 docker(https://www.docker.com) 가 있습니다.
  
=== CVMFS singularity.opensciencegrid.org repository에서 제공하고 있는 singularity 이미지 ===
+
=== 컨테이너의 장점? ===
  
$ ls -Rt /cvmfs/singularity.opensciencegrid.org/
+
* 프로그램의 배포 및 설치가 쉽습니다.  
/cvmfs/singularity.opensciencegrid.org/:
+
** 해당 프로그램용으로 이미 구축된 이미지를 배포하고 그 이미지를 이용해서 바로 원하는 프로그램을 실행할 수 있습니다.  
pycbc          poldracklab      jborrel00          rynge      ssthapa        dcshrum    atlas          whit2333
+
** 이 부분에서 가상화 환경의 이미지와 비슷해보이나 월등이 작은 저장공간만을 사용하고 실행 속도 또한 빠릅니다.
  mintproject    opensciencegrid  continuumio        ligo        econtal        cathrine98  leofang        centos
+
* OS 환경과 독립적인 실행환경을 구축할 수 있습니다.
  evolinc        discoenv        clelange          cyverse    ankushumn      ucatlas    dmbala
+
** ex) Scientific Linux 6 환경에서 Centos 7 환경에서 컴파일된 프로그램을 실행할 수 있습니다. 그 반대도 가능합니다.
anniesoft      dajunluo        agladstein        nipy        markito3      shilpac    nkern
+
* 격리 환경이므로 사용자 프로그램간의 간섭을 최소화 할 수 있습니다.
  library        bbockelm        efajardo          wipac      biocontainers  argonneeic djw8605
+
 
  maureeungaro   drtmfigy        pegasus            kreczko     jamessaxon     rjones30   dbcooper
+
=== Apptainer란? ===
  jbustamante35  jasoncpatton     researchcomputing blaylockbk  adwasser      chekanov    lincolnbryant
+
 
 +
Apptainer (https://apptainer.org/) 과학 연산에 적합하게 만들어진 컨테이너 프로그램입니다. 과학연산 작업을 수행할때 docker보다 더 빠른 속도를 보여줍니다.
 +
 
 +
=== 기본 사용법 ===
 +
 
 +
==== exec ====
 +
 
 +
  apptainer exec 컨테이너이미지 실행명령
 +
 
 +
* 준비된 이미지를 이용하여 단일 프로그램이나 스크립트를 실행합니다.
 +
 
 +
==== shell ====
 +
 
 +
  apptainer shell 컨테이너이미지
 +
 
 +
* 컨테이너 안에 interactive shell을 생성합니다.
 +
 
 +
=== 사용 예제 ===
 +
 
 +
==== <u>apptainer를 이용하여 cc7 프로그램 실행하기</u> ====
 +
 
 +
  $ 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
 
   
 
   
  /cvmfs/singularity.opensciencegrid.org/pycbc:
+
  $ cmssw-cc7
pycbc-el7:latest  pycbc-el7:v1.7.3  pycbc-el7:v1.7.11 pycbc-el7:v1.10.0 pycbc-el7:v1.11.4  pycbc-el7:v1.11.13
+
Singularity> cat /etc/redhat-release
  pycbc-el7:v1.13.1 pycbc-el7:v1.7.4  pycbc-el7:v1.8.1  pycbc-el7:v1.10.1 pycbc-el7:v1.11.2  pycbc-el7:v1.11.14
+
CentOS Linux release 7.9.2009 (Core)
  pycbc-el7:v1.13.0 pycbc-el7:v1.7.5  pycbc-el7:v1.8.2  pycbc-el7:v1.11.0 pycbc-el7:v1.11.5  pycbc-el7:v1.12.3
+
 
  pycbc-el7:v1.12.4 pycbc-el7:v1.7.6   pycbc-el7:v1.9.0  pycbc-el7:v1.11.1  pycbc-el7:v1.11.8
+
* cmssw-el8, cmssw-el9 등 본인이 원하는 환경을 실행할 수 있습니다.
  pycbc-el7:v1.7.0  pycbc-el7:v1.7.8   pycbc-el7:v1.9.1  pycbc-el7:v1.12.0  pycbc-el7:v1.12.2
+
* 처음 실행할 때는 이미지를 다운로드 받기 때문에 시간이 걸릴수 있습니다.
  pycbc-el7:v1.7.1  pycbc-el7:v1.7.9  pycbc-el7:v1.9.2  pycbc-el7:v1.12.1 pycbc-el7:v1.11.9
+
 
  pycbc-el7:v1.7.2  pycbc-el7:v1.7.10 pycbc-el7:v1.9.4  pycbc-el7:v1.11.3 pycbc-el7:v1.11.11
+
==== crab3 실행 ====
 +
 
 +
===== <u># CMSSW 설치</u> =====
 +
$ 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 설치
 +
 
 +
===== <u># crab 환경 설정</u> =====
 +
$ source /cvmfs/cms.cern.ch/cmsset_default.sh
 +
$ cmsenv
 +
  $ source /cvmfs/cms.cern.ch/crab3/crab.sh
 +
 
 +
===== <u># 작업 설정</u> =====
 +
$ vi crab3config.py
 +
  $ vi job.py
 +
 
 +
===== <u># Grid proxy 생성</u> =====
 +
  $ voms-proxy-init --voms cms
 +
 
 +
===== <u># 작업 실행</u> =====
 +
  $ crab submit -c crab3config.py
 +
 
 +
===== <u># 작업 조회</u> =====
 +
$ crab status
 +
 
 +
==== tensorflow 실행하기 ====
 +
 
 +
===== shell =====
 +
 
 +
$ apptainer shell \
 +
>            --home $PWD:/srv \
 +
  >            --bind /cvmfs \
 +
  >            --contain --ipc --pid \
 +
  >            /cvmfs/singularity.opensciencegrid.org/opensciencegrid/tensorflow-gpu:1.4
 +
  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
 
   
 
   
  /cvmfs/singularity.opensciencegrid.org/mintproject:
+
  import os
  kimetrica:latest  ankush:latest  pihm:latest  dssat:latest  cycles:latest
+
  os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
 
   
 
   
  /cvmfs/singularity.opensciencegrid.org/evolinc:
+
  import tensorflow as tf
  osg-rmta:2.1  evolinc-i:1.6 rmta:1.6
+
  hello = tf.constant('Hello, TensorFlow!')
 +
  print(hello.numpy())
 
   
 
   
  /cvmfs/singularity.opensciencegrid.org/anniesoft:
+
  a = tf.constant(15)
  toolanalysis:latest
+
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-gpu:1.4 \
 +
  >            ./HelloTensorflow.py
 +
'Hello, TensorFlow!'
 +
25
 +
$
 +
 
 +
* shell 예제와 동일한 python 코드를 파일로 만들어 실행합니다.
 +
 
 +
=== CVMFS singularity.opensciencegrid.org repository에서 제공하고 있는 Apptainer 이미지 ===
 +
 
 +
2025년 4월 현재 CVMFS singularity.opensciencegrid.org repository에서 제공하고 있는 Apptainer 이미지는 다음과 같습니다.
 +
 
 +
※주의 : 계속해서 업데이트 되니, 본인에게 필요한 이미지가 있는지 확인해보시고 활용하시기 바랍니다. (ls -Rt /cvmfs/singularity.opensciencegrid.org/)
 +
 
 +
$ ls -Rt /cvmfs/singularity.opensciencegrid.org/
 +
/cvmfs/singularity.opensciencegrid.org/:
 +
lscsoft      pystamp      eic      eicweb      opencarp      htc      library      pycbc
 
   
 
   
/cvmfs/singularity.opensciencegrid.org/library:
+
  ...
ubuntu:latest  python:3.4    openjdk:8      debian:unstable  debian:latest  centos:centos7  alpine:latest
+
   <중략>
gcc:latest    python:latest  openjdk:latest  debian:testing   fedora:latest  centos:centos6  openjdk:9
+
  ...
python:2.7    r-base:latest  julia:latest    debian:stable    centos:latest  busybox:latest
+
 
   
 
   
  /cvmfs/singularity.opensciencegrid.org/maureeungaro:
+
  /cvmfs/singularity.opensciencegrid.org/cwinpy:
  clas12simulations:production
+
  cwinpy-containers
 
   
 
   
  /cvmfs/singularity.opensciencegrid.org/jbustamante35:
+
  /cvmfs/singularity.opensciencegrid.org/cwinpy/cwinpy-containers:
  testphytoshell:phytoshell
+
  cwinpy-dev-python38:latest
 
   
 
   
  /cvmfs/singularity.opensciencegrid.org/poldracklab:
+
  /cvmfs/singularity.opensciencegrid.org/matthew-pitkin:
  fmriprep:latest
+
  cwinpy-containers
 
   
 
   
  /cvmfs/singularity.opensciencegrid.org/opensciencegrid:
+
  /cvmfs/singularity.opensciencegrid.org/matthew-pitkin/cwinpy-containers:
osgvo-ubuntu-18.04:latest  osgvo-el7:latest        npjoodi:latest              osgvo-blaylockbk:latest
+
osgvo-el6:latest          osgvo-biomedinfo:latest  tensorflow:latest          osgvo:el7
+
osg-wn:3.3-el7            tensorflow-gpu:latest    tensorflow-gpu:1.4          osgvo:el6
+
osg-wn:3.3-devel-el7      osgvo-beagle:latest      osgvo-el6-feltus:latest    osg-3.3-wn-el7:latest
+
osg-wn:3.3-testing-el7    osgvo-r:3.5              osgvo-torch:latest          osg-3.3-wn-el6:latest
+
osg-wn:3.3-el6            osgvo-el6-cuda:latest    osgvo-ubuntu-xenial:latest
+
 
   
 
   
  /cvmfs/singularity.opensciencegrid.org/discoenv:
+
  /cvmfs/singularity.opensciencegrid.org/patrickrmiles:
osg-word-count:1.0.0
+
 
   
 
   
  /cvmfs/singularity.opensciencegrid.org/dajunluo:
+
  /cvmfs/singularity.opensciencegrid.org/scipp-atlas:
  deepvariant:latest
+
  mario-mapyde
 
   
 
   
  /cvmfs/singularity.opensciencegrid.org/bbockelm:
+
  /cvmfs/singularity.opensciencegrid.org/scipp-atlas/mario-mapyde:
cms:rhel7  cms:rhel6
+
 
   
 
   
  /cvmfs/singularity.opensciencegrid.org/drtmfigy:
+
  /cvmfs/singularity.opensciencegrid.org/rucio:
  hjets_herwig7:latest  fbps:latest  herwig_hjets:latest
+
  igwn-rucio-client
 
   
 
   
  /cvmfs/singularity.opensciencegrid.org/jasoncpatton:
+
  /cvmfs/singularity.opensciencegrid.org/rucio/igwn-rucio-client:
+
 
/cvmfs/singularity.opensciencegrid.org/rynge:
+
=== 경북대 UI에서 사용시 주의사항 ===
osg-mcf10-mod:latest      osgvo-el7-testing:latest  einsteintoolkit:latest  osgvo:el6
+
 
osgvo-el6-testing:latest  osg-tensorflow-gpu:latest  osgvo:el7
+
* 보안문제로 cvmfs 외의 이미지는 현재 지원하고 있지 않습니다.
+
* 따라서 이미지 생성 및 다운로드 등 이미지 사용과 관련된 명령어는 현재 사용할 수 없습니다.
/cvmfs/singularity.opensciencegrid.org/ligo:
+
* cvmfs의 특성상 원하는 이미지가 로컬 cache에 저장되어 있지 않다면 파일 다운로드로 인하여 초기 실행에 많은 시간이 필요할 수도 있습니다.
software:el7  software:jessie  software:jessie-proposed
+
 
+
=== <u>컨테이너내에서 데이터 전송 오류가 발생할 때</u> ===
/cvmfs/singularity.opensciencegrid.org/cyverse:
+
 
osg-gl:1.0  rsem-prepare:latest
+
* xrdcp 나 데이터 전송시 다음과 같은 오류가 발생한다면
+
  Run: [FATAL] TLS error: resource temporarily unavailable: Unable to connect to cluster142.knu.ac.kr; error_ssl (destination)
/cvmfs/singularity.opensciencegrid.org/nipy:
+
 
mindboggle:latest
+
* 컨테이너에서 xrdcp 실행전에 다음 환경변수를 추가해줘야합니다.
+
  export X509_CERT_DIR=/cvmfs/grid.cern.ch/etc/grid-security/certificates
/cvmfs/singularity.opensciencegrid.org/wipac:
+
 
npx-el6:latest  npx-el6:test  skylab:1.0.0  skylab_smancina:1.0.0  fasig_scalable_radio_array:latest
+
=== HTCondor에서 apptainer를 이용하여 코드 실행하기 ===
+
 
  /cvmfs/singularity.opensciencegrid.org/kreczko:
+
* [[HTCondor#Apptainer.28Singularity.29.EB.A5.BC_.EC.9D.B4.EC.9A.A9.ED.95.98.EC.97.AC_.EC.BD.94.EB.93.9C_.EC.8B.A4.ED.96.89|HTCondor에서 apptainer를 이용하여 코드 실행하기]]
workernode:centos7  workernode:centos6
+
 
+
=== 참고문서 ===
/cvmfs/singularity.opensciencegrid.org/blaylockbk:
+
 
miniconda3_osg:latest
+
* Apptainer 사용자 가이드 : https://apptainer.org/docs/user/main/
+
* Apptainer 관리자 가이드 : https://apptainer.org/docs/admin/main/
/cvmfs/singularity.opensciencegrid.org/ssthapa:
+
freesurferosg:5.1  freesurferosg:5.3  freesurferosg:6.0  freesurferosg:latest
+
+
/cvmfs/singularity.opensciencegrid.org/econtal:
+
numpy-mkl:latest
+
+
  /cvmfs/singularity.opensciencegrid.org/ankushumn:
+
rsatest:latest
+
+
/cvmfs/singularity.opensciencegrid.org/markito3:
+
gluex_docker_prod:latest  gluex_docker_devel:latest
+
+
/cvmfs/singularity.opensciencegrid.org/biocontainers:
+
blast:latest
+
+
/cvmfs/singularity.opensciencegrid.org/jamessaxon:
+
postgres-routing:a0  postgres-routing:latest
+
+
/cvmfs/singularity.opensciencegrid.org/adwasser:
+
slomo:latest
+
+
/cvmfs/singularity.opensciencegrid.org/dcshrum:
+
singularity:cowsay
+
+
/cvmfs/singularity.opensciencegrid.org/cathrine98:
+
bbmap:latest
+
+
/cvmfs/singularity.opensciencegrid.org/ucatlas:
+
xah:21.2.4-latest
+
+
/cvmfs/singularity.opensciencegrid.org/shilpac:
+
my_mindboggle:latest
+
+
/cvmfs/singularity.opensciencegrid.org/argonneeic:
+
fpadsim:v1.4.1  evochain:v0.1  fpadsim:v1.4  fpadsim:v1.3  fpadsim:flat
+
+
/cvmfs/singularity.opensciencegrid.org/rjones30:
+
gluextest:latest  gluex6:latest  gluex:latest
+
+
/cvmfs/singularity.opensciencegrid.org/chekanov:
+
centos7hepsim:latest
+
+
/cvmfs/singularity.opensciencegrid.org/atlas:
+
athanalysis:21.2.4  analysisbase:21.2.4
+
+
/cvmfs/singularity.opensciencegrid.org/leofang:
+
cthyb-ohmic:latest
+
+
/cvmfs/singularity.opensciencegrid.org/dmbala:
+
r-ebcrimage:latest  r-3.4.1:latest
+
+
/cvmfs/singularity.opensciencegrid.org/nkern:
+
21cmfast_env:latest  21cmfast:latest
+
+
/cvmfs/singularity.opensciencegrid.org/djw8605:
+
gluexprod:latest
+
+
/cvmfs/singularity.opensciencegrid.org/dbcooper:
+
fpadsim:singularity
+
+
/cvmfs/singularity.opensciencegrid.org/lincolnbryant:
+
atlas-wn:latest
+
+
/cvmfs/singularity.opensciencegrid.org/whit2333:
+
eic-slic:latest
+
+
/cvmfs/singularity.opensciencegrid.org/centos:
+
python-34-centos7:latest
+

Latest revision as of 02:32, 17 July 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를 이용하여 cc7 프로그램 실행하기

$ 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-cc7
Singularity> cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
  • cmssw-el8, cmssw-el9 등 본인이 원하는 환경을 실행할 수 있습니다.
  • 처음 실행할 때는 이미지를 다운로드 받기 때문에 시간이 걸릴수 있습니다.

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-gpu:1.4
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-gpu:1.4 \
>             ./HelloTensorflow.py
'Hello, TensorFlow!'
25
$ 
  • shell 예제와 동일한 python 코드를 파일로 만들어 실행합니다.

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

2025년 4월 현재 CVMFS singularity.opensciencegrid.org repository에서 제공하고 있는 Apptainer 이미지는 다음과 같습니다.

※주의 : 계속해서 업데이트 되니, 본인에게 필요한 이미지가 있는지 확인해보시고 활용하시기 바랍니다. (ls -Rt /cvmfs/singularity.opensciencegrid.org/)

$ 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에 저장되어 있지 않다면 파일 다운로드로 인하여 초기 실행에 많은 시간이 필요할 수도 있습니다.

컨테이너내에서 데이터 전송 오류가 발생할 때

  • xrdcp 나 데이터 전송시 다음과 같은 오류가 발생한다면
Run: [FATAL] TLS error: resource temporarily unavailable: Unable to connect to cluster142.knu.ac.kr; error_ssl (destination)
  • 컨테이너에서 xrdcp 실행전에 다음 환경변수를 추가해줘야합니다.
export X509_CERT_DIR=/cvmfs/grid.cern.ch/etc/grid-security/certificates

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

참고문서