Skip to content

Parallel Computing

병렬 컴퓨팅은 여러 프로세서를 동시에 활용하여 컴퓨팅 성능을 크게 향상시키는 기술입니다. 단일 프로세서 시스템보다 훨씬 빠른 속도로 복잡한 문제를 해결할 수 있도록 합니다. 대규모 데이터 처리, 과학적 시뮬레이션, 인공지능, 머신 러닝 등 다양한 분야에 활용됩니다.

병렬 컴퓨팅의 종류 (Flynn의 분류 방식, Flynn's Taxonomy):

  • SIMD (Single Instruction Multiple Data):
    • 동일한 명령어로 여러 데이터를 동시에 처리.
    • 예: 벡터 프로세서, Intel's SSE (Intel Streaming SIMD Extension), GPGPU (NVIDIA's CUDA)
  • MIMD (Multiple Instruction Multiple Data):
    • 각 프로세서가 서로 다른 명령어를 수행하며 데이터를 처리.
    • 예: 일반적인 멀티 프로세서 시스템
  • SPMD (Single Program Multiple Data):
    • 여러 프로세서가 동일한 프로그램 코드를 실행하지만, 각 프로세서가 처리하는 데이터는 다름.
    • 예: 분산 메모리 환경에서의 병렬 컴퓨팅

다음의 URL에 보다 자세한 내용이 있음: Flynn's Taxonomy

CPU에서 pipelining 을 가르키는 MISD (Multiple Instruction, Single Data)나, von Neumann Architecture가 사용한 SISD (Single Instruction Single Data)도 있으나 이들은 Parallel computing과 거리가 있어 위의 목록에서 제외함.



병렬 컴퓨팅 시스템의 주요 유형과 발전사:

초기 병렬 컴퓨팅 (1950~1960년대):

  • 1957년 MIMD 방식의 병렬컴퓨팅을 도입한 Gamma 60 등장.
  • 1960년대 후반, SIMD 방식의 병렬컴퓨팅을 도입한 ILLIAC IV 개발

클러스터 시스템의 등장 (1980년대):

  • 1980년대 초반, Network File System(NFS) 기술 개발로 클러스터 시스템 등장
  • 여러 독립적인 컴퓨터(노드)를 고속 네트워크로 연결하여 하나의 시스템처럼 작동
  • 주로 고성능 컴퓨팅(HPC)에서 활용

NFS는 네트워크를 통해 파일을 공유할 수 있게 해주는 프로토콜로, 선 마이크로시스템즈(Sun Microsystems)에 의해 개발됨.
NFS를 통해 여러 컴퓨터가 동일한 파일 시스템에 접근할 수 있어, 네트워크 환경에서 파일 공유와 협업이 가능해짐.
이 기술은 클러스터 시스템과 분산 파일 시스템의 발전에 중요한 역할을 했음.

그리드 시스템의 발전 (1990~2000년대):

  • 1990년대와 2000년대 초반, SETI@home 등 분산 그리드 컴퓨팅 프로젝트 활발히 진행
  • 지리적으로 분산된 자원을 연결하여 대규모 병렬 처리 가능
  • 과학 연구, 비즈니스, 엔터테인먼트 등 다양한 분야에서 활용

SETI@home은 Search for Extraterrestrial Intelligence at Home의 약자로
UC Berkeley의 SETI 연구 센터에서 주도한 분산 컴퓨팅 프로젝트 를 가리킴.
전 세계의 일반 사용자들이 자신의 컴퓨터를 이용해 외계 지적 생명체를 탐색하는 데 기여할 수 있도록 설계된 프로젝트로
SETI@home의 핵심 아이디어는 다음과 같음:

  • 사용자들은 인터넷을 통해 SETI@home 소프트웨어를 다운로드하여 설치.
  • 이 소프트웨어는 사용자의 컴퓨터가 유휴 상태일 때 전 세계의 전파망원경에서 수집된 신호 데이터를 분석함.
  • 데이터는 작은 조각으로 나누어져 많은 사용자들에게 배포되고, 각 사용자는 자신의 컴퓨터에서 할당된 데이터를 처리함.
  • 분석 결과는 다시 SETI 연구 센터로 전송되어 외계 신호의 존재 가능성을 평가하는 데 사용됨.

이 프로젝트는 전 세계 수백만 명의 자원 봉사자들이 참여하여 엄청난 양의 데이터를 처리할 수 있게 했으며, 분산 컴퓨팅의 가능성을 보여준 중요한 사례로 꼽힘.
참고로 2020년 3월 이후로 참여자(자원봉사자)들에게 새로운 작업 배포는 중단된 상태이며 프로젝트 팀은 축척된 20년치 데이터 분석에 집중하고 있음.
BONIC (Berkeley Open Infrastructure for Network Computing) 플랫폼을 사용하였고, MilkyWay@home, Rosetta@home, Climateprediction.net 등이 BONIC 플랫폼을 사용하여 진행되고 있음.

멀티 프로세서 시스템의 확산 (2000년대):

  • 2000년대 초반, 듀얼 프로세서 시스템 보급
  • 2000년대 후반, 멀티코어 프로세서 등장하여 단일 시스템 내에 여러 프로세서 포함
  • 데스크탑, 서버, 모바일 장치 등 광범위하게 활용
  • 게임 콘솔 분야에서도 멀티 프로세서 시스템 활용 증가

GPGPU의 활용 (2000년대 후반~현재):

  • 2000년대 후반, CUDA 등 GPGPU 프로그래밍 언어 및 프레임워크 등장
  • GPU의 다수 작은 코어를 활용하여 병렬 처리, 특히 머신 러닝, 데이터 분석, 시뮬레이션 분야에서 높은 성능 발휘
  • Deep Learning, 암호화, 생체정보 인식, 자연어 처리 등 다양한 분야에서 GPGPU 활용 증가


병렬 컴퓨티 시스템 비교

항목 Cluster System Grid System Multi-processor System GPGPU System
구조 고속 네트워크로 연결된 밀접한 노드 지리적으로 분산된 자원 단일 시스템 내 여러 프로세서 다수의 코어로 구성된 GPU
통합 수준 매우 긴밀한 통합 느슨한 통합 매우 긴밀한 통합 GPU 내에서 긴밀한 통합
운영 환경 동일한 운영 체제와 하드웨어 이기종 환경 단일 시스템 CPU와 GPU 간 협력
확장성 제한적 매우 높음 제한적 제한적
주요 사용 사례 과학 계산, HPC 분산 컴퓨팅, 대규모 데이터 처리 데스크탑, 서버, 모바일 장치 머신 러닝, 데이터 분석, 시뮬레이션
관리 및 운영 중앙 집중식 관리 분산 관리 단일 시스템 내 관리 GPU 및 프레임워크 관리
성능 높은 성능 및 신뢰성 네트워크에 따라 다름 높은 처리 성능 매우 높은 병렬 처리 성능
비용 고비용 비용 효율적 전력 효율적, 공간 절약 비용 효율적, 높은 성능 대비 저렴

이 네 가지 병렬 컴퓨팅 시스템은 각각의 특성과 장단점을 가지고 있으며, 각기 다른 요구와 환경에 따라 적합한 솔루션을 제공함.
이를 통해 사용자는 최적의 성능을 달성하고, 다양한 컴퓨팅 작업을 효율적으로 처리할 수 있음.