다양한 HPC 워크로드에서 애플리케이션 또는 워크플로의 전반적인 성능을 최상으로 높이려면 처리 중인 파일을 호스트하는 데 사용할 기술을 적절하게 선택하고 MPI 또는 기타 통신 프로토콜에 대해 최적의 성능으로 작동하도록 네트워크 스택을 구성해야 합니다. 이 모듈에서는 이 같은 분야에서 AWS가 제공하는 옵션을 설명하고 각 워크로드별로 최적의 솔루션을 선택하는 데 도움이 될 수 있는 가격 대비 성능 고려 사항을 안내합니다.

다루는 주제:

  • AWS for HPC의 스토리지
  • HPC 워크로드의 네트워크 확장성

AWS의 스토리지 옵션 개요: AWS는 고성능 객체 스토리지부터 EC2 인스턴스에 연결할 수 있는 여러 유형의 파일 시스템에 이르기까지 다양한 스토리지 옵션을 제공합니다. 이러한 스토리지 유형은 성능과 크기 외에도 비용과 확장성에 있어서도 서로 차별화됩니다. 다음 표는 HPC 데이터마다 최적의 스토리지를 찾는 데 일종의 기준으로 삼을 수 있습니다.

HPC용 공유 파일 시스템: 공유 스토리지는 EBS 볼륨의 단순한 NFS 탑재, EBS 볼륨에서 구성된 Intel Lustre, EFS라는 관리형 AWS 서비스 등 다양한 형태로 구현할 수 있습니다. 인스턴스 유형과 마찬가지로, 스토리지 옵션을 손쉽게 테스트하면서 가장 뛰어난 성능을 제공하는 파일 시스템 유형을 찾을 수 있습니다.

인스턴스 연결 스토리지: EBS 볼륨도 IOPS가 높은 볼륨, 범용 옵션, 마그네틱 옵션 등 다양한 옵션으로 제공됩니다. 대다수의 HPC 애플리케이션은 저렴한 범용 및 마그네틱 볼륨 EBS 스토리지 유형에서도 매우 원활하게 실행됩니다. 인스턴스를 선택할 때와 마찬가지로, 최적의 솔루션을 구현하기 위한 EBS 볼륨을 선택할 때에도 손쉽게 테스트를 실시할 수 있습니다.

테스트 스토리지 구성: 다음은 기본 EnginFrame 자동화에 사용되는 스토리지 구성 옵션에 대한 설명입니다.

  • 마스터 노드와 컴퓨팅 노드의 /efs에 EFS 볼륨을 탑재하는 통합 스크립트 – 이 파일 시스템에는 기본적으로 각 작업별로 별도의 제출 디렉터리를 호스팅하는 앱을 위한 디렉터리와 스풀러 디렉터리가 포함되어 있습니다.
  • 또한 AWS ParallelCluster는 마스터에 연결되고 컴퓨팅 노드에 /shared로 NFS 탑재되는 EBS gp2 볼륨을 제공합니다.
  • 마스터 인스턴스의 /home 디렉터리도 컴퓨팅 노드에 NFS 탑재됩니다. OS와 동일한 파일 시스템에 설치되므로 영구 스토리지로 사용하지 않는 것이 좋습니다.

이러한 공유 파일 시스템의 성능은 워크로드마다 크게 다릅니다. 최적의 파일 시스템을 찾는 가장 좋은 방법은 EnginFrame에서 기본 위치로 구성되는 /efs와 /shared에서 동일한 사례를 벤치마크하는 것입니다.


현재 AWS 네트워킹: AWS는 현재 SR-IOV(단일 루트 I/O 가상화)를 사용하여 향상된 네트워킹 기능을 지원합니다. SR-IOV는 일반 구현에 비해 높은 I/O 성능 및 낮은 CPU 사용률을 제공하는 디바이스 가상화 방법입니다. 지원되는 Amazon EC2 인스턴스에 대해 이 기능은 더 높은 초당 패킷(PPS) 처리 성능, 더 짧은 인스턴스 간 지연 시간 및 매우 낮은 네트워크 지터를 제공하며, HTC(High Throughput Computing), “난처한 수준의 병렬” 애플리케이션, “긴밀하게 연결된” 애플리케이션 또는 MPI 및 OpenMP 기반 HPC 애플리케이션 모두에 대해 뛰어난 성능을 실현하도록 테스트되었습니다. 

네트워크 속도는 인스턴스 유형과 크기에 좌우됩니다. 예를 들어 r4.16xlarge는 동일한 배치 그룹(인스턴스의 논리적 그룹)과 향상된 네트워킹을 사용할 경우 인스턴스 간에 20기가비트 연결을 제공합니다.

테스트 네트워킹 구성: 기본적으로 테스트 환경에서는 새로운 배치 그룹을 생성하며 클러스터의 모든 컴퓨팅 노드가 그 안에서 실행되어야 합니다. 따라서, 특히 MPI 애플리케이션의 경우에 노드 간에 지연 시간이 최소화되고 대역폭이 극대화됩니다. 수십만 개 이상의 코어(이 테스트의 범위 초과)로 수평적으로 확장되는 HTC 문제가 있는 경우 여러 배치 그룹에서 실행하여 이 많은 수의 노드를 할당하는 위치에 있어서 EC2의 유연성을 높이는 방법을 고려할 수 있습니다. AWS ParallelCluster 구성에서 다음 파라미터를 설정하여 고정 배치 그룹을 사용하지 않도록 비활성화할 수 있습니다.

placement_group = NONE

: 다양한 수의 노드로 클러스터를 확장해야 하거나 고성능 스토리지가 필요한 경우 기술 지원 관리자 또는 HPC 솔루션스 아키텍트에게 문의하는 것이 좋습니다. 기술 지원 관리자 또는 HPC 솔루션스 아키텍트가 대상 아키텍처를 검토하여 잠재적인 병목 지점을 파악하고 고객의 목표를 실현하는 데 적합한 기술을 선택하도록 도와 드립니다.