anaconda, cuda 환경변수 설정 + 서버의 Jupyter notebook 원격 접속

Taehong Jang·2022년 4월 26일
0

딥러닝 서버

목록 보기
2/3

원 참고내용 본문

user 계정마다 각자의 프로그램을 설치해서 사용하는 것과
하나의 설치된 프로그램을 환경변수 설정을 통해 함께 공유해서 쓰는 것
이 각각 어떤 장단점이 있는지는 잘 모르고, 어떤 문제가 되는지 잘 몰라서
(리눅스 무지랭이는) 일단은 굳이 재설치 할 필요는 없다고 생각해서 경로 설정을 통해 프로그램을 쓰는 방식으로 했다.
누군가 알려주시면 감사하게 조언을 받겠습니다 ㅠㅠ

1. 경로 설정

내 상황은 userabc 계정에 이미 설치되어 있으므로,

간단히 환경변수에 경로값을 추가해주어 사용하기로 한다.

vi / vim / gedit 같은 편집기를 이용한다.

vi / vim 의 경우는 터미널 창에서 여는 방식이고,

gedit 의 경우는 GUI가 지원되는 환경에서 사용가능

$ vim ~/.bashrc

열어서 하단에 다음의 내용을 추가한다.

vim 편집기에 대해서는 필요한 내용만을 같이 정리

  • Vim 을 이용한 환경변수 편집
    cf. vim 편집기가 어려우면 1~5번 내용은 echo 명령어를 사용하여 .bashrc 파일에 내용을 추가 하는 방법으로 대체가능 (참고 : https://dockyum.tistory.com/39 )
    1. 여러 모드가 있는데, 최초에 vi / vim 을 이용해 들어가면 일반모드이다. 모드 설명

    2. 화살표를 이용해 이동 또는 G(shift+g)를 이용해 문서 제일 하단으로 이동

    3. i 키 눌러서 입력모드로 전환 , 아래의 내용을 입력

      • anaconda의 경로, anaconda3/bin 이 위치한 경로를 추가해주면 된다.

      (일반적으로 따로 설치 경로 변경 안하면 anaconda3는 유저의 홈디렉토리에 있음, userabc으로 설치 했으므로 해당 홈디렉토리에 있음)

      • cuda와 관련해서는, cuda/bin 과 cuda/lib64 의 경로를 다음과 같이 추가

      (일반적으로 설치시 설치 경로 따로 변경 안하면 아래의 경로에 위치함)

      (추가적으로, 다른 버전의 cuda를 사용하려면 해당 버전의 경로로 바꿔주면 된다고 함)

      # anaconda export
      export PATH="/home/userabc/anaconda3/bin:$PATH"
      
      # CUDA export
      export PATH=/usr/local/cuda/bin:$PATH
      export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
    4. 입력이 끝난 후에는 ESC를 통해 일반모드로 전환

    5. : 키를 눌러서 명령모드로 진입 wq 입력 후에 Enter

      (wq : 변경된 내용을 저장하고 나가는 명령임)

    6. 변경된 내용이 현재 세션에서 적용되도록 다음 명령을 실행 (다음 접속부턴 필요 x)

      $ source ~/.bashrc
    7. 명령어 test, 관련 명령어들이 실행되는지 version 체크하는 방식으로

      # anaconda 버전 확인
      conda -V
      
      # cuda 버전 확인
      nvcc -V

      버전 정보가 잘 나온다면 환경변수 설정 잘 된 것.

2. 서버의 포트 열기

jupyter notebook을 사용시 가장 일반적으로 쓰는 8888 포트의 방화벽 해제

$ sudo ufw allow 8888

타, 포트도 사용 가능

3. config 파일 만들기

jupyter notebook 실행시에 여러 설정값을 전달해주기 위한 config 파일을 만든다.

$ jupyter notebook --generate-config

생성하면 /home/username/.jupyter 디렉토리에 jupyter_notebook_config.py 파일이 생성됨

4. 서버 비밀번호 생성

$ ipython

을 실행 후에 다음 내용을 입력한다.

ln [1]: from notebook.auth import passwd
ln [2]: passwd()

Enter password: 
Verify password: # 위에서 타이핑한 비밀번호를 한번 더 입력해주세요.

Out[2]: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

enter password 에는 자신이 설정할 비밀번호 입력

verify password 에는 설정한 비밀번호를 한번 더 확인차 입력

(참고로 리눅스처럼 비밀번호 입력되는 것이 표시되지 않음. 입력되지 않아도 당황 x)

out[2] : 에 암호화 처리된 비밀번호 해쉬값을 줌. 이것을 잘 복사해두기(나중에 씀)

5. jupyter 서버 환경설정

jupyter_notebook_config.py 의 내용을 수정하기 위해 vim 편집기로 연다.

$ vim /home/username/.jupyter/jupyter_notebook_config.py

내용의 상단에 아래 내용 입력

c = get_config() 

내용들을 살펴보면 각 설정값에 대한 설명들과 코드 내용들이 주석처리 되어 있음.

주석 처리된 코드 부분 중 해당 되는 내용을 살리고 값을 설정해준다.

  • vim 내용 검색 기능 내용이 많아 검색이 번거로움, vim 편집기에서 esc를 눌러서 일반모드 상태에서 / 키를 입력하고 내용을 입력하면 해당 내용으로 검색 가능(대소문자 구분함)

아니면, 맨 아래에 내용들을 추가 시켜주어도 된다.

#외부 접속 허용하기
c.NotebookApp.allow_origin = '*' 

# 작업경로 설정(주석처리 안풀면 jupyter notebook을 명령을 실행한 위치가 작업 디렉토리가 됨)
c.NotebookApp.notebook_dir = '원하는/작업경로를/입력해/주세요'

# 아이피 설정(아무 입력값이나 상관없는지는 모르나, 우리 서버의 ip를 사용했음)
c.NotebookApp.ip = '사용할.아이피를.입력해.주세요'

# 포트 설정(주석처리 안풀면 그냥 8888번 포트 )
c.NotebookApp.port = '사용할 포트번호 네자리를 입력해주세요, 초기값은 8888 입니다.'

# 비밀번호 설정
c.NotebookApp.password = '복사해둔 암호화된 비밀번호 **sha1:12j30t94230g208ehdsflhsdgt3908** 를 여기에 입력해주세요'

# 시작시 브라우저 실행여부
c.NotebookApp.open_browser = False # 서버로 실행될때 서버PC에서 주피터 노트북 창이 새로 열릴 필요가 없습니다.

수정이 완료됬으면 jupyter_notebook_config.py 를 저장한다.

(ESC(일반모드 전환)→: (명령모드전환)→wq (변경 내용 저장)→ Enter)

6. jupyter notebook 실행

jupyter notebook을 실행하면서 환경설정값이 담긴 config 파일을 함께 전달

$ jupyter notebook --config jupyter_notebook_config.py

7. 주피터 서버 외부에서 접속

윈도우에서 브라우저를 열고,

주소창에 본인이 설정한 IP주소: 본인이 설정한 포트

ex) 55.111.222.333:8888 입력하면 접속 가능합니다.

0개의 댓글