A system for parallel execution of data-flow graphs

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

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

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

<p>We also implemented a renderer based on the path tracing algorithm, which creates an image from the description of a 3D scene.&nbsp; This method is based on a physically-correct simulation of light bouncing around the scene.</p>
Year of Publication
2013
Secondary Title
MATCOS-13
Date Published
10/2013
Publication Language
eng
Publisher
University of Primorska
Place Published
Koper
Citation Key
143