Research

Research in the System Software Laboratory focuses on the design and implementation of system software, which serves as the bridge between applications and hardware. Our primary areas of study include compiler design, runtime systems, and various optimization techniques. We aim to achieve two key objectives: (1) improving program performance in areas such as speed, size, and energy efficiency, and (2) reducing the workload on programmers.

The research topics of SSLAB include several areas:

Compiler Optimization and Autotuning

This area focuses on improving compiler techniques and automatically tuning performance for various hardware architectures, particularly in multi-core and GPU-based systems.

Key Topics:

  • Function inlining, register allocation, and optimization of compiler passes.
  • Autotuning frameworks for loop optimizations, dynamic languages, and OpenCL applications.

Parallel and Heterogeneous Computing

This research area covers frameworks and methodologies for optimizing parallel computation, often in heterogeneous environments such as GPU clusters or multi-core systems.

Key Topics:

  • Workload distribution and task scheduling in multi-GPU systems.
  • OpenCL abstractions and management for GPU clusters.
  • GPU memory management

Cyber-Physical and Embedded Systems

This category includes research on programming techniques and system designs for embedded and cyber-physical systems, focusing on reliability, energy efficiency, and safety-critical environments.

Key Topics:

  • MISRA C++ compliance and energy-aware computing for embedded systems.
  • Optimizations for embedded GPUs and microprocessor energy management.
  • Optimizations for environments with limited memory/storage.

Virtualization

This research focuses on techniques for translating machine code between different instruction sets, optimizing virtual machine performance, and enhancing virtualization support for parallel and heterogeneous computing.

Key Topics:

  • Compiler techniques for virtual machines.
  • Virtualization in GPUs.