콘텐츠로 이동

빠른 시작

이 문서는 여러 명이 함께 쓰는 GPU 워크스테이션에서 LabPod 계정을 막 발급받은 연구자를 위한 안내입니다. 약 5분 안에 로그인하고, 워크스페이스를 만들고, GPU에서 작업을 실행한 뒤 깔끔하게 종료하는 방법을 살펴보겠습니다.

아직 계정이 없다면 서버를 운영하는 담당자에게 문의하세요. 운영자가 계정을 생성하고 비밀번호를 설정해 줍니다. (운영자 가이드: 사용자 및 할당량 참고)

관리자가 안내한 URL을 엽니다. 예: http://lab-gpu.example.local:24680

LabPod 로그인 페이지

  • 사용자 이름: 워크스테이션의 Linux 계정과 동일합니다.
  • 비밀번호: 관리자가 설정한 LabPod 비밀번호입니다. Linux 비밀번호와는 별개입니다.

관리자가 처음 준 비밀번호는 임시 비밀번호입니다. 로그인한 뒤 워크스페이스, 파일, 터미널 또는 앱을 열기 전에 새 LabPod 비밀번호를 정해야 합니다. 일반 계정은 864자 Unicode 문자, 관리자 계정은 1264자 Unicode 문자를 사용하세요. LabPod는 흔한 비밀번호나 계정 이름·labpod에서 쉽게 유추되는 비밀번호는 거부하지만, 대문자·소문자·숫자·기호의 특정 조합을 요구하지는 않습니다. 이 변경은 LabPod 자격 증명에만 적용됩니다.

로그인하면 LabPod은 갈 수 있는 만큼 곧바로 안내합니다. 워크스페이스가 하나도 없으면 워크스페이스 워크스페이스 템플릿 갤러리로, 워크스페이스가 정확히 하나뿐이거나(상태와 무관) 여럿 중 실행 중인 것이 정확히 하나면 그 워크스페이스 페이지로 이동하고, 그 외에는 워크스페이스 목록을 보여줍니다. 이렇게 자동으로 이동하는 것만으로는 아무것도 만들어지거나 시작되지 않으며, 클릭 한 번을 줄여줄 뿐입니다.

아무것도 없는 상태에서 실행 중인 앱까지 가려면 네 번만 누르면 되며 각 단계마다 해당하는 종류의 비용만 그때 한 번씩 소비됩니다.

  1. Create workspace: 워크스페이스 템플릿을 고르고 추천 자원을 확인합니다. 이 단계는 DB에 행 하나를 기록할 뿐, CPU와 메모리와 GPU는 물론 디스크와 네트워크도 전혀 건드리지 않습니다.
  2. Download image 또는 Build image: 워크스페이스 템플릿의 이미지가 아직 계정에 없을 때만 필요합니다. 다운로드나 빌드 시간, 디스크 용량이 소비되는 단계이며 이미지가 이미 있다면 완전히 건너뜁니다.
  3. Start workspace: 컨테이너를 올립니다. 할당량과 GPU/CPU/메모리가 실제로 배정되는 단계는 이곳뿐입니다.
  4. 앱 실행(Launch): 워크스페이스 안의 앱(JupyterLab, code-server 등)을 켭니다. 이 버튼을 누르면 앱이 준비되는 즉시 자동으로 열리므로 따로 “열기”를 한 번 더 누를 필요가 없습니다.

워크스페이스는 공유 호스트에서 사용자의 Linux 계정으로 실행되는 Podman 컨테이너입니다. CPU, 메모리, GPU, 디스크 제한은 할당량에 따라 사용자마다 따로 적용됩니다.

아직 워크스페이스가 없는 상태로, Set up workspace 버튼과 자원 요약이 보이는 워크스페이스 목록

  1. 워크스페이스 목록에서 Set up workspace를 누릅니다. 생성 양식을 열 뿐 아무것도 만들지 않습니다. 워크스페이스 템플릿 갤러리에서는 Start from scratch가 같은 양식을 엽니다.
  2. 워크스페이스 템플릿을 확인합니다. 이름 제안과 추천 자원(프로세서, 메모리, 가속기)이 해당 워크스페이스 템플릿과 현재 할당량에 맞춰 미리 채워집니다. 워크스페이스 템플릿이 지원하면 이번만 GPU를 건너뛰는 CPU only 체크박스도 나타납니다.
  3. Create workspace를 누릅니다. 이 단계는 워크스페이스를 등록할 뿐이며 이미지를 다운로드하거나 빌드하지 않고 컨테이너를 시작하거나 앱을 켜지도 않습니다.

