2016 Intel Software Developer Conference


한달 전, 양재동 엘 타워에서 진행한 2016 인텔 소프트웨어 개발자 컨퍼런스를 다녀왔다. 인텔 컨퍼런스가 열릴 때 항상 주요 주제는 HPC(High Performance Computing) 이다. 매년 HPC를 위한 세미나 및 컨퍼런스를 운영하는데 그 동안 관심 있었던 세션을 듣기 위해서 신청을 했다. 이번 컨퍼런스는 2일 동안 진행되었고, 그 중 첫째 날에만 참석을 했다. 




발표의 절반은 영어로 진행이 되지만 동시 통역을 해주어서 듣는데 큰 무리는 없었다. 가끔 컴퓨터 용어가 난무하게 될 때는 영어를 직접 듣는게 이해하기 좋은 경우도 있었지만 대체적으로 동시 통역의 퀄리티는 높은 편이었다.


기조연설에서 인텔 비전과 신규 제품 소개 그리고 CPU 병렬을 통해서 얻을 수 있는 성능 이점에 대한 설명을 들을 수 있었다. 주요 내용 IoT, Cloud등이다. 



로버트 게바 인텔 수석 엔지니어니의 발표에서는 GPGPU와 Intel CPU에 대한 성능 비교 결과도 보여주었다. 많은 수치와 그래프들을  보여주었는데 결국 하고 싶은 이야기는 아래 2가지라고 생각한다.


1. 항상 GPGPU가 빠르다고 할 수 없다.

2. 최신 CPU + 병렬화, 벡터화를 활용하면 GPGPU를 활용하는 것 만큼의 고성능을 낼 수 있다.


컨퍼런스를 참석한 이유는 "OpenMP를 통한 병렬 프로그래밍"과 "벡터 프로그램의 실행 및 고급토픽"을 듣기 위함이다.


OpenMP 세션에서는 병렬 프로그래밍 기본 개념부터 병렬화의 한계 설명까지 일반적인 개론들을 설명해주었다. 초보자도 어려움없이 들을 수 있는 내용이다. 참고로 OpenMP는 병렬 프로그래밍을 위한 표준 API 스펙을 명시하고 각종 언어에서 사용가능하도록 기능을 제공하는 일을 하고 있다. 언제부터인가 OpenMP는 표준 API 스펙을 명시하는 기관이 되어 있었다. 만약 병렬화를 손쉽게 사용하고 싶다면 OpenMP가 검토 첫번째 대상이 아닐까 생각한다. 


나는 벡터 프로그램 세션을 듣는 동안  당황할 수밖에 없었다. 신청할 당시 "고급 토픽"이란 단어가 보이지 않았던 것 같다. CPU에 대한 기본 개념이나 벡터화에 대한 지식을 알지 못한 상태로 내용을 들었다. 제목에 당당히 고급 토픽이라고 적혀 있었는데 말이다. 벡터화를 통해서 성능이 좋아진다는 것 외 대부분의 내용을 자세히 이해할 수 없었다. 발표 내용을 듣고 CPU에 대한 기본 개념과 벡터화에 대해서 찾아보고 실습해본 결과 발표 내용의 일부를 이해하게 되었다. OpenMP와 벡터화에 대해서 학습하게 된 내용은 따로 정리하여 블로그에 작성할 예정이다.


정리하자면, 

1. 고급 주제에 대해 이해하기 어려웠지만 행사 참석 자체가 자극이 되어 학습을 하게 된 계기가 되었다.

2. CPU 기본 개념은 공부하고 듣게 되면 도움이 크게 된다. 예를 들어 CPU Pipeline, SuperScalar, Vectorization.

 

참고로 이 글에 첨부된 사진들은 인텔 컨퍼런스에서 제공한 세미나 자료 내용이다.

Tags

Read Next

*

*