지난주 micro-software에서 주최한 "ISTEP 2013"세미나에 다녀왔습니다.

본 세미나의 주제는 멀티코어 개발자들을 위한 병렬프로그래밍입니다.

유익한 정보인 것 같아 공유하고자 합니다.

 

세미나는 다음과 같은 순으로 진행되었습니다.

1. Think Parallel

2. 강력한 멀티코어 프로세스 전략

3. 인텔 컴포저 XE 2013을 활용한 최적화, 벡터화 그리고 병렬화

4. 인텔 제온 파이에서의 애플리케이션 포팅

5. 제온 파이와 TBB를 결합한 반도체 제조 연구 분야 실무 사례 소개

 

<1. Think Parallel>

  "Think Parallel" 주제에서는 멀티코어/매니코어의 물리적한계 및 그에 따른 병렬처리의 필요성과 효율에 대해 이야기했습니다.

 

<2. 강력한 멀티코어 프로세스 전략>

  멀티코어 프로세스를 위한 인텔의 제품으로, 분석도구를 포함하는 통합 수트인 "Parallel Studio XE 2013" "Cluster Studio XE 2013",

그리고 차세대 프로세서인 "Intel Xeon Phi coprocessors"를 소개하였습니다.

 

"Parallel Studio XE 2013" "Cluster Studio XE 2013"의 주요기능입니다.

- 향상된 컴파일러 및 라이브러리 성능

- 3세대 인텔® 코어™ 프로세서와 다음 세대인 해즈웰(Haswell) 마이크로 아키텍처 및 인텔 제온(Xeon) Phi 코프로세서 지원

- 충돌 및 보안 취약성을 가져올 수 있는 버퍼 오버플로우를 감지하고 찾아낼 수 있는 포인터 검사기(Pointer checker)

- 기존 메모리 분석으로는 불가능했던 비 할당된 메모리 공간을 찾아주는 메모리 성장 분석(Memory growth analysis)

- 클러스터 안정성 향상을 가져오는 개선된 무장애 무중단(fault tolerance) MPI 라이브러리

 

<3. 컴포저 XE 2013을 활용한 최적화, 벡터화 그리고 병렬화>

프로젝트의 최적화 및 벡터화의 중요성(특히 Intel CilkPlus)과 인텔 컴파일러 성능을 강조하였습니다.

실제 인텔 컴파일러 데모를 시연하여 테스트의 결과를 볼 수 있었습니다.

 

예제) 1024 행렬의 곱셈의 수행속도 테스트

 

최적화 옵션

벡터화 옵션

결과()

1

/Od (최적화옵션 no)

자동벡터화

30

2

/O2

/Qvec-

19

3

/O3

자동벡터화

10

4

/O3

/QxAVX

4.5

※자동벡터화 : 컴파일러에 기본으로 포함되어있는 벡터화

 

적절한 최적화 옵션과 벡터화를 통하여 효율적인 속도를 얻을 수 있음을 확인하였습니다.

 

<4. 인텔 제온 파이에서의 애플리케이션 포팅>

HPC(High Performance Computing) 및 멀티프로세서 병렬화를 최대로 이끌어 낼 수 있는 제품이라는 소개로

인텔의 제품을 하드웨어적, 소프트웨어적으로 나누어 설명하였습니다.

 

- 하드웨어적 측면에서의 적용 : Intel Xeon Phi coprocessors

- 소프트웨어적 측면에서의 적용 : Intel XE 제품(Parallel Studio XE 2013, Cluster Studio XE 2013)

 

Xeon Phi Host컴퓨터의 PCIe 슬롯에 장착되어, 보조 프로세서의 역할을 수행하는 코프로세서입니다.

이러한 Xeon Phi 61코어와 512비트의 SIMD 벡터처리 능력과 1테라플롭이라는 최대 성능을 가지고 있습니다.

제온파이(Linux OS)는 호스트컴퓨터(windows OS) PCIe 버스를 통해 통신합니다.

 

제온파이의 목적은 application에 따라 호스트와 코프로세스의 사용을 코드상으로 제어하여 성능을 최대한 전략적으로 할 수 있도록 튜닝하는 것에 있습니다.

이러한 목적을 위해서는 application의 병렬화 및 벡터화를 최적으로 하여야 성능을 극대로 끌어올릴 수 있습니다.

 

<5. 제온 파이와 TBB를 결합한 반도체 제조 연구 분야 실무 사례 소개>

마지막 파트에서는 윈도우OS상에서 제온파이를 제어하는 기술을 설명하였습니다.

 

윈도우 os가 설치된 호스트 컴퓨터에서 제온 파이를 사용하기 위해서는,

- windows 7이상의 64bit 버전 설치

- .Net Framework 4.0이상

- MPSS 설치 - 제온 파이 코프로세서 드라이버

- 제온 파이의 플래시 업데이트

- 개발도구 설치. Visual Studio 2008이상

- 인텔 컴파일러 설치(Intel Composer XE 2013 update1 SP1

위와 같은 순서로 개발환경을 구축합니다.

구축을 완료한 후 OpenMP, MPI, TBB, Cilk Plus, MKL등의 라이브러리를 사용하여 병렬화를 구현할 수 있습니다.

 

하지만 윈도우 기반에서의 사용에는 데이터타입이나 포인터사용불가 등 데이터 구조의 제한과 문법 및 컴파일의 제한 등 아직 미흡한 부분이 많아,

제온파이의 적용은 어려워 보입니다.

 

 

실제 프로젝트에 적용해볼 항목들은 아래와 같습니다.

- Intel Parallel Studio XE 2013를 통한 프로젝트 분석

- Intel C++ Compiler 적용

- Intel TBB 라이브러리 적용

- Intel Cilk Plus 적용

- Intel MPI library (for Windows) 적용

 

[첨부] Intel ISTEP 2013 세미나 발표자료

 

 

이상입니다

+ Recent posts