HPC, GPU, 그리고 확장되는 컴퓨팅의 세계
HPC(High Performance Computing), 고성능 컴퓨팅.
하나의 작업을 병렬·분산 처리하여 더 빠르고 효율적인 연산을 수행하는 방식이다.
어떤 일을 마주하면 처음엔 거대하게 느껴진다.
하지만 자세히 보면, 결국 작은 작업들의 집합이다.
혼자서 처리하면 시간이 오래 걸리지만, 여러 사람이 나누어 분업하면 훨씬 빠르게 끝낼 수 있다.
HPC도 마찬가지다. 하나의 연산 작업(소프트웨어 실행, 시뮬레이션 등)을 여러 프로세서에서 동시에 수행하는 개념이다.
병렬 컴퓨팅: 한 사람이 여러 작업을 동시에 수행하는 개념
분산 컴퓨팅: 여러 사람이 하나의 작업을 나누어 처리하는 개념
서버를 인간의 뇌에 비유하면,
단일 서버는 하나의 뇌와 달리 다수의 CPU를 사용하여 여러 연산을 한꺼번에 처리한다.
여러 서버가 협력하는 경우, 서로 멀리 떨어져 있다면 통신 속도가 병목이 될 수 있다.
이를 해결하기 위해 고속 네트워크(예: InfiniBand)가 필수적이다.
나는 한때 C언어와 MPI를 활용한 병렬·분산 컴퓨팅을 전공했다.
그때는 "하나의 연산 작업을 동시에 여러 프로세서에서 수행할 수 있다"는 개념이 신기하고 재미있었다.
하지만 지금은 너무나 당연한 기술이 되었다.
물론, 모든 작업을 병렬화할 수 있는 것은 아니다.
작업 간 의존성이 높은 경우, 순차적으로 실행할 수밖에 없다.
그럼에도 불구하고, 어떻게든 나누어 처리할 방법을 찾고 최적화하는 과정이 흥미로웠다.
이런 과정에서 개발자로서의 사고가 확장된 듯하다.
요즘은 GPU와 LLM(대형 언어 모델)의 시대다.
한때 연구되던 딥러닝 HPC 플랫폼이 이제서야 빛을 보기 시작했다.
HPC는 여전히 진화하고 있으며, 이제는 AI, 딥러닝, 클라우드와 맞물려 더욱 강력한 형태로 발전하는 중이다.
결국, 기술은 계속 변화하지만, 고성능 컴퓨팅의 본질은 달라지지 않는다.
그리고 나는 그 흐름 속에서 여전히 배워가고 있다.