Research Projects

  • image

    SWITCHES

    SWITCHES is a Parallel Runtime system for Task-based Data-flow Execution. It is implemented for multi- and many-core processors that support a global address space (shared memory) and uses OpenMP v4.5 compiler directives for writting parallel applications. It consists a preprocessing tool (called Translator) that translates C/C++ code embedded with OpenMP directives to C/C++ pthread-based code.

    SWITCHES is a task-based dataflow runtime that implements a lightweight distributed triggering system for runtime dependence resolution and uses static scheduling and compile-time assignment policies to reduce runtime overheads. Unlike other systems, the granularity of loop-tasks can be increased to favor data-locality, even when having dependences across different loops. SWITCHES introduces explicit task resource allocation mechanisms for efficient allocation of resources and adopts the latest OpenMP Application Programming Interface (API), as to maintain high levels of programming productivity. It provides a source-to-source tool that automatically produces thread-based code. Performance on an Intel Xeon-Phi shows good scalability and surpasses OpenMP by an average of 32%.