SEMINAR/STUDY LISTS

We have a series of unsupervised learning studies, called SCI (Seminars/Studies for CAMEL members' Interest). Currently, we focus on three research and study topics: i) computer architecture, ii) operating systems and iii) diverse application-level studies. You can review the list below:

Seminar/Study ListsView study list
Note that to check all slides and videos we are performing for the studies, you need to join first
While computer architecture and operating-systems SCIs cover top-notch research topics published in tier-1 conferences in computer science and engineering, application-level studies deal with different topics per semester (e.g., recommendation systems, AI, machine learning, and FPGA topics to date). If you are not familiar with CS/CE style publications and research activities, please refer to the "conference list" reported KIISE or the following "for new students" section. To join each seminar or study group, please contact mj@camelab.org.

INTRODUCTION TO TOP-TIER CONFERENCES

Computer architecture and systems research is strongly conference-driven. Leading venues publish work spanning processor and memory architecture, operating systems, storage, compilers, accelerators, and large-scale systems. Review processes vary by venue and year, but they typically include multiple expert reviews, author responses, and program-committee discussion.

CAMEL members regularly study papers from leading architecture venues—including ISCA, MICRO, ASPLOS, and HPCA—and systems venues such as OSDI, SOSP, USENIX ATC, FAST, and SC. Because scopes, schedules, and review policies evolve, always consult each venue's official call for papers.

Current conference reference: KIISE CS Top Conference World Ranking The attached KIISE conference-list PDF is retained as a legacy reference rather than a current ranking.

For CAMEL's research, students should first build familiarity with three connected areas:

  • Computer architecture and memory systems
  • Operating systems and storage systems
  • Distributed, parallel, and AI infrastructure systems

Students coming from circuits, VLSI, devices, or other lower-level fields do not need to master the entire computing stack at once. Start with recent papers in the areas above, identify the hardware/software interfaces involved, and then expand toward the tools and methods introduced in the next section.

Back to Table of Contents

BOTTOM LINE FOR RESEARCH

Please note that there are many research resources and tools you need to be familiar with, in addition to the following items. These items are not research topics themselves but are minimum requirements to keep your body and soul together in our research fields.

SIMULATORS

We typically use many different types of simulation frameworks for computer architecture and system research. While appropriate simulation methodologies vary based on your research topics, we recommend becoming familiar with diverse simulation methodologies. The most popular simulators we use are as follows:

  • Gem5 : a full system simulator
  • NANDFlashSim : a cycle-level non-volatile memory simulator
  • SimpleSSD : a high-performance solid-state disk simulation model for full system evaluation
  • GPGPUSim : a discrete graphics processing unit (GPU) simulator
  • DRAMSim2 : a cycle-level DRAM simulation model
  • DiskSim : an event-driven hard-disk drive simulator

All these simulators are open source, and all the framework codes are available for free download. Managing/learning these simulation tools would require solid programming knowledge as well as strong background in computer architectures/systems. We often modify these simulators to examine a conceptual idea or new approach. We also integrate these frameworks with one another to simulate a larger computing system and see more details (e.g., power, energy and data movements between heterogeneous devices).

EMPIRICAL RESEARCH/SYSTEM PROGRAMMING

In addition to simulation-based studies, we often analyze and characterize diverse real products and memory devices (e.g., SSD, GPU, etc.). This fundamentally requires strong programming skills and deep knowledge of the underlying devices themselves. For example, to evaluate those devices in a better way, you might need to develop a microbenchmark or characterization tool that interacts with them through various workloads and access patterns. On the other hand, since handling these devices is also related to managing device drivers to some extent, it requires knowledge of OS architecture and kernel implementation such as process creation, context-switching, memory allocation, synchronization mechanisms, interprocess communication, I/O buffering, and file system -- this eye-catching kernel map would be helpful to understand kernel driver issues and check the corresponding kernel source codes. We are using both Windows Driver Model ( WDM) and Linux kernel driver model.

OTHER TOOLS

You might want to be aware of diverse benchmark/evaluation tools (e.g., SPEC, Intel Iometer, unix disk I/O and some other parallel I/O tools ), runtime libraries (e.g., Boost, MapReduce, MPI, GPU-CUDA) and version-control systems (e.g., Git and Subversion). All these tools are often used for simulation and empirical evaluation studies. In addition, it would be good if you can freely use other scripting languages like Python. Usually, both simulation and empirical evaluation generate a tremendous amount of data, and therefore analysis of such data can be prone to human error and take valuable time away from your research. The script tools help you accelerate data analysis by automatically parsing the structure of raw data and collecting them. Lastly, Linux performance-analysis and profiling tools (please refer Brendan Gregg) would help you to reduce the effort required to develop a performance measurement and evaluation tool.

Back to Table of Contents