고성능 컴퓨팅(HPC)을 쉽게 관리하는 AWS Parallel Cluster

AWS Parallel Cluster를 소개하기전에 고성능 컴퓨팅(HPC)을 알아야 합니다.

고성능 컴퓨팅(HPC)은 여러 대의 강력한 프로세서 클러스터를 병렬로 활용하여 복잡한 계산과 방대한 데이터 세트를 빠르게 처리하는 기술입니다. 과학, 비즈니스, 엔지니어링 등 다양한 분야에서 기존 시스템으로는 해결할 수 없는 문제를 해결하며, 클라우드로의 전환을 통해 제품 개발과 연구의 효율성도 크게 향상시킵니다.

특히 AI 분야에서는 모델 훈련의 성능을 최대한 발휘하기 위해서는 고성능 컴퓨팅(HPC)의 병렬 처리 능력이 매우 중요합니다. 따라서 AI를 효과적으로 구현하고자 한다면 고성능 컴퓨팅(HPC)은 필수적입니다.

그러나 고성능 컴퓨팅(HPC) 클러스터를 직접 관리하기는 복잡할 수 있으며, 데이터센터에서 구성할 경우 비용과 확장성 면에서 한계가 있을 수 있습니다. 반면, 클라우드 환경에서 고성능 컴퓨팅(HPC) 클러스터를 구성하면 관리의 용이성과 유연성을 크게 향상시킬 수 있습니다. 이와 함께 AWS ParallelCluster를 사용하면 클러스터의 구축과 관리가 훨씬 간편해집니다.

AWS ParallelCluster는 AWS 클라우드 환경에서 고성능 컴퓨팅(HPC) 클러스터를 배포하고 관리할 수 있는 AWS 지원 오픈 소스 클러스터 관리 도구입니다.

고성능 컴퓨팅(HPC)와 AWS ParallelCluster를 이해하기 위한 용어를 소개 드립니다.

  1. 고성능 컴퓨팅 = HPC (High Performance Computing) : 복잡한 계산을 매우 빠르게 처리할 수 있는 강력한 컴퓨터 시스템으로, 다량의 데이터를 빠르게 처리할 때 사용됩니다.
  2. 클러스터 (Cluster) : 여러 대의 컴퓨터를 네트워크로 연결하여 하나의 시스템처럼 사용하는 것으로 더 많은 계산을 동시에 처리할 수 있습니다.
  3. 병렬 처리 (Parallel Processing) : 작업을 여러 개로 나누어 동시에 처리하는 방식으로 전체 작업을 직렬 처리에 비해 빠르게 완료할 수 있습니다.
  4. 노드 (Node) : 클러스터를 구성하는 개별 컴퓨터로 노드는 계산 작업을 수행하며 하나의 클러스터에 여러 개의 노드가 구성 될 수 있습니다.
  5. AWS ParallelCluster : AWS에서 제공하는 도구로, AWS 클라우드에서 HPC 클러스터를 쉽게 만들고 관리할 수 있는 도구입니다.
  6. 스케일링 (Scaling) : 클러스터의 자원을 즉 노드를 조절하는 기능으로 작업이 많아지면 노드를 추가하고, 작업이 줄면 노드를 줄이는 기능을 수행합니다.
  7. 스케쥴링 (Scheduling) : HPC 클러스터에서 컴퓨팅 리소스를 효율적으로 관리하고, 작업을 실행하기 위한 프로세스를 자동화하는 기술입니다.

AWS ParallelCluster 외에도 HPC를 제어해 주는 서비스들이 있습니다.

Google의 Google Cloud HPC, Microsoft의 Microsoft Azure CycleCloud, IBM의 IBM Spectrum Computing, 오픈소스로 제공하는 OpenHPC 등이 있습니다.

다만 Google Cloud HPC, Microsoft Azure CycleCloud, IBM Spectrum Computing의 경우 각각의 환경에 최적화되어 있어 AWS 환경에서는 부적합 합니다. OpenHPC는 오픈소스 솔루션으로, AWS 환경에서 구성할 수 있습니다. 하지만 AWS ParallelCluster와 비교했을 때 AWS 클라우드에 최적화된 기능들이 부족할 수 있습니다.

이로인해 AWS 클라우드에서 HPC를 관리하기에는 AWS ParallelCluster를 이용하는 것이 가장 좋습니다.

AWS ParallelCluster에서 제공하는 스케쥴러는 AWS Batch와 Slurm이 있습니다.

AWS Batch는 관리의 용이성과 자동화된 리소스 관리가 필요하며 AWS와의 통합이 중요한 경우 적합하지만, 세밀한 제어가 불가능 할 수 있습니다.

Slurm은 복잡한 HPC 워크로드와 높은 유연성을 요구하는 환경에서 적합하지만, 설정 및 관리가 복잡하며 클러스터, 작업 스케쥴링을 직접 관리해야 합니다.

각 스케쥴러를 목적에 맞게 선택하여 사용을 하여 고성능 컴퓨팅(HPC)을 구성할 수 있습니다.

이로써 AWS ParallelCluster에 대한 기본 소개를 마칩니다. 다음 글에서는 Hands-On을 통해 AWS ParallelCluster를 실제로 구성해보는 방법을 다루겠습니다.