Cluster 설정 관련 팁
Last updated
Last updated
Bootstrap action 활용 이유
ParallelCluster를 사용할 때 일반적으로 head node는 계속 running 상태이지만, compute node는 queue에 job이 들어온 경우에만 동작을 하게 되고 그렇지 않으면 terminate 됩니다.
이 경우 compute node에서 특정 프로그램 등을 실행시키고 싶을 때, 매번 설치를 하는 것은 시간낭비가 될 수 있습니다.
따라서 shared file system (EFS, FSx for Lustre) 에 바이너리 등을 저장해 두고 bootstrap action을 설정하여 node가 시작될 때 설치하도록 하거나, 특정한 데이터나 파일을 다운받거나 설정하도록 할 수 있습니다.
자세한 내용은 를 참고해 주세요.
비용 효율화를 하는 이유
일반적으로 HPC workload에서 가장 비싸고 핵심적인 자원은 과학자/개발자 들의 시간입니다. (Person waiting for the result) 따라서 이들이 job processing을 기다리지 않도록 AWS를 활용하여 원하는 만큼 자원을 활용할 수 있는 방법은 굉장히 비용 효율적인 구조입니다.
그럼에도 불구하고 큰 규모의 작업을 처리할 때에는 비용을 줄이거나 최적화 하는 것이 중요할 수 있습니다.
Compute optimization
AWS에서는 다양한 EC2 instance type을 제공하고 있습니다. 따라서, workload에 알맞는 instance를 활용하는 것이 비용을 낮출 수 있습니다.
instance family는 최신 버전을 활용하는 것이 성능 뿐 아니라 비용면에서도 유리합니다.
intel 기반 instance 뿐 아니라 AMD, ARM (Graviton2, 3) 기반 인스턴스를 고려할 수 있습니다.
Graviton2 기반의 인스턴스 사용 예시 :
HPC workload는 많은 경우 batch 성 작업이기 때문에, Spot instance를 활용하는 것을 고려해 볼 수 있습니다. Parallel Cluster에서는 spot 설정을 쉽게 할 수 있습니다. ()
여러가지 구매 옵션을 고려해 볼 수 있습니다. 일정하게 유지되는 computing workload 가 있는 경우 Reserved Instance나 Savings Plan를 활용하여 비용을 낮출 수 있습니다.
Storage optimization
일반적인 데이터는 S3에 저장 해 두고, head/compute node 여러 대에서 처리하는 임시 데이터는 EFS나 FSx for Lustre를 사용하도록 합니다.
Shared 가 필요없는 데이터는 Instance store나 EBS에만 저장하면 됩니다.
S3에 비하면 EFS, FSx for Lustre는 훨씬 비용이 비싸기 때문입니다.
일반적인 sharing은 EFS로 가능하지만, 높은 throughput이 필요한 경우에 FSx for Lustre를 고려해 볼 수 있습니다. (FSx for Lustre의 경우 크기가 매우 큰 파일을 저장할 때는 파티셔닝 특성을 고려해야 합니다.)
S3에 저장된 데이터도 자주 사용되는 데이터가 아니라면 아카이빙 용도로 glacier 등을 고려할 수 있습니다.
S3 Intelligent tiering () 이나 S3 lifecycle 설정 () 을 통해 비용을 절약할 수 있습니다.
SSM 활성화를 하면 AWS ParallelCluster UI 화면의 클러스터 보기에서 헤드 노드에 액세스하기 위한 직접 셸 링크를 제공합니다. 단계별 안내에서 SSM 세션 추가를 선택하여 직접 셸 액세스를 추가하고 헤드 노드에 SSM 관리형 인스턴스 코어 정책을 추가합니다. ()