A system for parallel execution of data-flow graphs

TitleA system for parallel execution of data-flow graphs
Publication TypeConference Paper
Year of Publication2013
AuthorsBukošek, A.
Conference NameMATCOS-13
Date Published10/2013
Keywordscompositing, computer graphics, data-flow graphs, domain-specific language, parallelisation, rendering

This paper describes the system we developed for performing arbitrary operations on data in parallel using a data-flow graph.

Each operation is implemented in a dynamically loadable module or using a domain-specific language, which was designed specifically for this purpose.  We also implemented a compiler for this language.  Our domain-specific language is functional and strongly typed.  We designed its type system to be modular.  Every data type is implemented in an external dynamically loadable module, which the compiler loads during its initialisation.  Each module contains functions for generating an intermediate representation for the LLVM system, which optimises it and translates it into machine code.

As an example usage of our system, we developed operations for image manipulation, compositing, and rendering of 3D scenes.  Such a set of operations is commonly used in the film industry for the creation of special effects.

We also implemented a renderer based on the path tracing algorithm, which creates an image from the description of a 3D scene.  This method is based on a physically-correct simulation of light bouncing around the scene.