이번 포스팅에서는 Singularity란 무엇이고, 커맨드 군집 그리고 설치 방법에 대해서 간단히 살펴보고자한다. 조작 방법은 차차 나중에 포스팅할 예정이다.
Singularity란
Singularity란 한 마디로 설명하자면 HPC용의 컨테이너형 가상화이다. 과학 및 고성능 컴퓨팅 환경용으로 설계된 오픈 소스 베이스의 컨테이너 플랫폼으로 아래와 같은 특징이 있다.
일반 유저 계정으로 컨테이너를 기동시키거나 중지시킬 수 있다. 즉, 유저 어카운트에 sudo권한을 부여할 필요가 없어서 좋다. 여러 명에서 작업을 할 때에 sudo권한을 가진 유저 중 한 명이 잘못 조작하는 것과 같은 번거로운 문제가 해결된다.
- Docker이미지를 이용할 수 있다. 다시 말하자면, docker 및 nvidia-docker컨테이너 이미지를 사용할 수 있다.
- 실행 유저 어카운트의 권한을 그대로 컨테이너에 인계할 수 있다. 컨테이너 내에서 파일의 작성하고 편집해도 owner은 실행 유저 그대로이다.
- GPU의 가상화에 대응가능하다. 컨테이너 실행시에 옵션을 부여하면 컨테이너내에 GPU도 이용가능하다.
- 호스트의 $HOME아래를 컨테이너에 바인딩(공유)할 수 있다. 즉, $HOME이외에도 그 아래까지도 기본적으로 컨테이너쪽에 공유되므로 모델이나 교사 데이터의 이동이나 복사가 편리하다. 또한 시스템 관리자가 유저 바인딩을 허가한 경우는 유저쪽에서 바인딩 소스 및 대상을 지정할 수 있다.
호스트(바인딩 소스) | 컨테이너(바인딩 타켓) |
$HOME | $HOME |
/sys | /sys |
/proc | /proc |
/tmp | /tmp |
/var/tmp | /var/tmp |
/etc/resolv.conf | /etc/resolv.conf |
/etc/passwd | /etc/passwd |
$PWD | $PWD |
커맨드의 전체 그림
커맨드 군집을 살펴 보자면 아래의 이미지와 같이 다섯 가지가 있지만,
command | 설명 | sample |
build | build를 사용하여 기존의 컨테이너를 다운로드하여 어셈블하거나 어떠한 포멧으로부터 다른 포멧으로 컨테이너를 변환하는 것등이 가능하다. | singularity build singlarity-tensorflow.img docker://tensorflow/tensorflow |
inspect | 이미지 개요를 조사하기 위한 커맨드. runscript, 디스크립트, 환경, 헬프 및 메타 데이터 레벨을 간단히 표시해준다. | singularity inspect singlarity-tensorflow.img |
exec | 호스트 시스템상에 직접 실행되고 있는 것과 같이, 컨테이너 이미지내의 임의의 컨테이너를 생성할 수 있다. 이 exec는 Docker exec와 달리, 컨테이너를 사용하기 전에 컨테이너를 "실행"할 필요가 없다. | singularity exec singlarity-tensorflow.img python mnist_softmax.py |
shell | 컨테이너내에 대화형 쉘을 자동적으로 생성한다. | singularity shell singlarity-tensorflow.img |
run | 컨테이너가 파일명으로 직접 실행 혹은 실행되었을 때에 실행될 커스텀 액션을 정의할 수 있다. | singularity run singlarity-tensorflow.img ./singlarity-tensorflow.img |
pull | Docker Hub 혹은 Singularity Hub로 부터 컨테이너의 이미지를 취득할 수 있는 커맨드 | singularity pull singlarity-tensorflow.img docker://tensorflow/tensorflow |
Singularity의 설치
상황에 따라 1번 방법 혹은 2번 방법을 선택해서 다운로드하길 바란다.
[1번] 공식 홈페이지의 설명대로 설치한다.
Mac과 Windows는 vagrant > virtualbox > singularity > ubutu라는 흐름으로 되어 있다.
Mac
설명 : 블로그 포스트 (일본어 자료)
공식 홈페이지: https://singularity.lbl.gov/install-mac
Windows
설명 : 홈페이지상에 존재
공식 홈페이지 : https://singularity.lbl.gov/install-windows
Linux
설명 : 블로그 포스트 (일본어 자료)
공식 홈페이지 : https://singularity.lbl.gov/install-linux
[2번] (비공식) Docker컨테이너 상에서 구축한다.
설명 : 블로그 포스트 (일본어 자료)
※ 일본어 자료라도 구글 번역 기능 + 코드를 참고해서 설치할 수 있을 거라고 생각합니다.
참고자료
'IT > 기초 지식' 카테고리의 다른 글
[Linux] vi 기초 사용법 (0) | 2021.06.10 |
---|---|
[Singularity] Ubuntu 18.04에 Singularity 설치해 NGC 컨테이너 사용하기 (0) | 2021.06.10 |
[Docker] Docker 이미지 튜토리얼 (0) | 2021.05.10 |
[Docker] Docker 기초(3) (0) | 2021.05.07 |
[Docker] 자주 사용하는 Docker 커맨드 모음 (0) | 2021.04.21 |