Combining high productivity and high performance in image processing using Single Assignment C

In this paper the problem of high performance software engineering is addressed in the context of image processing regarding productivity and optimized exploitation of hardware resources. Therefore, we introduce the functional array processing language Single Assignment C (SaC), which relies on a hardware virtualization concept for automated, parallel machine code generation. An illustrative benchmarking example proves both utility and adequacy of SaC for image processing.

[1]  Clemens Grelck,et al.  With-Loop Fusion for Data Locality and Parallelism , 2005, IFL.

[2]  Alexander V. Shafarenko,et al.  A Binding Scope Analysis for Generic Programs on Arrays , 2005, IFL.

[3]  Sven-Bodo Scholz,et al.  Single Assignment C: efficient support for high-level array operations in a functional setting , 2003, Journal of Functional Programming.

[4]  Alexander V. Shafarenko,et al.  Numerical Simulations of Unsteady Shock Wave Interactions Using SaC and Fortran-90 , 2009, PaCT.

[5]  Clemens Grelck,et al.  SAC—A Functional Array Language for Efficient Multi-threaded Execution , 2006, International Journal of Parallel Programming.

[6]  K. Kennedy,et al.  High Performance Fortran , 1997, Scientific Parallel Computing.

[7]  Sven-Bodo Scholz,et al.  WITH-Loop-Folding in SAC - Condensing Consecutive Array Operations , 1997, Implementation of Functional Languages.

[8]  James Reinders,et al.  Intel® threading building blocks , 2008 .

[9]  Jitendra Malik,et al.  Scale-Space and Edge Detection Using Anisotropic Diffusion , 1990, IEEE Trans. Pattern Anal. Mach. Intell..

[10]  Alexander V. Shafarenko,et al.  Streaming Networks for Coordinating Data-Parallel Programs , 2006, Ershov Memorial Conference.

[11]  Clemens Grelck,et al.  Sac - From High-Level Programming with Arrays to Efficient Parallel Execution , 2003, Parallel Process. Lett..

[12]  Clemens Grelck,et al.  Accelerating APL programs with SAC , 1998, APL.

[13]  Sven-Bodo Scholz On defining application-specific high-level array operations by means of shape-invariant programming facilities , 1998, APL.

[14]  Ken Kennedy,et al.  Optimizing Compilers for Modern Architectures: A Dependence-based Approach , 2001 .

[15]  Bradford L. Chamberlain,et al.  ZPL: A Machine Independent Programming Language for Parallel Computers , 2000, IEEE Trans. Software Eng..