HPC가 클라우드 또는 전통적인 서버와 다른 점은 무엇인가
Source: Dev.to
전통적인 서버가 설계된 목적
전통적인 서버는 다음을 처리하도록 구축됩니다:
- 웹 애플리케이션
- 데이터베이스
- 파일 스토리지
- 엔터프라이즈 애플리케이션
이러한 워크로드는 일반적으로:
- 장시간 실행
- 서비스 기반(항상 켜짐)
- 서로 독립적
각 서버는 자체 작업을 담당하고, 서버 간 통신은 제한적입니다.
클라우드 플랫폼이 중점 두는 영역
AWS나 Azure와 같은 클라우드 플랫폼은 다음을 목표로 설계되었습니다:
- 확장성
- 유연성
- 온디맨드 인프라
가능한 일:
- 언제든 인스턴스 시작
- 자원을 빠르게 확장
- 사용량 기반 과금
대부분의 클라우드 워크로드는:
- 느슨하게 결합됨
- 무상태 또는 마이크로서비스 기반
HPC가 들어가는 위치
HPC는 가능한 한 빠르게 대규모 연산 집약적 문제를 해결하는 다른 목표를 가지고 설계되었습니다.
핵심 포인트:
- HPC는 온프레미스 또는 클라우드(AWS ParallelCluster, Azure CycleCloud 등)에서 실행될 수 있습니다.
- 위치보다 아키텍처와 워크로드 유형에 더 중점을 둡니다.
1. 워크로드는 병렬적이며 긴밀히 결합됨
HPC에서는 하나의 작업이 여러 노드에 걸쳐 나뉘어 실행됩니다. 이 노드들은:
- 동일한 문제를 해결
- 데이터를 지속적으로 교환
- 서로에게 의존
통신이 느리면 전체 작업이 지연됩니다. 이는 작업이 대부분 독립적인 클라우드나 전통 시스템과 대조됩니다.
2. 네트워크는 계산의 일부
- 일반 시스템: 네트워크 = 데이터 전송
- HPC: 네트워크 = 계산의 일부
InfiniBand와 같은 고속 인터커넥트 또는 최적화된 클라우드 네트워킹은 다음을 제공합니다:
- 낮은 지연시간
- 높은 대역폭
- 효율적인 데이터 교환
클라우드 기반 HPC 환경에서도 네트워크 설정은 성능에 큰 영향을 미칩니다.
3. 항상 켜져 있는 서비스가 아닌 작업 스케줄링
HPC 워크로드는 작업으로 제출됩니다:
- 작업이 큐에 들어감
- 스케줄러(예: Slurm)가 자원을 할당
- 자원이 사용 가능해지면 작업 실행
반면에:
- 전통적인 서버는 항상 켜져 있는 서비스를 실행
- 클라우드 플랫폼은 온디맨드 인스턴스를 제공
클라우드 기반 HPC 솔루션(ParallelCluster, CycleCloud)도 이 작업 기반 모델을 유지합니다.
4. 자원 할당은 명시적
HPC에서는 CPU, 메모리, GPU, 실행 시간 등 자원을 명시해야 합니다. 예시(Slurm 스크립트):
#SBATCH --cpus-per-task=8
#SBATCH --mem=16G
#SBATCH --time=02:00:00
이는 클러스터가 온프레미스이든 클라우드에 배포되었든 공유 환경에서 공정한 사용을 보장합니다.
5. 유연성보다 성능
- 범용 클라우드: 유연하고 확장하기 쉬움
- HPC: 성능 중심, 효율성에 최적화
클라우드 HPC에서도 인스턴스 선택, 네트워크 튜닝, 스토리지 최적화가 신중히 이루어집니다. 단순히 “시작하고 실행”하는 것이 아닙니다.
6. 스토리지는 처리량에 맞춰 설계
- 전통 스토리지: 트랜잭션에 최적화
- HPC 스토리지: 병렬 접근에 최적화
병렬 파일 시스템은 여러 노드가 동시에 읽고 쓸 수 있게 하여 대용량 데이터셋에 높은 처리량을 제공합니다. 클라우드 HPC는 고성능 공유 스토리지와 병렬 파일 시스템 통합을 통해 이를 구현합니다.
7. 비용 모델이 다름
혼동은 종종 플랫폼과 워크로드 유형을 섞어 생각할 때 발생합니다. 명확한 구분:
- 전통 서버 → 서비스 실행
- 클라우드 → 유연한 인프라 제공
- HPC → 연산 집약적인 워크로드 실행 방식 정의
오늘날 HPC는 온프레미스 클러스터와 클라우드 플랫폼 모두에서 실행될 수 있습니다.
마무리 생각
HPC는 단순히 “더 강력한 서버”나 “클라우드의 한 형태”가 아닙니다. 고유한 컴퓨팅 모델로서:
- 워크로드는 병렬적
- 통신이 핵심
- 성능이 최우선
클라우드 플랫폼이 HPC를 더 접근하기 쉽게 만들었지만, 핵심 원칙은 변하지 않습니다. HPC와 클라우드 또는 전통 시스템을 비교할 때 진짜 질문은 어디서 실행하느냐가 아니라 어떤 종류의 워크로드를 해결하느냐입니다.