정확한 CPU/메모리 제한, 특정 GPU 공유 모드, 폴더, 환경 변수, 포트, 이미지/런타임 세부 정보가 필요하다면 같은 양식의 Customize를 여세요. 전체 내용은 워크스페이스 & 워크스페이스 템플릿과 GPU 사용하기를 참고하세요.

워크스페이스 템플릿, 제안된 이름, 추천 자원이 표시된 워크스페이스 생성 양식

워크스페이스를 시작하고 앱 실행하기

섹션 제목: “워크스페이스를 시작하고 앱 실행하기”

방금 만든 워크스페이스를 엽니다. 상세 페이지는 메인 앱과 상태에 맞는 버튼 하나를 가장 먼저 보여줍니다.

  • 아직 실행 중이 아니면 버튼이 Start workspace(호스트가 재부팅된 뒤라면 Resume workspace)로 표시됩니다. 할당량에서 GPU/CPU/메모리를 배정받는 단계입니다.
  • 워크스페이스는 실행 중이지만 앱이 아직 꺼져 있으면 버튼이 **Launch <앱>**으로 표시됩니다. 누르면 준비되는 즉시 새 탭에서 앱이 열리므로 더 누를 것이 없습니다.
  • 앱이 이미 실행 중이면 버튼이 **Open <앱>**으로 표시됩니다.

Terminal과 Files는 메인 앱 옆에 한 번만 누르면 되는 바로가기로 함께 있습니다. 그 외 워크스페이스가 제공하는 것들, 예를 들어 추가 앱, 자원 사용량, 폴더, 환경 변수, 로그, 중지/삭제는 페이지 아래쪽 Manage workspace 펼치기 아래에 모여 있어 기본 화면은 지금 하려는 일 하나에 집중할 수 있습니다.

워크스페이스 URL은 경로 기반이며 LabPod 세션 쿠키로 보호됩니다. 예를 들어 http://<host>:24681/ws/<id>/jupyter/를 사용합니다. LabPod은 이 URL을 인접한 워크스페이스 게이트웨이로 리디렉션하므로 예전 플랫폼 /ws/ 형식을 북마크하지 말고 관리자가 준 플랫폼 URL에서 시작하세요.

Terminal(또는 JupyterLab 내부 터미널)을 열고 평소대로 작업하세요.

Terminal window
nvidia-smi # confirm the GPU is visible
python train.py
tensorboard --logdir runs/ --bind_all # then start TensorBoard under Manage workspace

장시간 실행이 필요한 경우 브라우저 탭을 닫아도 됩니다. 프로세스는 컨테이너 내부에서 계속 실행됩니다.

LabPod는 컨테이너의 /dev/shm을 메모리 제한의 절반으로 설정하므로 PyTorch의 DataLoader(num_workers>0)와 단일 컨테이너 멀티 GPU DDP(NCCL)가 바로 작동합니다. podman run으로 직접 시작한 컨테이너에서 Bus error가 발생하는 경우 --shm-size를 추가하세요. Podman 기본값은 64 MB에 불과합니다.

  • /work: 호스트의 ~/work가 자동으로 마운트됩니다. 재시작 및 워크스페이스 간에도 유지됩니다. 데이터셋, 체크포인트, 코드를 이곳에 저장하세요.
  • /home/<사용자명>: 워크스페이스별 홈 디렉터리로, conda 환경, dotfiles, 셸 기록이 해당 워크스페이스의 중지/시작 간에 유지됩니다.
  • 생성한 파일은 호스트에서 사용자 본인의 Linux 계정으로 표시되므로(--userns keep-id) chown이 필요 없습니다.

전체 내용: 파일 & 스토리지

  • 실험이 끝나고 다른 사람에게 GPU가 필요할 때 Manage workspace 아래의 중지를 누릅니다. 중지는 단계적으로 진행됩니다(SIGTERM 후 종료).
  • 잠깐 자리를 비울 때는 중지하지 마세요. 컨테이너를 실행 상태로 두어도 부담이 없습니다.
  • 워크스페이스 구성과 컨테이너가 더 이상 필요 없을 때만 삭제를 사용하세요. 개인 홈은 계정 아래에 복구할 수 있도록 보관되며, /work는 호스트 마운트이므로 어떤 경우에도 보존됩니다.

워크스페이스가 저절로 중지된 경우

섹션 제목: “워크스페이스가 저절로 중지된 경우”

워크스페이스가 자동으로 중지될 수 있습니다. 대부분 OOM 종료(메모리 제한 초과) 또는 호스트 재부팅이 원인입니다. 워크스페이스는 자동으로 다시 시작되지 않으므로 Resume 버튼을 직접 눌러야 합니다. 카드와 상세 페이지에서 원인을 확인할 수 있습니다. 워크스페이스 중지 시를 참고하세요.