SLURM, 세계에서 가장 빠른 슈퍼컴퓨터 TOP500의 절반 이상이 선택한 작업 스케줄러

SLURM은 세계에서 가장 빠른 슈퍼컴퓨터 TOP500의 절반 이상이 선택한 작업 스케줄러로, 효율적인 자원 관리와 최적화를 제공합니다. 컴퓨터공학 전공 학생, 대학원생, 그리고 개발자를 위한 SLURM의 주요 기능과 아키텍처를 알아보세요. 매니코어소프트는 AI 인프라 구축을 위한 맞춤형 클러스터 솔루션을 제공하며, SLURM을 통한 자원 관리 최적화를 지원합니다.
MANYCORESOFT's avatar
Jul 31, 2024
SLURM, 세계에서 가장 빠른 슈퍼컴퓨터 TOP500의 절반 이상이 선택한 작업 스케줄러

4차 산업혁명의 시대에 AI와 IoT 같은 첨단 기술들은 엄청난 연산 능력을 필요로 합니다. 바로 이때 필요한 것이 슈퍼컴퓨터입니다. 슈퍼컴퓨터는 일반 컴퓨터로 처리할 수 없는 데이터를 아주 빠른 속도로 처리할 수 있는 장비입니다.

효율적인 슈퍼컴퓨팅의 핵심

슈퍼컴퓨터는 구조에 따라 크게 벡터형(Vector type)과 병렬형(Parallel type)으로 나눌 수 있습니다. 초기 슈퍼컴퓨터는 주로 벡터형으로 제작되었는데, 이는 개발 시간이 오래 걸리고 비용이 많이 드는 단점이 있었습니다.

오늘날의 슈퍼컴퓨터는 여러 대의 컴퓨터를 하나의 유닛처럼 작동시키는 클러스터 기반의 병렬형 슈퍼컴퓨터입니다. 이러한 병렬형 슈퍼컴퓨터는 현대 슈퍼컴퓨터의 주류를 이루며, 효율적인 자원 관리와 최적화를 위해 SLURM(Simple Linux Utility for Resource Management)과 같은 도구를 사용합니다.

이 글에서는 세계에서 가장 빠른 슈퍼컴퓨터 목록인 TOP500에서 50% 이상의 슈퍼컴퓨터가 선택한 SLURM에 대해 알아보겠습니다.

SLURM: 클러스터 환경의 자원 관리와 최적화, 그리고 AI 작업

HPC 환경에서 클러스터 자원의 효율적 관리와 최적화는 좋은 성능을 얻기 위해 매우 중요합니다. SLURM은 클러스터 내의 컴퓨팅 자원들(CPU, GPU, 메모리 등)을 한데 모아서 관리하고 작업을 스케줄링하는 중앙 제어형 관리툴 입니다. 다음과 같은 특징을 통해 AI 모델 훈련, 데이터 분석, 시뮬레이션 등 다양한 작업을 클러스터 환경에서 최적의 성능으로 실행할 수 있습니다.

  • 확장성: SLURM은 대규모 클러스터 환경에서 수천 개의 노드와 수십만 개의 코어를 관리할 수 있는 확장성을 갖추고 있습니다. 이는 대형 프로젝트와 대규모 데이터셋을 처리하는데 필수적인 기능입니다.

  • GPU 지원: 최신 AI 연구는 GPU를 활용한 병렬 연산에 크게 의존합니다. SLURM은 GPU 자원의 할당과 관리에 적합한 기능을 제공하여, GPU 클러스터에서의 AI 작업을 효과적으로 지원합니다. 이를 통해 연구자들은 GPU 자원을 효율적으로 활용할 수 있습니다.

  • QoS (Quality of Service): SLURM은 작업 우선순위를 설정하고, 공정한 자원 분배를 통해 모든 사용자가 필요한 자원을 빈틈없이 사용할 수 있도록 합니다. 이는 연구자들이 서로 경쟁하지 않고 자원을 효율적으로 사용할 수 있게 합니다.

SLURM의 주요 기능

SLURM은 주로 리눅스 환경에서 대규모 클러스터(슈퍼컴퓨터)의 작업 관리 및 스케줄링에 사용됩니다. 주요 기능으로는 자원 할당 및 관리, 작업 스케줄링, 모니터링 등이 있습니다. 이를 통해 클러스터 자원의 낭비를 줄이고, 작업 효율을 극대화할 수 있습니다.

자원 할당 및 관리

SLURM은 클러스터 자원을 효율적으로 관리하고 사용자가 제출한 작업에 필요한 자원을 할당합니다. SLURM 스케줄러는 sbatchsrun 같은 명령어를 통해 필요한 자원을 갖춘 컴퓨터를 찾아 자원의 낭비를 줄이고 작업의 효율을 극대화합니다.

작업 스케줄링

SLURM은 작업 요구 사항, 클러스터 내 사용 가능한 자원, 우선순위 조건을 고려하여 자동으로 작업을 스케줄링합니다. 이를 통해 자원의 효율적인 사용을 보장하고, 모든 자원이 사용 중일 때는 새로운 작업을 대기열에 추가해 자원이 남으면 자동으로 할당합니다. 관리자는 중요 작업의 우선순위를 조정할 수 있습니다.

