멀티코어 컴퓨팅 연구실

교수: 이재진
랩실: 
301동 515호
전화: 
(02) 880-1837

멀티코어 컴퓨팅 연구실은 고성능의 멀티코어 컴퓨팅 시스템 및 임베디드 시스템을 위한 소프트웨어 도구와 그 기술에 대해 연구한다. 프로그램의 분석, 최적화, 디버깅을 하는데 필요한 기술들을 실용성을 고려하여 다양한 레벨에서 연구하고 있다.

멀티코어/매니코어를 위한 지능형 실행 시스템

멀티코어 시대의 가장 큰 난관은 멀티코어/매니코어를 활용하기 위해 프로그래머들이 애플리케이션을 병렬화할 때 겪는 어려움, 즉 프로그래밍 장벽이다. 프로그래밍 장벽을 해결하기 위해서는 좋은 프로그래밍 모델을 프로그래머에게 제공하는 것이 중요하다. 좋은 프로그래밍 모델은 고성능과 쉬운 프로그래밍이라는 두 개의 상충되는 목표를 해결해야 한다. 우리는 지능형 실행 시스템을 통해 두 개의 상충되는 목표를 동시에 해결하고자 한다. 지능형 실행 시스템은 애플리케이션과 매니코어 시스템 사이의 순수 소프트웨어 계층으로, 하드웨어의 구체적인 내용을 숨겨 쉬운 프로그래밍을 달성하고 애플리케이션의 계산과 통신 패턴에 따라 자동 튜닝 기술을 이용하여 고성능을 달성한다.

GPU, x86 CPU, CellBE 아키텍처 및 ARM CPU를 위한 OpenCL 프레임워크

Open Computing Language(OpenCL)은 병렬 애플리케이션을 이종의 병렬 플랫폼 사이에서 이식 가능하도록 작성할 수 있는 로열티가 없는 공개 표준이다. OpenCL 프레임워크는 OpenCL 런타임과 OpenCL C 컴파일러로 구성된다. 우리의 OpenCL 프레임워크는 최신의 다양한 아키텍처(GPU, x86 CPU, x86 CPU-GPU 클러스터, CellBE 프로세서, ARM CPU, Intel Single Chip Cloud Computer)를 지원하고 있다.

멀티코어/매니코어를 위한 소프트웨어 공유가상메모리

우리의 소프트웨어 공유가상메모리 시스템인 COMIC과 COMIC++는 각각 CellBE 프로세서와 CellBE 프로세서로 구성된 클러스터(이종 멀티코어 가속기 클러스터)를 대상으로 한다. COMIC과 COMIC++는 사용자에게 전역으로 공유된 하나의 주소 공간을 보이도록 하고 SPMD 형식의 병렬 프로그래밍을 제공한다. 이 기술은 고성능을 달성하면서 사용자에게 쉬운 프로그래밍을 제공한다. 우리는 소프트웨어 공유가상메모리 방식을 동일한 코어로 구성된 매니코어, 예를 들어 Inter Singlechip Cloud Computer(SCC)로 확장하고 있다. SCC의 경우 하드웨어가 캐시 일관성을 보장해 주지 않는 아키텍처이다.

시스템 레벨의 시뮬레이션/가상화

시뮬레이션과 가상화 기술은 컴퓨터 아키텍처와 시스템 소프트웨어의 연구에 중요한 연구 도구이다. 우리는 빠르고 사이클이 정확한 ARM 아키텍처 시뮬레이터인 FaCSim을 개발하였다. 또한, 우리는 각 코어가 private 캐시와 로컬 스토어를 갖는 동일한 코어로 구성된 새로운 매니코어 아키텍처를 제안하였다. 제안한 아키텍처에서는 캐시 일관성에 대한 하드웨어 지원이 없고 로컬 스토어 간의 일관성이 소프트웨어에 의해 운영체제의 페이지 레벨로 보장된다. 나아가 우리는 이 연구를 위해 1000개 이상의 코어를 다루는 전체 시스템 시뮬레이터를 설계하고 개발하고 있다. 한편, 우리는 가상 머신/시뮬레이터를 위한 빠르고 공간 효율적인 체크포인팅 기술도 연구하고 있다.

이미지