Hardware Utilization / Usage Estimation with Deep Learning

Today, there are many compute- and memory-hungry data-intensive workloads from big data analytics applications to deep learning. These workloads increasingly run on shared hardware resources, which requires building hardware resource managers that can both serve the needs of workloads and utilize hardware well. Predicting the resource utilization of applications can aid such resource managers while making scheduling decisions for those applications. In this project, we aim to investigate the effectiveness of different deep learning techniques for predicting hardware resource needs of applications.

The project has two steps. Thus, it is most suitable for an MSc thesis at ITU. First step is to survey and determine the application features and learning techniques that are most relevant for this goal. As applications, we also target deep learning training in this phase. The second step is to quantify the efficiency and effectiveness of the techniques and generalize to different types of applications / workloads.


Data Preprocecssing Pipelines

It is common to process data to clean it, filter it, restructure it, get metadata out of it, etc. before feeding the data into a data analysis or machine learning pipeline. There are many tools and libraries out there to aide with this process with different strengths and functionality (DALI, RAPIDS, HoloClean, DAPHNE, DuckDB, etc.). In this project, we would like to analyze pros/cons of some of these tools on a variety of hardware platforms and use cases. The project is in many ways open and can be done as a regular semester project, a BSc thesis, or an MSc thesis. Based on the interests of the student, we can adjust the tools, hardware devices, and use cases to focus on.


Disk Access Tracing for Data-Intensive Systems

In the past decade, data management community has focused on main-memory systems or main-memory-optimized systems. This focus has put the commodity memory hierarchy (DRAM and processor caches) into center when it comes to workload characterization studies. Today, with the evolution of persistent storage technologies such as NVRAM (persistent memory solution of Intel) and NVMe SSDs, data systems have access to orders of magnitude faster persistent storage than traditional hard disks. Recently developed data management systems (e.g., Umbra, LeanStore), therefore, factor in fast persistent storage from the beginning as a design target. However, the data access behavior of modern and popular data-intensive systems over persistent storage has not been studied thoroughly unlike the memory access behavior of such systems. The goal of this project is to identify a set of popular state-of-the-art data-intensive systems and trace their data access patterns over persistent storage. This type of analysis is necessary to understand what the data systems need and how to morph their need to take better advantage of modern fast storage. The project can be adjusted to run as an MSc thesis, a BSc thesis, or a regular semester project.


Profiling Infrastructure for DAPHNE

DAPHNE is an EU project that aims at building a data system targeting integrated data analysis pipelines across data management and processing, high-performance computing (HPC), and machine learning (ML) training and scoring. The project had its first code release back in March. This project aims at adding a profiling infrastructure for DAPHNE codebase. If you are interested in learning about different profiling tools on CPUs (VTune, perf, etc.) or GPUs (nvidia-smi, dcgm, etc.) and analyzing the bottlenecks and characteristics of a complex codebase using such profiling tools, please contact us. The project is in many ways open and can be done as a regular semester project, a BSc thesis, or an MSc thesis. Based on the interests and time of the student, we can adjust the tools and hardware devices to focus on.


Studying Collocation for Machine Learning

State-of-the-art machine learning models are known to be compute- and power-hungry. On the other hand, modern servers come equipped with really powerful CPU-GPU co-processors. Not all machine learning models are able to use all the available hardware resources on such servers.

Workload collocation is a mechanism to increase hardware utilization when a single workload is not able to utilize all the resources on its own. While workload collocation has been heavily studied for traditional data-intensive applications such as relational databases or Spark, it has been largely unexplored for machine learning.

In this project, our goal would be to explore the impact of workload collocation for machine learning on modern hardware. There are many ways to go about this exploration, so if you are interested in this, please contact us, and we can chat about which direction to go to scope things down.

The project can be adjusted for a regular semester project, a BSc thesis, or an MSc thesis.