모니터링

SLURM은 squeuesinfo 명령어를 통해 현재 작업 상태, 작업 대기열, 각 컴퓨터의 작업 및 자원 사용량을 실시간으로 모니터링할 수 있습니다. 관리자는 이를 통해 시스템 부하를 관리하고 필요에 따라 자원을 재할당해 전체 시스템 성능을 최적화할 수 있습니다.

SLURM 아키텍처

SLURM의 Architecture는 다음과 같은 주요 컴포넌트로 구성되어 있습니다.

slurm_architecture_manycoresoft_deepgadget

<SLURM Architecture>

SLURM 클라이언트

SLURM 클라이언트는 사용자가 작업을 제출하고 관리할 수 있는 인터페이스를 제공하며, scontrol, squeue, sbatch, srun, sacctmgr, sacct 같은 주요 명령어를 실행합니다.

SLURM 컨트롤러 데몬 (slurmctld)

SLURM 컨트롤러 데몬은 클러스터의 중앙 관리자로 모든 작업 스케줄링과 자원 할당을 담당합니다. 클러스터 전체 상태를 모니터링하고, 작업 제출, 대기열 관리, 자원 할당 등의 주요 기능을 수행합니다.

SLURM 데이터베이스 데몬 (slurmdbd)

SLURM 데이터베이스 데몬은 작업과 사용자 정보를 데이터베이스에 저장하고 관리합니다. slurmctld와 상호작용하며 작업 기록, 사용자 계정 정보 등을 저장합니다. 이는 작업 추적과 계정 관리에 중요한 역할을 합니다.

SLURM 노드 데몬 (slurmd)

각 계산 노드는 SLURM 노드 데몬을 실행하며, slurmctld로부터 작업 할당을 받아 실제 작업을 실행합니다. 각 계산 노드는 slurmd를 통해 작업을 수행하고 상태를 slurmctld에 보고합니다.

SLURM 작업 흐름

slurm 작업흐름_job_manycoresoft_deepgadget

<SLURM 작업 흐름>

  1. 작업 제출: 사용자는 sbatch 또는 srun 같은 명령어를 통해 SLURM 클러스터에 작업을 제출합니다.

  2. 작업 수락: 관리 컴퓨터(마스터 노드 또는 로그인 노드)는 작업을 수락하고, Job Scheduler를 통해 관리합니다.

  3. 작업 스케줄링: Job Scheduler는 적절한 계산 노드에 작업을 할당합니다.

  4. 작업 실행: 계산 노드는 할당된 작업을 수행하고, 작업 상태와 완료 결과를 관리 컴퓨터와 데이터베이스에 보고합니다.

  5. 작업 모니터링: 사용자는 squeue, sacct 같은 명령어로 작업 상태와 결과를 확인할 수 있습니다.

SLURM 파티션

slurm partition_deepgadget_manycoresoft

<SLURM Partition>

SLURM의 강력한 기능 중 하나는 파티션(Partition)입니다. 파티션은 클러스터 자원을 논리적으로 분할해 특정 작업 그룹에 할당하는 기능으로, 각 파티션은 다양한 자원이나 사용자 그룹에 맞게 설정할 수 있습니다. 관리자는 이를 통해 클러스터 자원의 효율적인 사용을 보장하고 다양한 작업 요구 사항을 효과적으로 처리할 수 있습니다.

매니코어소프트 클러스터 솔루션 (SLURM 지원)

SLURM의 이해와 구현은 병렬컴퓨팅 성능 향상에 큰 도움이 됩니다. 매니코어소프트는 AI 인프라 초기 구축을 위한 고객 맞춤형 클러스터 솔루션을 제공합니다.

당사의 클러스터는 고성능 컴퓨팅(HPC) 작업에 최적화되어 있으며, 효율적인 자원 관리와 최적화를 위해 SLURM, Kubernetes(k8S) 등의 작업관리툴을 지원합니다. 이를 통해 AI, 머신러닝, 빅데이터 분석 등 다양한 분야에서 최고의 성능을 발휘할 수 있습니다.

slurm구축사례_매니코어소프트_deepgadget

<매니코어소프트 SLURM 구축 사례 (국내 최대 중공업 기업, ‘L’ SI 업체)> - 출처: 딥가젯 소개서

매니코어랩스의 클러스터 솔루션은 다음과 같은 장점을 갖추고 있습니다:

  • 맞춤형 설계: 고객의 요구에 맞춘 클러스터 설계 및 구축

  • 효율적인 자원 관리: SLURM 등을 통한 최적의 자원 할당 및 관리

  • 탁월한 성능: 고성능 연산을 위한 최신 하드웨어와 소프트웨어

  • 전문 기술 지원: 숙련된 엔지니어 팀의 신속하고 정확한 지원

AI 인프라 도입을 위한 최적의 솔루션이 필요하시다면 아래 버튼을 통해 문의해주세요.

함께 보면 좋은 글

[매니코어소프트 박정호 대표 인터뷰] "HPC, 통합된 이종 프로그래밍 환경이 필요"

GPU 서버 성능 100% 활용하는 방법

Edit 매니코어랩스 HPC팀

Share article
Subscribe to our newsletter.

More articles

See more posts
RSSPowered by inblog