klytius
The use of the basic parallel combinators in Haskell produces a certain effect at runtime, which is the parallelization of our program.
But that effect is not directly observable.
We can try to guess what happened using tools like ThreadScope, yet we still cannot match the behaviour of our program and its source code.
In this work, I designed an EDSL around the basic operations to produce a parallel structure of programs, a data type that mirrors how the parallel operators were used in the source code, so one can see and analyze the inherent parallel behaviour of our programs.
The aim of this work was the development of a tool to make parallelism observable, so one can use this information to help undergraduate students understand parallelism, or to study the parallelism of our programs.
Klytius is a tool to expose dynamic behaviour based on the basic Haskell parallel primitives.
The idea behind Klytius is to show the inner dynamic structure of your programs, based on par and pseq.
Klytius is a deep EDSL, with the ability to show you this dynamic structure of your programs in a graphical way.
The code is in this public repository Klytius, and I am open to suggestions!
This was the final project of my undergraduate degree, where I wrote down the whole theoretical framework needed here (along with the source code), but it is in Spanish.