멀티코어 시스템에서 최적화된 소프트웨어 개발을 위한 병렬처리 프로그래밍 기법 조사

이제 멀티코어 CPU가 보편화 되었지만 대다수의 프로그래밍 언어가 단일 코어를 대상으로 발전되었기 때문에 병렬화에 어려움이 있다. 이를 해결하고자 병렬처리 기법들이 연구되고 있지만 오히려 개발자는 여러 기법들 사이에서 혼란스러울 수 있다. 본 논문에서는 개발자들이 처한 상황에서 적절한 기법을 선택하는데 도움이 되고자 주요 병렬처리 기법인 OpenMP, Threading Building Blocks, Cilk Plus, Parallel Patterns Library를 비교 및 평가하였다. 각 기법마다 지원 기능, 지원 방식, 스케줄링 기법 등 개발자가 프로그램을 개발함에 있어 고려해야 할 특징들이 서로 다르고 각기 장단점이 존재한다. 따라서 병렬처리기법을 선택하고 구현함에 있어 특정한 하나의 기법에 의존하는 것보다는 여러 기법들의 특성을 파악하여 상황에 맞는 기법을 선택한다면 보다 효율적이면서도 쉽게 병렬처리를 구현할 수 있다.