Finding parallel patterns through static analysis in C ++ applications Articles uri icon

authors

  • RIO ASTORGA, DAVID DEL
  • DOLZ ZARAGOZA, MANUEL FRANCISCO
  • SANCHEZ GARCIA, LUIS MIGUEL
  • GARCIA SANCHEZ, JOSE DANIEL
  • DANELUTTO, MARCO
  • Torquati, Massimo

publication date

  • November 2018

start page

  • 779

end page

  • 788

issue

  • 6

volume

  • 32

International Standard Serial Number (ISSN)

  • 1094-3420

Electronic International Standard Serial Number (EISSN)

  • 1741-2846

abstract

  • Since the 'free lunch' of processor performance is over, parallelism has become the new trend in hardware and architecture design. However, parallel resources deployed in data centers are underused in many cases, given that sequential programming is still deeply rooted in current software development. To address this problem, new methodologies and techniques for parallel programming have been progressively developed. For instance, parallel frameworks, offering programming patterns, allow expressing concurrency in applications to better exploit parallel hardware. Nevertheless, a large portion of production software, from a broad range of scientific and industrial areas, is still developed sequentially. Considering that these software modules contain thousands, or even millions, of lines of code, an extremely large amount of effort is needed to identify parallel regions. To pave the way in this area, this paper presents Parallel Pattern Analyzer Tool, a software component that aids the discovery and annotation of parallel patterns in source codes. This tool simplifies the transformation of sequential source code to parallel. Specifically, we provide support for identifying Map, Farm, and Pipeline parallel patterns and evaluate the quality of the detection for a set of different C++ applications.

subjects

  • Computer Science

keywords

  • parallel patterns; c++11 attributes; source code analysis tools