• DocumentCode
    660554
  • Title

    JFlow: Practical refactorings for flow-based parallelism

  • Author

    Chen, Ni ; Johnson, Reva E.

  • Author_Institution
    Dept. of Comput. Sci., Univ. of Illinois at Urbana-Champaign, Urbana, IL, USA
  • fYear
    2013
  • fDate
    11-15 Nov. 2013
  • Firstpage
    202
  • Lastpage
    212
  • Abstract
    Emerging applications in the domains of recognition, mining and synthesis (RMS); image and video processing; data warehousing; and automatic financial trading admit a particular style of parallelism termed flow-based parallelism. To help developers exploit flow-based parallelism, popular parallel libraries such as Groovy´s GPars, Intel´s TBB Flow Graph and Microsoft´s TPL Dataflow have begun introducing many new and useful constructs. However, to reap the benefits of such constructs, developers must first use them. This involves refactoring their existing sequential code to incorporate these constructs - a manual process that overwhelms even experts. To alleviate this burden, we introduce a set of novel analyses and transformations targeting flow-based parallelism. We implemented these ideas in JFlow, an interactive refactoring tool integrated into the Eclipse IDE. We used JFlow to parallelize seven applications: four from a previously known benchmark and three from a suite of large open source projects. JFlow, with minimal interaction from the developer, can successfully parallelize applications from the aforementioned domains with good performance (offering up to 3.45x speedup on a 4-core machine) and is fast enough to be used interactively as part of a developer´s workflow.
  • Keywords
    interactive systems; parallel programming; public domain software; software maintenance; Eclipse IDE; Groovy GPars; Intel TBB flow graph; JFlow; Microsoft TPL dataflow; RMS domain; automatic financial trading; data warehousing; flow-based parallelism; image processing; interactive refactoring tool; large open source projects; parallel libraries; recognition, mining and synthesis domain; sequential code refactoring; video processing; Databases; Feature extraction; Java; Libraries; Parallel processing; Pipelines; Sensitivity;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Automated Software Engineering (ASE), 2013 IEEE/ACM 28th International Conference on
  • Conference_Location
    Silicon Valley, CA
  • Type

    conf

  • DOI
    10.1109/ASE.2013.6693080
  • Filename
    6693080