Teaching

Teaching has centered on parallel computing, systems, and the practical mechanics of modern high-performance computing. This page is based on the public Technion teaching record.

Courses taught

  • Shared-Memory Parallelism: CPUs, GPUs, and In-Between

    Technion

  • Distributed Systems (seminar)

    Open University of Israel

  • Multi-Core Processors and Embedded Processor Systems

    Tel Aviv University

  • Shared-Memory Parallelism: CPUs, GPUs, and In-Between

    Ben-Gurion University of the Negev

Project-based teaching

In 2025 and 2026, I supervised a Technion project course titled Cross-Platform GPU Kernel Translation with LLMs.

The project focused on using large language models to translate CUDA GPU kernels to alternative platforms, including OpenCL, SYCL/DPC++, ROCm/HIP, OpenMP offload, and OpenACC, with attention to optimization and benchmarking across heterogeneous GPU ecosystems.

Developed course

A major teaching thread is a course I developed around shared-memory parallelism across CPUs, GPUs, and the space in between. It is built to make students comfortable moving from classical multi-core programming to accelerator-facing systems work and performance-aware implementation.

The course page at Technion presents it as a developed course, with lecture materials, exercises, project resources, and infrastructure links.

Teaching throughline

The same background that feeds my research agenda also shapes my teaching: parallel programming, memory hierarchy, performance reasoning, and systems-level thinking. My goal is not only to cover APIs or tools, but to teach how modern computational systems behave and how to work with them well.