Open Access
Programming Parallel Pipelines Using Non-Parallel C# Code.
Michal Brabec,David Bednárek +1 more
- 01 Jan 2013
pp 82-87
TL;DR: This paper proposes the architecture of such system and describes some key steps that have already been taken towards the future goal of extracting both the pipeline structure and the code of the nodes from the C# source code.
read more
Abstract: Parallel and high-performance code is usually created as imperative code in FORTRAN, C, C++ with the help of parallel environments like OpenMP or Intel TBB. However, learning these languages is quite dicult com- pared to C# or Java. Although these modern languages have numerous parallel features, they lack the automatic parallelization or load distribution features known from spe- cialized parallel environments. Due to the referential nature of C# and Java, the principles of parallel environments like OpenMP cannot be directly transferred to these lan- guages. We investigated the idea of using C# as a pro- gramming language for a parallel system based on non- linear pipelines. In this paper, we propose the architecture of such system and describe some key steps that we have already taken towards the future goal of extracting both the pipeline structure and the code of the nodes from the C# source code.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Transformation of Pipeline Stage Algorithms to Event-Driven Code
Michal Brabec,David Bednárek,Petr Malý +2 more
- 01 Jan 2014
TL;DR: This paper presents a method of code transformation producing event- driven code from serial code and focuses mostly on its first part, responsible for the management of variables, which improves the structure of the code with respect to compiler optimizations.
Transforming Procedural Code for Streaming Environments
Michal Brabec,David Bednárek +1 more
- 01 Jan 2017
TL;DR: This paper presents 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.
1
Procedural code integration in streaming environments
Michal Brabec
- 11 Jun 2018
TL;DR: This work presents a framework for transformation of a procedural code to a streaming application using a restricted version of the C# language as the interface and demonstrates that the streaming applications generated by the method may outperform their original C# implementation.
References
•Book
Optimizing Compilers for Modern Architectures
Allen
- 01 Jan 2004
TL;DR: This landmark text from two leaders in the field focuses on the pivotal role that compilers can play in addressing this critical issue of increasing complexity of microprocessors.
489
A profile-based tool for finding pipeline parallelism in sequential programs
Sean Rul,Hans Vandierendonck,Koen De Bosschere +2 more
- 01 Sep 2010
TL;DR: A profiling tool for discovering thread-level parallelism is presented, and the belief that programs with complex control and data flow contain significant amounts of exploitable coarse-grain pipeline parallelism in the program's outer loops is presented.
48
XJava: Exploiting Parallelism with Object-Oriented Stream Programming
Frank Otto,Victor Pankratius,Walter F. Tichy +2 more
- 23 Aug 2009
TL;DR: The results show that XJava reduces the opportunities to introduce synchronization errors, and the amount of code could be reduced by up to 39%.
Data-Flow Awareness in Parallel Data Processing
David Bednárek,J. Dokulil,Jakub Yaghob,Filip Zavoral +3 more
- 01 Jan 2013
TL;DR: The results show that the explicit specification of data flow improves the quality of task scheduling and the effect of data-flow awareness on the system performance is demonstrated.
11
Improving Compilation of Java Scientific Applications
Zoran Budimlić,Mackale Joyner,Ken Kennedy +2 more
- 01 Aug 2007
TL;DR: Improve the analysis and developing new code transformation techniques to further improve the performance of high performance applications written in high-productivity, object-oriented style and implement object and array alias strategies to address the aliasing problem.
4