Amazon Web Services 한국 블로그
AWS Parallel Computing Service 정식 출시 – 다양한 규모의 HPC 워크로드를 위한 완전 관리서비스
오늘 고객이 AWS에서 거의 모든 규모의 시뮬레이션을 원활하게 실행할 수 있도록 고성능 컴퓨팅(HPC) 클러스터 설정과 관리를 지원하는 새로운 관리형 서비스인 AWS Parallel Computing Service(AWS PCS)를 발표합니다. Slurm 스케줄러를 사용하면 익숙한 HPC 환경에서 작업할 수 있으므로 인프라에 대한 걱정 없이 결과 도출 시간을 단축할 수 있습니다.
2018년 11월 AWS는 AWS 클라우드에서 HPC 클러스터를 배포하고 관리하는 데 사용할 수 있는 AWS 지원 오픈 소스 클러스터 관리 도구인 AWS ParallelCluster를 도입했습니다. 또한 AWS ParallelCluster를 통해 고객은 개념 증명 및 프로덕션 HPC 컴퓨팅 환경을 신속하게 구축하고 배포할 수 있습니다. 고객은 AWS ParallelCluster 명령줄 인터페이스, API, Python 라이브러리 및 오픈 소스 패키지에서 설치된 사용자 인터페이스를 사용할 수 있습니다. 이들은 클러스터를 해체하고 다시 배포하는 등의 업데이트를 담당합니다. 그러나 많은 고객이 HPC 환경을 구축하고 운영하는 데 필요한 운영 작업을 없애기 위해 완전관리형 AWS 서비스를 요청했습니다.
AWS PCS는 AWS에서 관리하는 HPC 환경을 간소화하며 AWS Management Console, AWS SDK 및 AWS Command-Line Interface(AWS CLI)를 통해 액세스할 수 있습니다. 시스템 관리자는 컴퓨팅 및 스토리지 구성, ID, 작업 할당 기본 설정을 사용하는 관리형 Slurm 클러스터를 생성할 수 있습니다. AWS PCS는 다양한 HPC 고객이 사용하는 확장성과 내결함성이 뛰어난 작업 스케줄러인 Slurm으로 시뮬레이션을 예약하고 오케스트레이션합니다. 과학자, 연구원, 엔지니어 등의 최종 사용자는 AWS PCS 클러스터에 로그인하여 HPC 작업을 실행 및 관리하고, 가상 데스크톱에서 대화형 소프트웨어를 사용하고, 데이터에 액세스할 수 있습니다. 코드를 이식하는 데 많은 노력을 기울이지 않고도 워크로드를 AWS PCS로 빠르게 가져올 수 있습니다.
원격 시각화를 위한 완전관리형 NICE DCV 원격 데스크톱을 사용할 수 있으며, 작업 텔레메트리 또는 애플리케이션 로그에 액세스하여 전문가가 HPC 워크플로를 한 곳에서 관리할 수 있습니다.
AWS PCS는 컴퓨팅 유체 역학, 기상 모델링, 유한 요소 분석, 전자 설계 자동화 및 리저버 시뮬레이션 등의 분야를 포괄하는 다양한 기존 및 신흥 컴퓨팅 또는 데이터 집약적 엔지니어링 및 과학 워크로드용으로 설계되었으며, 시뮬레이션과 컴퓨팅을 준비, 실행 및 분석하는 익숙한 방법을 사용합니다.
AWS Parallel Computing Service 시작하기
AWS PCS를 사용해 보려면 AWS 설명서의 간단한 클러스터 생성 튜토리얼을 사용하면 됩니다. 먼저, AWS PCS를 사용해 볼 AWS 리전의 계정 내에서 AWS CloudFormation 템플릿으로 가상 프라이빗 클라우드(VPC)를 생성하고 Amazon Elastic File System(Amazon EFS)에서 공유 스토리지를 생성합니다. 자세히 알아보려면 AWS 설명서의 Create a VPC와 Create shared storage를 참조하세요.
1. 클러스터 생성
AWS PCS 콘솔에서 리소스를 관리하고 워크로드를 실행하기 위한 영구 리소스인 클러스터 생성을 선택합니다.
다음으로 클러스터 이름을 입력하고 Slurm 스케줄러의 컨트롤러 크기를 선택합니다. 클러스터 워크로드 한도로 소규모(최대 32개 노드와 256개 작업), 중간 (최대 512개 노드와 8,192개 작업) 또는 대규모(최대 2,048개 노드와 1만 6,384개 작업)를 선택할 수 있습니다. 네트워킹 섹션에서 생성한 VPC, 클러스터를 시작할 서브넷, 클러스터에 적용된 보안 그룹을 선택합니다.
필요에 따라 컴퓨팅 노드가 스케일 다운되기 전의 유휴 시간, 시작된 컴퓨팅 노드의 프롤로그 및 에필로그 스크립트 디렉터리, Slurm에서 사용하는 리소스 선택 알고리즘 파라미터와 같은 Slurm 구성을 설정할 수 있습니다.
클러스터 생성을 선택합니다. 클러스터를 프로비저닝하는 데는 다소 시간이 걸립니다.
2. 컴퓨팅 노드 그룹 생성
클러스터를 생성한 후 AWS PCS에서 클러스터에 대한 대화형 액세스를 제공하거나 클러스터에서 작업을 실행하는 데 사용하는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스의 가상 컬렉션인 컴퓨팅 노드 그룹을 생성할 수 있습니다. 컴퓨팅 노드 그룹을 정의할 때 EC2 인스턴스 유형, 최소 및 최대 인스턴스 수, 대상 VPC 서브넷, Amazon Machine Image(AMI), 구매 옵션, 사용자 지정 시작 구성과 같은 일반적인 특성을 지정합니다. 컴퓨팅 노드 그룹에는 AWS Identity and Access Management(IAM) 역할을 EC2 인스턴스에 전달하기 위한 인스턴스 프로파일과 AWS PCS에서 시작하는 EC2 인스턴스를 구성하는 데 사용하는 EC2 시작 템플릿이 필요합니다. 자세히 알아보려면 AWS 설명서의 Create a launch template과 Create an instance profile을 참조하세요.
콘솔에서 컴퓨팅 노드 그룹을 생성하려면 클러스터로 이동하고 Compute node groups 탭과 Create compute node group 버튼을 선택합니다.
최종 사용자가 액세스할 로그인 노드 그룹과 HPC 작업을 실행할 작업 노드 그룹 이렇게 두 개의 컴퓨팅 노드 그룹을 생성할 수 있습니다.
HPC 작업을 실행하는 컴퓨팅 노드 그룹을 생성하려면 컴퓨팅 노드 이름을 입력하고 이전에 생성한 EC2 시작 템플릿, IAM 인스턴스 프로파일, 서브넷을 선택하여 클러스터 VPC에서 컴퓨팅 노드를 시작합니다.
다음으로 컴퓨팅 노드를 시작할 때 사용할 선호하는 EC2 인스턴스 유형과 스케일링을 위한 최소 및 최대 인스턴스 수를 선택합니다. 저는 인스턴스 유형으로 hpc6a.48xlarge
를 선택하고 스케일 한도로 인스턴스 최대 8개를 선택했습니다. 로그인 노드로 더 작은 인스턴스(예: c6i.xlarge
인스턴스 1개)를 선택할 수 있습니다. 인스턴스 유형에서 지원하는 경우 온디맨드 또는 스팟 EC2 구매 옵션을 선택할 수도 있습니다. 필요에 따라 특정 AMI를 선택할 수 있습니다.
생성을 선택합니다. 컴퓨팅 노드 그룹을 프로비저닝하는 데는 다소 시간이 걸립니다. 자세히 알아보려면 AWS 설명서의 Create a compute node group to run jobs 및 Create a compute node group for login nodes를 참조하세요.
3. HPC 작업 생성 및 실행
컴퓨팅 노드 그룹을 생성한 후 작업을 대기열에 제출하여 실행합니다. 작업은 AWS PCS가 프로비저닝된 가용 용량을 기준으로 컴퓨팅 노드 그룹에서 실행되도록 예약할 때까지 대기열에 남아 있습니다. 각 대기열은 처리를 수행하는 데 필요한 EC2 인스턴스를 제공하는 하나 이상의 컴퓨팅 노드 그룹과 연결됩니다.
콘솔에서 대기열을 생성하려면 클러스터로 이동하고 대기열 탭과 대기열 생성 버튼을 선택합니다.
대기열 이름을 입력하고 대기열에 할당된 컴퓨팅 노드 그룹을 선택합니다.
생성을 선택하고 대기열이 생성되는 동안 기다립니다.
로그인 컴퓨팅 노드 그룹이 활성화되면 AWS Systems Manager를 사용하여 생성된 EC2 인스턴스에 연결할 수 있습니다. Amazon EC2 콘솔로 이동하고 로그인 컴퓨팅 노드 그룹의 EC2 인스턴스를 선택합니다. 자세히 알아보려면 AWS 설명서의 Create a queue to submit and manage jobs 및 Connect to your cluster를 참조하세요.
Slurm을 사용하여 작업을 실행하려면 작업 요구 사항을 지정하는 제출 스크립트를 준비하고 sbatch
명령으로 대기열에 제출합니다. 일반적으로 이 작업은 공유 디렉터리에서 수행되므로 로그인 노드와 컴퓨팅 노드는 파일 액세스를 위한 공통 공간을 갖습니다.
Slurm을 사용하여 AWS PCS에서 MPI(Message Passing Interface) 작업을 실행할 수도 있습니다. 자세히 알아보려면 AWS 설명서의 Run a single node job with Slurm 또는 Run a multi-node MPI job with Slurm을 참조하세요.
시각화를 위한 완전관리형 NICE DCV 원격 데스크톱을 연결할 수 있습니다. 시작하려면 AWS용 HPC 레시피 GitHub 리포지토리의 CloudFormation 템플릿을 사용하세요.
이 예제에서는 OpenFOAM motorBike 시뮬레이션을 사용하여 오토바이와 라이더 주변의 안정된 유량을 계산했습니다. 이 시뮬레이션은 hpc6a 인스턴스 3개의 코어 288개로 실행되었습니다. DCV 인스턴스의 웹 인터페이스에 로그인한 후 ParaView 세션에서 출력을 시각화할 수 있습니다.
마지막으로, 생성한 클러스터 및 노드 그룹으로 HPC 작업을 완료한 후에는 불필요한 요금이 부과되지 않도록 생성한 리소스를 삭제해야 합니다. 자세히 알아보려면 AWS 설명서의 Delete your AWS resources를 참조하세요.
주요 사항
다음은 이 기능에 대해 알아두어야 할 몇 가지 사항입니다.
- Slurm 버전 – AWS PCS는 처음에 Slurm 23.11을 지원하며, 새 버전이 추가되면 고객이 Slurm의 주요 버전을 업그레이드할 수 있도록 설계된 메커니즘을 제공합니다. 또한 AWS PCS는 패치 버전으로 Slurm 컨트롤러를 자동으로 업데이트하도록 설계되었습니다. 자세히 알아보려면 AWS 설명서의 Slurm versions를 참조하세요.
- 용량 예약 – 필요할 때 필요한 컴퓨팅 용량을 사용할 수 있도록 온디맨드 용량 예약으로 특정 가용 영역에서 특정 기간 동안 EC2 용량을 예약할 수 있습니다. 자세히 알아보려면 AWS 설명서의 Capacity Reservations를 참조하세요.
- 네트워크 파일 시스템 – Amazon FSx for NetApp ONTAP, Amazon FSx for OpenZFS, Amazon File Cache, Amazon EFS, Amazon FSx for Lustre 등 데이터와 파일을 쓰고 액세스할 수 있는 네트워크 스토리지 볼륨을 연결할 수 있습니다. NFS 서버와 같은 자체 관리형 볼륨을 사용할 수도 있습니다. 자세히 알아보려면 AWS 설명서의 Network file systems를 참조하세요.
정식 출시
AWS Parallel Computing Service는 미국 동부(버지니아 북부), AWS 미국 동부(오하이오), 미국 서부(오리건), 아시아 태평양(싱가포르), 아시아 태평양(시드니), 아시아 태평양(도쿄), 유럽(프랑크푸르트), 유럽(아일랜드), 유럽(스톡홀름) 리전에서 정식 출시되었습니다.
AWS PCS는 AWS 계정의 모든 리소스를 시작합니다. 해당 리소스에 대해 적절한 요금이 청구됩니다. 자세한 내용은 AWS PCS 요금 페이지를 참조하세요.
사용해 보시고 AWS re:Post for AWS PCS 또는 일반 AWS Support 담당자를 통해 피드백을 보내주세요.
– Channy
추신: HPC 테스트 환경 구축에 기여한 AWS의 Principal Developer Advocate인 Matthew Vaughn에게 특별한 감사를 전합니다.