Anubhab Ghosh

Research Intern, Google Summer of Code 2022 former contributor


Education: Computer Science and Engineering, Indian Institute of Information Technology, Kalyani, India

Completed project: WebAssembly Support for clang-repl
WebAssembly is a technology that allows Javascript engines to execute compiled bytecode at close to native performance. The goal of the project is to add WebAssembly output support to clang-repl, a C++ interpreter so it can run and execute code inside a web browser. This can be used through a tool like JupyterLite to provide in-browser C++ notebooks.

Project Proposal: URL

Project Reports: Final Report

Mentors: Vassil Vassilev, Alexander Penev

Completed project: Design and Develop a CUDA engine for clang-repl
CUDA is a GPGPU platform and API targeted towards NVIDIA GPUs that gives access to compute elements of the GPU through standard programming languages like C++. The goal of the project is to implement CUDA support for clang-repl that will be useful for interpreting CUDA C++ code. This would possibly require clang-repl to distinguish between host and device code and separately compile device code to PTX.

Project Proposal: URL

Mentors: Vassil Vassilev, David Lange

Completed project: Shared Memory Based JITLink Memory Manager
When a separate executor process is used with LLVM JIT, the generated code needs to be transferred to the executor process which is done by the JITLinkMemoryManager. The current implementation uses ExecutorProcessControl API (an RPC scheme) to send the generated code which goes through pipes or network sockets. The goal of the project is to transfer it through an operating system provided shared memory regions for better performance, when both the JIT process and the executor process are sharing the same underlying physical memory. It should be done by allocating large chunks of memory and distributing it to reduce memory allocation and inter process communication overheads.

Project Proposal: URL

Project Reports: Final Report|Blog post

Mentors: Vassil Vassilev, Stefan Gränitz, Lang Hames


WebAssembly Support for ClangREPL, Slides, Team Meeting, 2 August 2023
WebAssembly Support for clang-repl, Slides, Team Meeting, 31 May 2023
Shared Memory Based JITLink Memory Manager, Slides, Team Meeting, 7 September 2022
Shared Memory Based JITLink Memory Manager - Roadmap, Slides, Team Meeting, 15 June 2022