병렬 프로그래밍이라고도 하는 병렬 컴퓨팅은 대규모 컴퓨팅 문제를 여러 프로세서가 동시에 해결할 수 있는 작은 문제로 나누는 프로세스입니다.
프로세서는 공유 메모리를 사용하여 통신하고 솔루션은 알고리즘을 사용하여 결합됩니다. 병렬 컴퓨팅은 단일 프로세서를 사용하여 순차적으로 문제를 해결하는 이전 버전인 직렬 컴퓨팅(직렬 연산이라고도 함)보다 훨씬 빠릅니다.
1940년대 후반과 1950년대에 컴퓨터가 처음 발명되었을 때, 소프트웨어는 문제를 순차적으로 해결하도록 프로그래밍되어 처리 속도가 제한적이었습니다. 문제를 더 빨리 해결하려면 중앙 처리 장치(CPU)에서 일련의 지침에 따라 알고리즘을 구축하고 구현해야 했습니다. 한 명령어가 실행된 후에야 다른 명령어가 해결될 수 있습니다.
1950년대부터 병렬 컴퓨팅을 통해 컴퓨터는 컴퓨팅 문제를 더 작고 유사한 문제로 분할하여 코드를 더 빠르고 효율적으로 실행할 수 있었습니다. 병렬 알고리즘으로 알려진 이러한 문제는 여러 프로세서에 분산되어 있습니다.
오늘날 병렬 시스템은 다양한 컴퓨터에서 사용될 정도로 발전하여 이메일 확인이나 문자 메시지 전송과 같은 일상적인 작업을 직렬 컴퓨팅으로 수행할 때보다 수백 배 빠르게 처리할 수 있게 되었습니다. 병렬 시스템은 랩톱 및 스마트폰과 같은 개인용 디바이스에 전원을 공급하는 것 외에도 최첨단 슈퍼컴퓨터와 인공 지능(AI) 및 사물인터넷(IoT)과 같은 최첨단 기술을 지원합니다.
순차 컴퓨팅이라고도 하는 직렬 컴퓨팅은 컴퓨팅 문제를 해결하기 위한 지침을 한 번에 하나씩 또는 순차적으로 따르는 컴퓨팅의 한 유형입니다. 직렬 컴퓨팅의 기본은 시스템이 여러 프로세서에 문제를 분산하지 않고 하나의 프로세서만 사용하도록 하는 것입니다.
컴퓨터 과학이 발전하면서 직렬 컴퓨팅의 속도가 느리다는 이유로 병렬 컴퓨팅이 도입되었습니다. 병렬 프로그래밍을 사용하는 운영 체제를 사용하면 컴퓨터가 프로세스를 실행하고 계산을 동시에 수행할 수 있는데, 이를 병렬 처리라고 합니다.
병렬 처리와 병렬 컴퓨팅은 매우 유사한 용어이지만 몇 가지 차이점에 주목할 필요가 있습니다. 병렬 처리 또는 병렬 처리는 런타임 작업을 더 작은 부분으로 분리하여 둘 이상의 프로세서를 사용하여 독립적으로 동시에 수행합니다. 일반적으로 여러 프로세서에서 방정식을 풀고 나면 컴퓨터 네트워크 또는 둘 이상의 프로세서가 있는 컴퓨터에서 데이터를 재조립해야 합니다.
병렬 처리와 병렬 컴퓨팅을 같은 의미로 사용하기도 하지만, 병렬 처리는 컴퓨터에서 함께 실행되는 코어와 CPU의 수를 의미하고, 병렬 컴퓨팅은 소프트웨어가 프로세스를 원활하게 하기 위해 수행하는 작업을 의미합니다.
업계 뉴스레터
Think 뉴스레터를 통해 AI, 자동화, 데이터 등 가장 중요하고 흥미로운 업계 동향에 대한 최신 소식을 받아보세요. IBM 개인정보 보호정책을 참조하세요.
구독한 뉴스레터는 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.
병렬 컴퓨팅의 속도와 효율성은 스마트폰, 고성능 컴퓨팅(HPC), AI 및 머신 러닝(ML)을 포함하여 지난 반세기 동안 가장 중요한 기술 혁신을 주도합니다. 병렬 컴퓨팅은 컴퓨터가 더 복잡한 문제를 더 적은 리소스로 더 빠르게 해결할 수 있게 함으로써 많은 기업에서 디지털 혁신의 중요한 원동력이기도 합니다.
병렬 컴퓨팅에 대한 관심은 컴퓨터 프로그래머와 제조업체가 보다 전력 효율적인 프로세서를 구축하는 방법을 모색하기 시작하면서 시작되었습니다. 1950년대, 1960년대, 1970년대에 과학 및 엔지니어링 분야의 리더들은 처음으로 공유 메모리 공간을 사용하고 데이터 세트에서 병렬 작업을 실행하는 컴퓨터를 구축했습니다.
이러한 노력은 1980년대에 64개의 Intel 프로세서를 사용하는 새로운 유형의 병렬 컴퓨팅을 도입한 획기적인 Caltech Concurrent Computation 프로젝트로 정점에 달했습니다.
1990년대에 대규모 병렬 프로세서(MPP)를 사용하는 ASCI Red 슈퍼컴퓨터는 초당 1조 연산이라는 전례 없는 기록을 달성하며 컴퓨팅 성능에서 MPP가 우위를 점하는 시대를 열었습니다.1 동시에 상용 네트워크에서 컴퓨터 클러스터 또는 '노드'를 연결하는 병렬 컴퓨팅의 일종인 클러스터가 시장에 도입되어 결국 많은 애플리케이션에서 MPP를 대체하게 되었습니다.
병렬 컴퓨팅, 특히 멀티코어 프로세서와 그래픽 처리 장치(GPU)는 오늘날 컴퓨터 과학의 중요한 부분으로 남아 있습니다. GPU는 데이터 처리량을 확장하고 한 번에 더 많은 계산을 실행하여 많은 최신 비즈니스 애플리케이션의 속도를 높이기 위해 CPU와 동시에 배포되는 경우가 많습니다.
병렬 컴퓨팅 이전의 직렬 컴퓨팅은 단일 프로세서가 복잡한 문제를 한 번에 한 단계씩 해결해야 했기 때문에 병렬 컴퓨팅으로 몇 초 만에 완료할 수 있는 작업에 몇 분, 몇 시간이 더 걸렸습니다. 예를 들어, 최초의 iPhone은 직렬 컴퓨팅을 사용했기 때문에 앱이나 이메일을 여는 데 1분 정도 걸릴 수 있습니다. 2011년 iPhone에서 처음 사용된 병렬 컴퓨팅은 오늘날 이러한 작업의 속도를 크게 높입니다.
컴퓨팅이 발전하고 더 복잡한 문제를 해결함에 따라 시스템은 수천, 심지어 수백만 개의 작업을 순식간에 수행해야 합니다. 오늘날의 ML 모델은 여러 프로세서에 배포된 매우 복잡한 알고리즘을 사용하는 병렬 컴퓨팅에 크게 의존합니다. 직렬 컴퓨팅을 사용하면 단일 프로세서에서 한 번에 하나의 계산만 수행할 수 있기 때문에 병목 현상으로 인해 ML 작업이 훨씬 더 오래 걸립니다.
병렬 컴퓨팅과 병렬 처리는 대규모 데이터 세트에 대한 숫자 처리를 가속화하여 데이터 분석의 기반이 되는 대화형 쿼리를 가능하게 합니다. 매일 1해 바이트가 넘는 정보가 생성되는 상황에서 기업들은 디지털 정보에서 유용한 인사이트를 찾아내는 데 어려움을 겪을 수 있습니다. 병렬 처리는 많은 코어를 가진 컴퓨터를 데이터 구조에 배치하여 직렬 컴퓨터보다 훨씬 빠르게 데이터를 검색합니다.
병렬 컴퓨팅으로 무장한 컴퓨터는 직렬 컴퓨팅 컴퓨터보다 리소스를 훨씬 더 효율적으로 사용할 수 있습니다. 오늘날의 대부분의 최첨단 컴퓨터 시스템은 여러 코어와 프로세서를 배포하여 한 번에 여러 프로그램을 실행하고 더 많은 작업을 동시에 수행할 수 있습니다.
병렬 컴퓨팅은 슈퍼컴퓨터부터 주머니 속의 스마트폰에 이르기까지 다양한 종류의 장치와 컴퓨터 아키텍처를 의미합니다. 가장 복잡한 병렬 컴퓨팅은 수십만 개의 코어를 사용해 새로운 항암제를 찾거나 외계 지적 생명체(SETI) 탐색을 지원하는 등의 문제를 해결합니다. 병렬 컴퓨팅을 사용하면 직렬 컴퓨팅 시스템을 사용할 때보다 휴대폰에서 이메일을 더 빠르게 보낼 수 있습니다.
일반적으로 병렬 컴퓨팅에는 공유 메모리, 분산 컴퓨팅 메모리, 하이브리드 메모리라는 세 가지 고유한 아키텍처가 사용됩니다. 각 아키텍처는 모든 병렬 컴퓨팅 아키텍처의 표준인 자체 메시지 전달 인터페이스(MPI)에서 작동합니다. MPI는 C 및 Fortran과 같은 프로그래밍 언어의 메시지 전달 프로그램을 위한 프로토콜을 간략하게 설명합니다. 오픈소스 MPI는 병렬 컴퓨팅 능력에 의존하는 새로운 애플리케이션과 소프트웨어 개발에 중요한 역할을 해왔습니다.
공유 메모리 아키텍처는 노트북이나 스마트폰과 같은 병렬 컴퓨팅의 일반적인 일상 애플리케이션에 사용됩니다. 공유 메모리 아키텍처에서 병렬 컴퓨터는 여러 프로세서를 사용하여 동일한 공유 메모리 리소스에 연결합니다.
분산 메모리는 클라우드 컴퓨팅 아키텍처에서 사용되므로 많은 엔터프라이즈 애플리케이션에서 일반적으로 사용됩니다. 병렬 컴퓨팅을 위한 분산 시스템에서는 자체 메모리 리소스를 가진 여러 프로세서가 네트워크를 통해 연결됩니다.
오늘날의 슈퍼컴퓨터는 분산 메모리 네트워크에 공유 메모리 컴퓨터를 결합한 병렬 컴퓨팅 시스템인 하이브리드 메모리 아키텍처에 의존합니다. 하이브리드 메모리 환경에 연결된 CPU는 공유 메모리와 동일한 네트워크의 다른 장치에 할당된 작업에 액세스할 수 있습니다.
세 가지 주요 아키텍처 외에도 일반적이지 않은 다른 병렬 컴퓨터 아키텍처는 더 큰 문제나 고도로 전문화된 작업을 해결하도록 설계되었습니다. 여기에는 '벡터'라고 하는 데이터 배열을 위한 벡터 프로세서와 그래픽 처리 장치(GPGCU)의 범용 컴퓨팅을 위한 프로세서가 포함됩니다. 그 중 하나인 Nvidia가 개발한 독점 GPGCU 애플리케이션 프로그래밍 인터페이스(API)인 CUDA는 대부분의 AI 애플리케이션을 뒷받침하는 기술인 딥 러닝(DL)에 매우 중요합니다.
병렬 컴퓨팅에는 네 가지 유형이 있으며, 각 유형마다 고유한 용도가 있습니다.
비트 수준 병렬 처리는 프로세서 워드 크기를 늘리고 문제를 해결하기 위해 프로세서를 실행해야 하는 명령어 수를 줄이는 기술에 의존합니다. 1986년까지 컴퓨터 아키텍처는 비트 수준 병렬 처리를 4비트 프로세서에서 8비트, 16비트, 32비트, 64비트로 증가시키면서 발전했으며, 각 세대는 이전 세대보다 성능이 뛰어났습니다. 비트 병렬 처리의 발전으로 가장 유명한 예는 아마도 주류 애플리케이션이 처음으로 64비트를 사용한 'Nintendo 64'일 것입니다.
명령어 수준 병렬 처리(ILP)는 프로세서가 실행할 명령어를 선택하는 병렬 컴퓨팅의 한 유형입니다. ILP에서 프로세서는 리소스 최적화를 개선하고 처리량을 높이기 위해 특정 작업을 동시에 수행하도록 설계되었습니다.
작업 병렬 처리는 동일한 데이터에서 작업을 동시에 실행하는 여러 프로세서에서 코드를 병렬화하는 병렬 컴퓨팅의 한 유형입니다. 작업 병렬 처리는 작업을 동시에 실행하여 직렬 시간을 줄이는 데 사용됩니다. 단일 데이터 세트에 대해 일련의 작업이 수행되는 파이프라이닝과 같은 경우가 이에 해당합니다.
ILP보다 더 발전된 슈퍼워드 수준 병렬 처리(SLP)는 인라인 코드에 사용되는 벡터화 전술입니다. 벡터화는 여러 유사한 작업을 한 번에 완료하는 데 사용되는 병렬 컴퓨팅 프로세스로 시간과 리소스를 절약합니다. SLP는 코드 블록에서 중복되는 스칼라 명령어를 식별하고 이를 단일 슈퍼워드 연산으로 결합하는 데 사용됩니다.
많은 스마트폰은 병렬 프로세싱을 사용하여 작업을 더 빠르고 효율적으로 수행합니다. 예를 들어, iPhone 14에는 6코어 CPU와 5코어 GPU가 탑재되어 있어 초당 17조 개의 작업을 실행할 수 있는 시장을 선도하는 능력을 발휘하며, 이는 직렬 컴퓨팅을 사용하면 상상할 수 없는 수준의 성능을 제공합니다.
암호화폐, 투표기, 의료 및 기타 디지털 기술의 여러 고급 응용 프로그램을 뒷받침하는 기술인 블록체인 기술은 병렬 컴퓨팅을 사용하여 여러 컴퓨터를 연결하여 트랜잭션 및 입력을 검증합니다. 병렬 컴퓨팅을 사용하면 블록체인의 트랜잭션을 한 번에 하나씩 처리하지 않고 동시에 처리할 수 있으므로 처리량이 증가하고 확장성과 효율성이 높아집니다.
오늘날 가장 강력한 노트북인 MacBook, ChromeBook, ThinkPad는 병렬 처리를 기반으로 하는 다중 처리 코어를 갖춘 칩을 사용합니다. 멀티코어 프로세서의 예로는 사용자가 실시간으로 비디오를 편집하고, 3D 그래픽을 실행하고, 기타 복잡하고 리소스 집약적인 작업을 수행할 수 있는 Intel Core i5 및 HP Z8이 있습니다.
사물인터넷(IoT)은 인터넷에 연결된 센서에서 수집된 데이터에 의존합니다. 데이터가 수집된 후에는 인사이트를 얻기 위해 데이터를 분석하고 발전소, 댐, 교통 시스템과 같은 복잡한 시스템이 작동하는 데 도움이 되는 병렬 컴퓨팅이 필요합니다. 기존의 직렬 컴퓨팅은 IoT가 작동할 만큼 빠르게 데이터를 선별할 수 없기 때문에 병렬 컴퓨팅은 IoT 기술 발전에 매우 중요합니다.
병렬 컴퓨팅은 얼굴 인식 및 자연어 처리(NLP)와 같은 AI 애플리케이션을 위한 ML 모델을 훈련하는 데 중요한 역할을 합니다. 병렬 컴퓨팅은 작업을 동시에 수행함으로써 데이터에 대해 ML 모델을 정확하게 학습시키는 데 걸리는 시간을 크게 단축합니다.
우주 왕복선을 실행하는 컴퓨터는 항공 전자 공학을 제어하고 실시간으로 데이터를 모니터링하기 위해 병렬로 작동하는 5대의 IBM® AP-101 컴퓨터에 의존합니다. 전투기에도 사용되는 이 강력한 기계는 초당 약 50만 개의 명령어를 실행할 수 있습니다.
슈퍼컴퓨터는 병렬 컴퓨팅에 매우 많이 의존하기 때문에 종종 병렬 컴퓨터라고 불립니다. 예를 들어, American Summit 슈퍼컴퓨터는 인간이 물리학과 자연 환경을 더 잘 이해할 수 있도록 초당 200경 연산을 처리합니다.2
IBM Spectrum LSF Suites는 분산형 고성능 컴퓨팅(HPC)을 위한 워크로드 관리 플랫폼 및 작업 스케줄러입니다.
IBM 하이브리드 클라우드 HPC 솔루션은 대규모의 컴퓨팅 집약적 문제를 해결하고 인사이트를 얻는 시간을 단축하는 데 도움이 됩니다.
비즈니스 요구에 적합한 클라우드 인프라 솔루션을 찾고 필요에 따라 리소스를 확장하세요.