A heterogeneous system is one that uses more than one kind of processors or cores. It typically uses a general-purpose CPU to run an operating system and accelerators, such as GPUs and FPGAs, to perform some specific tasks faster and energy-efficiently. Heterogeneous systems that are based on GPUs and FPGAs are widening their user base these days. Especially, GPU-based heterogeneous systems are de facto standard for running deep learning applications. In the post-Moore’s era, the role of accelerator-based heterogeneous systems is becoming more important.
Ideally, software designers would like to extract performance and throughput gains proportional to the increase in the processor resources in the system. Unfortunately, a major challenge, the programming wall, needs to be addressed before such a goal can be achieved. It is an obstacle for programmers to efficiently parallelize and optimize their applications to exploit their processor resources.
The Multicore Computing Research Laboratory is a research group in the Department of Computer Science and Engineering at Seoul National University. Its goal is to overcome the programming wall by means of a compiler, runtime system, architecture, and operating system techniques at various levels taking a pragmatic approach. Its most recent research focuses on the following: