과거와 달리 현재 멀티코어 시대에서는 프로세서 간의 협력을 최상으로 끌어내기 위해 소프트웨어 설계를 어떻게 하느냐가 무엇보다 중요시 되고 있으며, 이런 관심으로 인해 병렬컴퓨터 아키텍처를 효과적으로 활용해 성능과 처리속도의 향상을 가져 올 수 있는 병렬프로그래밍이 필수적인 요소가 되었습니다.
- OpenMP
- Intel TBB
- Clilk
- Microsoft PPL(Parallel Pattern Library)
- 닷넷의 TPL(Task Parallel Library)
- CUDA
- OpenCL
- Intel ArBB
- C++ AMP
- Microsoft DirectCompute
CUDA는 NVIDIA의 병렬 컴퓨팅 아키텍처로 뛰어난 GPU(graphics processing unit)를 기반으로 컴퓨팅 성능을 극적으로 향상시켜줍니다.
현재까지 CUDA 에서 이용할 수 있는 GPU는 수백만 개가 판매되었으며, 소프트웨어 개발자, 과학자, 연구자들은CUDA를 이용하여 이미지 및 동영상 처리, 컴퓨터 생명 공학, 유체 역학 시뮬레이션, CT 이미지 복원, 지진 분석, 레이 트레이싱 등 매우 다양한 범위의 작업을 수행하고 있습니다.
컴퓨팅은 CPU의 "중앙 처리" 개념에서 CPU와 GPU의 "코프로세싱(co-processing)" 개념으로 진화되었습니다. NVIDIA에서 개발한 CUDA 병렬 컴퓨팅 아키텍처는 컴퓨팅 패러다임의 획기적인 변화를 이끌었습니다. CUDA 병렬 컴퓨팅 아키텍처는 이제 애플리케이션 개발자들의 중요한 설치 기반인 GeForce, ION, Quadro, Tesla GPU 에 사용되고 있습니다.
CUDA는 과학 연구 분야에서 엄청난 호평 속에 적극적으로 도입되었습니다. 예를 들어, 6만 명이 넘는 전 세계 학계 및 제약회사의 연구원들이 신약 연구 개발 작업에 이용하고 있는 분자 동력학 시뮬레이션 프로그램 AMBER는 CUDA를 이용해 분석 기술을 한층 강화할 수 있게 되었습니다.
금융시장에서는 Numerix 및 CompatibL이 거래상대방 신용 리스크 분석 애플리케이션에 CUDA를 도입하여 18배 빠른 성능을 달성했습니다. Numerix는 400여 곳의 금융 기관에서 사용되고 있습니다.
CUDA 채택의 지표는 GPU 컴퓨팅을 위한 Tesla GPU의 램프(ramp)입니다. 현재 '포춘지 500대' 기업에서 사용하고 있는 GPU 클러스터의 수는 700개가 넘습니다. 사용하는 기업은 에너지 업계의 쉴럼버그(Schlumberger), 세브론(Chevron)에서, BNP 파리바와 같은 금융 산업에 이르기까지 다양합니다.
최근의 Microsoft Windows 7 과 Apple Snow Leopard의 출시에 맞춰 GPU 컴퓨팅은 그 영역을 확장하고 있습니다. 이 같은 새로운 운영 시스템에서, GPU는 그래픽 프로세서로서의 기능뿐만 아니라 모든 애플리케이션에서 사용 가능한 병렬 프로세서로서의 전반적인 기능도 구현합니다.
CUDA® 병렬 컴퓨팅 플랫폼은 미세단위 혹은 대단위 데이터 익스프레스 및 태스크 병렬화를 가능하게 하는 몇 가지 간단한 C, C ++ 확장을 제공합니다.
프로그래머는 C, C++, Fortran 혹은 개방형 표준인 OpenACC directives와 같은 높은 수준의 언어를 통해 병렬화를 익스프레스 하는 것을 선택할 수 있습니다. CUDA 병렬 컴퓨팅 플랫폼은 현재 수천 개에 달하는 GPU 가속 애플리케이션 및 공식 발표 연구 논문과 함께 널리 배포되고 있습니다.
