The last few years has seen activity towards programming models, languages and frameworks to address the increasingly wide range and broad availability of heterogeneous computing resources through raised programming abstraction and portability across different platforms.
The effort spent in simplifying parallel programming across heterogeneous platforms is often outweighed by the need for low-level control over computation setup and execution and by performance opportunities that are often missed due to the overhead introduced by the additional abstraction. Moreover, despite the ability to port parallel code across devices, each device is generally characterised by a restricted set of computations that it can execute outperforming the other devices in the system. The problem is therefore to schedule computations on increasingly popular multi-device heterogeneous platforms, helping to choose the best device among the available ones each time a computation has to execute.
FSCL (https://github.com/GabrieleCocco/FSCL.Compiler) in an infrastructure to develop and execute parallel computations in F# from within the .NET environment. Its purpose is to efficiently address the problem of programming abstraction on heterogeneous platforms while helping to dynamically exploit the computing power of such platforms at runtime through a transparent scheduling strategy based on algorithmic feature extraction and classification.
Gabriele Cocco is a Ph.D. student in Computer Science at the University of Pisa. His research is mainly focused on meta-programming for parallel and distributed computing. He is also a senior software engineer in Biobeats, a Californian startup working on adaptive media, where he mainly covers mobile UX/UI and code optimisation for mobile and wearable devices.
Please register at the Skills Matter site too: https://www.skillsmatter.com/meetups/6458-fscl-homogeneous-programming-and-execution-for-heterogeneous-platforms