Vectorizing code generator for Bobox
Intended Scope: Master thesis
Required Skills: C/C++, C#, parallel programming, code optimizations, high performance computing, graph algorithms
Description:
The Bobox system is a distributed computing platform currently programmed using a graph-like execution plan over a set of boxes implemented in C++. However, a more sophisticated chain of compilation tools is envisioned, starting with a program in C#, analysing it (as described in this Master thesis), converting it into a graph-like intermediate code (see this Doctoral thesis), cut into pieces, and finally generated into a set of explicitly vectorized C++ code of boxes (see this Bachelor thesis). The goal of this proposed Master thesis is implementing the missing step of cutting into pieces - it involves optimization and tuning as the pieces must be large enough to hide external communication overhead but small enough to enable sufficient parallelism.