최근들어 PC는 물론이고 스마트폰에서도 멀티코어 CPU를 이용해 성능을 극대화 시키고 있습니다. RAD Studio는 XE7에서 이러한 멀티코어 CPU를 최대한 활용할 수 있는 패러럴 컴퓨팅 라이브러리를 추가해 멀티코어 CPU를 최대한 활용할 수 있도록 지원하고 있습니다.
패러럴 컴퓨팅 라이브러리에 대해 알아봅니다.
병렬(패러럴) 컴퓨팅 러이브러리
패러럴 컴퓨팅 라이브러리(Parallel Computing Library)란?
- 멀티코어 CPU를 이용해 최적의 성능을 낼 수 있도록 다수의 CPU에서 병렬(패러럴)로 작업
- 비동기 연산작업에 사용되어 멀티코어 컴퓨터와 장비 최대한 활용 가능
- 기존 코드에 손쉽게 통합하도록 라이브러리 형태로 지원
- VCL과 FMX, 델파이와 C++빌더에서 모두 사용 가능
패러럴 라이브러리를 이용해 고성능이 필요한 작업을 병렬로 처리해 최적의 성능을 발휘하는 코드로 변경할 수 있습니다.
참고자료
동영상
패러럴 라이브러리 관련 글
- 패러럴 라이브러리 빠르게 소개 - http://delphiaball.co.uk/2014/09/05/quick-introduction-to-parallel-programming-with-xe7/
- 병렬 프로그래밍 라이브러리에서 TTask 사용 - http://delphiaball.co.uk/2014/09/08/using-ttask-from-the-parallel-programming-library/
- 병렬 프로그래밍 라이브러리에서 TTask.IFuture 사용 - http://delphiaball.co.uk/2014/09/08/ttask-ifuture-from-the-parallel-programming-library/
샘플코드
RAD Studio XE7의 샘플경로에 위의 동영상에서 진행된 "Conways Game of Life"샘플코드가 포함되어 있습니다.
샘플경로
- Delphi : C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\RTL\Parallel Library
- C++ : C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\CPP\RTL\Parallel Library
샘플을 테스트 방법
- 샘플 프로젝트 컴파일 및 실행
- [Load] 버튼으로 "*.LIF" 파일 선택
- [Re-center] 버튼으로 중앙으로 이동(변경을 확인할 수 있도록)
- [Start] 버튼으로 실행
- Parallel 체크박스로 패러럴이 적용된 성능과 적용되지 않은 성능 비교
인터넷 상에서는 아래의 경로를 통해 샘플코드 확인 할 수 있습니다.
- http://sourceforge.net/p/radstudiodemos/code/HEAD/tree/branches/RadStudio_XE7/Object%20Pascal/RTL/Parallel%20Library/
- http://sourceforge.net/p/radstudiodemos/code/HEAD/tree/branches/RadStudio_XE7/CPP/RTL/Parallel%20Library/
마무리
패러럴 라이브러리는 델파이(Object Pascal)과 C++ 빌더를 사용해 VCL과 FMX(멀티 디바이스) 모두에서 병렬 프로그램을 지원하고, 윈도우, 맥, 안드로이드, iOS에서 사용할 수 있습니다.
단, 무분별하게 사용하면 다른 프로세스에 영향을 주거나 배터리 소모가 빠를 수 있으니 필요한 곳에 적절히 사용하시기 바랍니다.
관련글
- http://docwiki.embarcadero.com/RADStudio/en/Using_the_Parallel_Programming_Library
- http://community.embarcadero.com/index.php/blogs/entry/parallel-programming-using-the-new-rad-studio-xe7-runtime-library