개발 라이브러리 & 툴

C/C++ 병렬처리(멀티프로세스) 라이브러리 선택

하늘흐늘 2021. 10. 3. 20:05
반응형

프로그램의 CPU 바운드 작업의 성능을 올리기 위하여 병렬처리 라이브러리를 오랜 만에 살펴보았다.
찾아본 순서와 특징은 아래와 같았다.
  

Intel Threading Building Block(TBB)
인텔에서 만든 것으로 Modern C++ 스타일로 만들어져 있다.
AMD도 지원하며 주며 Windows, Linux등 멀티OS를 지원한다.
최근까지도 업데이트 되었다. 
오픈소스 버전으로 비상업적인 이용시에는 자유롭지만 상업적인 이용시에는 GPLv2 라이센스로 이용한 코드를 공개해야 한다.
상업적인 이용시에는 상용 버전의 라이브러리 구매가 필요로 하는 듯 보였다.
라이센스 관련 링크
오픈소스 버전은 어떻게 인스톨해야 하는지 찾아보지 않아서, 오픈소스가 아닌 인텔사이트에서 다운받는 것은 다른 팩키지까지 같이 들어 있는지 3.5G가 되어서 우선은 여기까지만 찾아보았다.    
   

OpenMP
C에 적합하여 보이며 전반적으로 레가시 코드에 사용하기 편하다고 한다.
컴파일 옵션 설정만으로 사용할 수 있다.
하지만 더 이상 제대로 지원하지 않는 레가시 라이브러리 취급을 받는 것 같았다.
그래도 리눅스에서 개발하거나 멀티 플랫폼 지원하려면 선택할만해 보였다.   
   
Microsoft Parallel Patterns Library(PPL)
MS가 만든 것으로 Modern C++ 스타일로 만들어져 있다.
비주얼스튜디오에서 관련 헤더 포함하고 실행하면 그만이다.
싱글 버전과 병렬 버전이 같이 있는 MS 예제 인상적이다.
Modern C++알고 멀티프로세스 관련 개념이 있으면 그냥 예제만 보면 된다. 
예제 관련 링크

  
C/C++로 몇가지 윈도우 프로그램 만들고 있는 관계로 걍, 사용하기 편한 PPL 쓰기로했다.


반응형