Charles Explorer logo
🇬🇧

Transforming procedural code for streaming environments

Publication at Faculty of Mathematics and Physics |
2017

Abstract

Streaming environments and similar parallel platforms are widely used in image, signal, or general data processing as a means of achieving high performance. Unfortunately, they are often associated with specific programming languages and, thus, hardly accessible for non-experts.

In this paper, we present a framework for transformation of a C# procedural code to a Hybrid Flow Graph - a novel intermediate code which employs the streaming paradigm and can be further converted into a streaming application. This approach will allow creating streaming applications or their parts using a widely known imperative language instead of an intricate language specific to streaming.

In this paper, we focus on the transformation of control flow which represents the main difference between procedural code, driven by control flow constructs, and streaming environments, driven by data. Since the use of a streaming platform automatically enables parallelism and vectorization, we were able to demonstrate that the streaming applications generated by our method may outperform their original C# implementation.