Tesla Cluster구축
홈 > CUDA > Tesla Cluster구축 > Linux Cluster

Linux Cluster

 Tesla: Preconfigured Solutions

 

 

미루웨어(Miruware)는 리눅스로 운영되는 CUDA / Tesla Cluster 에 대한 경험을 가지고 있습니다.

 

리눅스에서 CUDA 드라이버 설치시에는
textmode
에서 설치되어야 하며, 드라이버 모듈 빌드를 위해서는 꼭

현재 Linux kernel의 소스코드와 compiler가 미리 설치되어 있어야 합니다.
초보자 분들의 리눅스 설치시에는 developer 관련 옵션은  full install을 권장합니다
.
 
 
리눅스에서는 CUDA toolkit, SDK 설치후  다음의 환경세팅을 꼭 해주어야 합니다
.
 
PATH=$PATH:/urs/local/cuda/bin
export PATH
LD_LIBRARY_PATH=/usr/local/cuda/lib
export LD_LIBRARY_PATH
 
그런데, CUDA 2.3버전부터 64bit에서 32bit cross compile을 지원하기때문에
64bit OS
를 사용하는 경우 꼭
/usr/local/cuda/lib64 로 설정해 주셔야 합니다.
 
또한, OpenGL 등의 연동을 위해서는 glut, freeglut 등의 OpenGL 관련 라이브러리를 설치해줘야 합니다. 이또한, 리눅스 패키지 설치시 full install을 권장하는 이유이고, 배포판에 따라  yum install, apt-get 을 통하여 해당 라이브러리를 받으면 됩니다.

 

또한, Makefile common.mk파일을 연결시키는 작업을 해줘야 하는데,

특별한 설정법은 없으므로, CUDA SDK에서 제공하는 예제를 참고하면 됩니다.

 

클러스터 환경에서 MPI + CUDA를 사용하기 위해서는 MPICH, MVAPICH, OpenMPI를 설치해 주시면 됩니다.

 

GPU Cluster의 환경 구축 순서는  다음과 같습니다.(MPICH를 기본으로 설명)

0. 각 노드별 CPU, GPU 스펙 확인.

1. 알고리즘을 고려한 네트웍 스펙 결정(Gbit Ethernet, IB, 네트웍 스토리지 등)

2. 네트웍 토폴로지 구성 (Private Network, Compute Network, NFS Network 등 고려)

3. Master 노드와 Compute 노드 설정 실시

    각 노드별 Linux, CUDA driver, CUDA toolkit, CUDA SDK 설치 (리눅스 메뉴 체크)

    각 노드별 CUDA 컴파일, 실행을 통한 정상작동 여부 체크

    Private Network에 대한 고정 IP/DHCP 설정

    ssd 키 설정 및 복사 혹은

    rsh, rlogin 및 호스트 설정

    openMPI, MPICH, MVAPICH설치 (인피니밴드의 경우 벤더제공 MP킷 I설치)

    NFS 연동 및 마운트 (Master의 export, 클라이언트의 fstab )

    MPI 컴파일 및 mpirun 테스트

4. MPI+CUDA 환경세팅 (Makefile 제작 혹은 common.mk 수정)

    기초 MPI+CUDA 예제 실행

5. 컴퓨팅 노드를 N노드로 확장 (NFS, rlogin 등 : 스크립트 활용 )

6. X-windows off 및 NVdriver 로드 세팅

7. Diskless 혹은 라이브러리 및 CUDA SDK 디렉토리 공유 (CUDA 업데이트 정책)

 

 

아래는 실제 미루웨어에서 작업한 linux 기반 GPU cluster 설치 체크리스트입니다.

 

1. 각 로컬 노드 정상 실행 테스트

    C++, CUDA library 정상적으로 로드되는지 테스트 필요

 

2. MPI host 테스트

   rsh,rlogin 설정
   hosts설정 [고정 IP 2셋]
   NFS설정 [node001/home 만 export ]
   MPI machinefile 설정 [4GPU 테스트를 위해 각각 4개의 core씩 할당함 ]
   mpicc 컴파일 테스트
   mpirun 정상작동 테스트
 

3. CUDA 테스트

   CUDA driver 설치
   CUDA toolkit/SDK 설치 [CUDA SDK 2.3]
   deviceQuery실행  [각 노드별 GPU 4개씩 정상 작동됨]
   GPU로딩을 위해 run level 5에서 실행이 필요
   CUDA 컴파일 테스트 (sample src 프로젝트)
   Own CUDA project 테스트 (src_project 디렉토리 )
 

4. MPI+CUDA컴파일

   CUDA compile with NVCC
   MPI compile with mpicc & CUDA cudart
 

5. MPI+CUDA 실행 테스트

   컴파일된 파일을 local에서 정상 작동 테스트

 

일반적인 리눅스 설정방법은  [고객지원]> [발표자료] 에 CentOS 5.3 에서 CUDA 2.2beta 버전을 설치하고 컴파일하는 과정에 대한 설명 및 화면캡쳐한 자료가 있으니 해당 자료도 참조하시기 바랍니다. 

 

추후 Diskless GPU Cluster 구축 기술에 대해 설명드리도록 하겠습니다.

 

 

 

당부의 말씀.

GPU cluster 구축시, 기존의 CPU 기반 cluster에 대한 이해를 하고 계시면 GPU cluster를 구축/관리하기 편리합니다. 미루웨어는 Linux 기반 대형 GPU cluster 구축에 대한 컨설팅 및 설치 서비스를 수행하고 있습니다. 클러스터 구축/관리에 익숙하지 않지만, GPU 기반 클러스터를 구축하여 사용하기를 원하시는 경우 언제든지 미루웨어로 문의하시기 바랍니다.

 

 CPU기반 클러스터의 구축/관리에 대해 익숙치 않으실 경우, 아래와 같이 VMWARE에 2노드의 Guest OS를 설치한 후 MPICH, GotoBLAS, HPL 설치 등에 대한 설치에 대해 충분히 숙지하신 후 GPU cluster 구축을 하셔야 합니다.