Hackathon 1

Hands-on-Tutorial: UPMEM-Programming

The different paces in the development of CPU and main memory lead to the problem, where the fast CPUs are waiting for the data from slower memory. Memory becomes more and more a bottleneck. One solution to this problem is Processing in Memory (PIM). For a long time, there where only prototype hardware that was not commercially available. The goal is this hackathon is to provide a first overview of the capabilities of the first real commercially available PIM-enabled hardware. During the sessions, the participants learn details about the hardware architecture and their characteristics. Further, the attendees work on different problems which can be solved especially efficiently using PIM. At the end of the hackathon, participants compete against each other in a challenge. In this challenge, they work on a problem that should be solved as efficiently as possible using PIM technology. The team with the best runtime wins.

The agenda of the hackathon is as follows:

  1. UPMEM Introduction
  2. The UPMEM SDK
  3. Hands-On 1: Setup & Hello World
  4. Optimization
  5. Hands-On 2: Matrix Multiplication
  6. Hands-On 3: Database Scan
  7. Communication
  8. Hands-On 4: Fire Simulation
  9. Challenge


For the UPMEM-Hackathon you will need a laptop with the UPMEM-SDK 2023.1 (https://sdk.upmem.com/) installed. It is sufficient to install the "package" without kernel module. However, the SDK is only supported for Debian 10, Ubuntu 18.04/20.04 and Centos 7. For other operating systems, a VirtualBox VM (https://ess-web.inf.uos.de/static/UPMEM-Hackathon/UPMEM-VM.ova) or Dockerfile (https://ess-web.inf.uos.de/static/UPMEM-Hackathon/Dockerfile) is already prepared. To speed up the setup during the hackathon, we ask all participants to set up the UPMEM-SDK on their machines beforehand.

Marcel Lütke Dreimann (University of Osnabrück)

Alexander Baumstark (TU Ilmenau)


Marcel Lütke Dreimann received his bachelor's and master's degree in CS at the University of Osnabrück. Since 2021 he started with his PhD studies under the supervision of Olaf Spinczyk. His research is focused on system software for heterogeneous hardware, especially GPUs and their virtualization. Furthermore, he became interested in processing in memory and started looking into the UPMEM architecture.

Alexander Baumstark received his bachelor's and master's degree in CS at the TU Ilmenau. In 2021 he started his PhD studies under the supervision of Kai-Uwe Sattler. His research is focused on database optimizations for modern memory hierarchies, especially optimization for Persistent Memory, GPUs, or PIM.