일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- G16
- Kat
- vasp
- Gaussian
- HPC
- ansys
- skl
- SGE
- neuron
- GROMACS
- TACHYON2
- 누리온
- 국가슈퍼컴퓨팅센터
- 타키온2
- 슈퍼컴퓨팅
- cuda
- Linux
- KNL
- KISTI
- 슈퍼컴퓨터
- 뉴론
- sinbaram
- 슈퍼컴퓨팅교육
- abaqus
- GPU
- 신바람
- 가우시안
- nurion
- openfoam
- 5호기
- Today
- Total
KISTI 슈퍼컴퓨팅 기술 블로그
Conda 의 활용 소개 본문
아나콘다(Anaconda)는 PYTHON 과 R 프로그래밍 언어로 된 과학 컴퓨팅(데이터 과학, 기계 학습 응용 프로그램, 대규모 데이터 처리, 예측 분석 등)분야의 패키지들의 모음을 제공하는 배포판이다.
Anaconda 배포판은 1,200 만 명이 넘는 사용자가 사용하며 Windows, Linux 및 MacOS에 적합한 1400 가지 이상의 인기있는 데이터 과학 패키지를 포함한다.
Anaconda를 설치하기 위해서는 https://www.anaconda.com 웹사이트에서 자신의 OS에 맞는 배포판을 다운받아 설치하면 된다.
(예) Windows, MacOS, Linux
현재 Anaconda 는 Python 3.7 기반의 버전과 Python 2.7 기반의 버전을 제공한다.
conda 는 아나콘다에서 패키지 버전 관리를 위해 제공되는 어플리케이션이다.
Python 사용자들이 패키지 설치 시 가장 어려움을 겪는 의존성 문제를 conda 를 활용함으로써 쉽게 해결할 수 있다.
본 문서는 KISTI 시스템에서 Python 사용자를 위하여 conda 패키지 활용하는 방법을 소개 한다.
소개 페이지의 "/home01/optpar02" 는 테스트 계정 optpar02 의 홈디렉토리로 자신에 맞는 경로로 적절히 변경해서 사용해야 한다.
1. Conda 의 사용
- Miniconda는 https://docs.conda.io/en/latest/miniconda.html 사이트 에서 각 OS 에 맞는 버전을 다운 받을 수 있고,
Anaconda 는 https://www.anaconda.com/distribution/#download-section 사이트 에서 각 OS 에 맞는 버전을 다운 받을 수 있다.
명령어 모음 | 내용 |
clean | Remove unused packages and caches. |
config | Modify configuration values in .condarc. This is modeled after the git config command. Writes to the user .condarc file (/home01/optpar02/.condarc) by default. |
create | Create a new conda environment from a list of specified packages. |
help | Displays a list of available conda commands and their help strings. |
info | Display information about current conda install. |
init | Initialize conda for shell interaction. [Experimental] |
install | Installs a list of packages into a specified conda environment. |
list | List linked packages in a conda environment. |
package | Low-level conda package utility. (EXPERIMENTAL) |
remove | Remove a list of packages from a specified conda environment. |
uninstall | Alias for conda remove. |
run | Run an executable in a conda environment. [Experimental] |
search | Search for packages and display associated information. The input is a MatchSpec, a query language for conda packages. See examples below. |
update | Updates conda packages to the latest compatible version. |
upgrade | Alias for conda update |
2. Conda Environment 생성
- conda environment 는 Python 의 독립적인 가상 실행환경을 만들어 패키지들의 버전 관리에 용이 하다.
- "conda create -n [ENVIRONMENT]" 을 이용하여 conda environment를 생성 할 수 있다.
- 기본 값으로 conda path 의 envs 아래 경로에 지정한 environment 이름으로 생성된다.
- "--use-local" 옵션을 사용하면 사용자 홈 디렉토리(${HOME}/.conda/envs/[environment_name])에 생성 된다.
- 예제 -
[optpar02@login02 ~]$ module load python/3.7.1 [optpar02@login02 ~]$ conda create -n scikit-learn_0.21 --use-local Collecting package metadata: done Solving environment: done ## Package Plan ## environment location: /home01/optpar02/.conda/envs/scikit-learn_0.21 Proceed ([y]/n)? y Preparing transaction: done Verifying transaction: done Executing transaction: done # # To activate this environment, use: # > conda activate scikit-learn_0.21 # # To deactivate an active environment, use: # > conda deactivate # [optpar02@login02 ~]$ source activate scikit-learn_0.21 (scikit-learn_0.21) [optpar02@login02 ~]$ |
3. Conda Environment에 패키지 설치 및 확인
- conda install [패키지명] 으로 패키지를 설치할 수 있다.
- conda 채널에 있는 패키지는 "conda install -c [채널명] [패키지명]" 와 같이 설치 할 수 있다.
- 위 "2" 항목에서 생성한 conda environment 경로 아래에 패키지 들이 설치 된다.
- 예제 -
[optpar02@login02 ~]$ module load python/3.7.1 [optpar02@login02 ~]$ source activate scikit-learn_0.21 (scikit-learn_0.21) [optpar02@login02 ~]$ conda install scikit-learn Collecting package metadata: done Solving environment: done ## Package Plan ## environment location: /home01/optpar02/.conda/envs/scikit-learn_0.21 added / updated specs: - scikit-learn The following packages will be downloaded: package | build ---------------------------|----------------- ca-certificates-2019.1.23 | 0 126 KB certifi-2019.3.9 | py37_0 155 KB intel-openmp-2019.3 | 199 886 KB libedit-3.1.20181209 | hc058e9b_0 188 KB mkl-2019.3 | 199 203.3 MB mkl_fft-1.0.10 | py37ha843d7b_0 169 KB numpy-1.16.2 | py37h7e9f1db_0 49 KB numpy-base-1.16.2 | py37hde5b4d6_0 4.3 MB openssl-1.1.1b | h7b6447c_1 4.0 MB pip-19.0.3 | py37_0 1.8 MB python-3.7.3 | h0371630_0 36.7 MB scikit-learn-0.20.3 | py37hd81dba3_0 5.8 MB scipy-1.2.1 | py37h7c811a0_0 17.7 MB setuptools-40.8.0 | py37_0 643 KB sqlite-3.27.2 | h7b6447c_0 1.9 MB wheel-0.33.1 | py37_0 39 KB ------------------------------------------------------------ Total: 277.6 MB The following NEW packages will be INSTALLED: blas pkgs/main/linux-64::blas-1.0-mkl ca-certificates pkgs/main/linux-64::ca-certificates-2019.1.23-0 certifi pkgs/main/linux-64::certifi-2019.3.9-py37_0 intel-openmp pkgs/main/linux-64::intel-openmp-2019.3-199 libedit pkgs/main/linux-64::libedit-3.1.20181209-hc058e9b_0 libffi pkgs/main/linux-64::libffi-3.2.1-hd88cf55_4 libgcc-ng pkgs/main/linux-64::libgcc-ng-8.2.0-hdf63c60_1 libgfortran-ng pkgs/main/linux-64::libgfortran-ng-7.3.0-hdf63c60_0 libstdcxx-ng pkgs/main/linux-64::libstdcxx-ng-8.2.0-hdf63c60_1 mkl pkgs/main/linux-64::mkl-2019.3-199 mkl_fft pkgs/main/linux-64::mkl_fft-1.0.10-py37ha843d7b_0 mkl_random pkgs/main/linux-64::mkl_random-1.0.2-py37hd81dba3_0 ncurses pkgs/main/linux-64::ncurses-6.1-he6710b0_1 numpy pkgs/main/linux-64::numpy-1.16.2-py37h7e9f1db_0 numpy-base pkgs/main/linux-64::numpy-base-1.16.2-py37hde5b4d6_0 openssl pkgs/main/linux-64::openssl-1.1.1b-h7b6447c_1 pip pkgs/main/linux-64::pip-19.0.3-py37_0 python pkgs/main/linux-64::python-3.7.3-h0371630_0 readline pkgs/main/linux-64::readline-7.0-h7b6447c_5 scikit-learn pkgs/main/linux-64::scikit-learn-0.20.3-py37hd81dba3_0 scipy pkgs/main/linux-64::scipy-1.2.1-py37h7c811a0_0 setuptools pkgs/main/linux-64::setuptools-40.8.0-py37_0 sqlite pkgs/main/linux-64::sqlite-3.27.2-h7b6447c_0 tk pkgs/main/linux-64::tk-8.6.8-hbc83047_0 wheel pkgs/main/linux-64::wheel-0.33.1-py37_0 xz pkgs/main/linux-64::xz-5.2.4-h14c3975_4 zlib pkgs/main/linux-64::zlib-1.2.11-h7b6447c_3 Proceed ([y]/n)? y Downloading and Extracting Packages setuptools-40.8.0 | 643 KB | ##################################### | 100% mkl_fft-1.0.10 | 169 KB | ##################################### | 100% pip-19.0.3 | 1.8 MB | ##################################### | 100% mkl-2019.3 | 203.3 MB | ##################################### | 100% ca-certificates-2019 | 126 KB | ##################################### | 100% sqlite-3.27.2 | 1.9 MB | ##################################### | 100% wheel-0.33.1 | 39 KB | ##################################### | 100% python-3.7.3 | 36.7 MB | ##################################### | 100% intel-openmp-2019.3 | 886 KB | ##################################### | 100% libedit-3.1.20181209 | 188 KB | ##################################### | 100% numpy-base-1.16.2 | 4.3 MB | ##################################### | 100% scipy-1.2.1 | 17.7 MB | ##################################### | 100% scikit-learn-0.20.3 | 5.8 MB | ##################################### | 100% numpy-1.16.2 | 49 KB | ##################################### | 100% certifi-2019.3.9 | 155 KB | ##################################### | 100% openssl-1.1.1b | 4.0 MB | ##################################### | 100% Preparing transaction: done Verifying transaction: done Executing transaction: done (scikit-learn_0.21) [optpar02@login02 ~]$ python -c "import sklearn" (scikit-learn_0.21) [optpar02@login02 ~]$ |
4. Conda Environment 목록 확인
- "conda-env list" 또는 "conda env list" 를 이용하여 목록을 확인 할 수 있다.
[예제]
(scikit-learn_0.21) [optpar02@login02 ~]$ conda env list # conda environments: # base /apps/applications/PYTHON/3.7 scikit-learn_0.21 * /home01/optpar02/.conda/envs/scikit-learn_0.21 [optpar02@login02 ~]$ |
5. Conda Environment 삭제
- "conda-env remove -n [ENVIRONMENT]" 또는 "conda env remove -n [ENVIRONMENT]" 를 이용하여 삭제 할 수 있다.
[예제]
[optpar02@login02 ~]$ module load python/3.7.1 [optpar02@login02 ~]$ conda env remove -n scikit-learn_0.21 Remove all packages in environment /home01/optpar02/.conda/envs/scikit-learn_0.21: [optpar02@login02 ~]$ conda env list # conda environments: # base * /apps/applications/PYTHON/3.7 [optpar02@login02 ~]$ |
6. Conda Environment 내보내기
- 내보내기 전 conda-pack 패키지 필요
(참고) https://conda.github.io/conda-pack
- "conda pack -n [ENVIRONMENT] -o [파일명]" 을 이용하여 conda environment 를 다른 시스템에서 활용할 수 있다.
(예) 외부 인터넷이 연결되지 않는 경우, 다른 시스템에서 동일한 conda 환경을 이용하는 경우
[예제]
[optpar02@login02 ~]$ module load python/3.7.1 [optpar02@login02 ~]$ source activate tensorflow_1.12 (tensorflow_1.12) [optpar02@login02 ~]$ conda install -c conda-forge -n tensorflow_1.12 (tensorflow_1.12) [optpar02@login02 ~]$ conda pack -n tensorflow_1.12 -o conda_tensorflow_1.12.tar.gz Collecting packages... Packing environment at '/home01/optpar02/.conda/envs/tensorflow_1.12' to 'conda_tensorflow_1.12.tar.gz' [########################################] | 100% Completed | 4min 18.8s (tensorflow_1.12) [optpar02@login02 ~]$ ls -l conda_tensorflow_1.12.tar.gz -rw-------. 1 optpar02 in0162 1459826406 Mar 28 15:03 conda_tensorflow_1.12.tar.gz (tensorflow_1.12) [optpar02@login02 ~]$ |
7. Conda Environment 가져오기
- conda pack 을 이용하여 생성했던 conda environment 를 아래 [예제]와 같이 가져와 환경설정 후 사용 가능.
[예제]
[optpar02@login02 ~]$ module load python/3.7.1 [optpar02@login02 ~]$ conda env list # conda environments: # base * /apps/applications/PYTHON/3.7 [optpar02@login02 ~]$ mkdir -p $HOME/.conda/envs/tensorflow_1.12 [optpar02@login02 ~]$ tar xvzf conda_tensorflow_1.12.tar.gz -C $HOME/.conda/envs/tensorflow_1.12 [optpar02@login02 ~]$ cd $HOME/.conda/envs/tensorflow_1.12/bin [optpar02@login02 ~]$ ./conda-unpack [optpar02@login02 ~]$ conda env list # conda environments: # base * /apps/applications/PYTHON/3.7 tensorflow_1.12 /home01/optpar02/.conda/envs/tensorflow_1.12 [optpar02@login02 ~]$ source activate tensorflow_1.12 |
'시스템 활용 & 팁' 카테고리의 다른 글
뉴론 OpenMPI 3.1.X 이슈 사항 (0) | 2019.04.30 |
---|---|
뉴론 MPI 환경설정 및 작업 제출 방법(2021.03) (0) | 2019.04.30 |
CPU 관련 오류 사항 ( illegal instruction ) (0) | 2018.12.11 |
vasp.5.4.4.18Apr17 Version Bug 이슈 (0) | 2018.12.04 |
컴파일러별 AVX-512 옵션 정리 (0) | 2018.11.29 |