• DocumentCode
    738675
  • Title

    Spotting Code Optimizations in Data-Parallel Pipelines through PeriSCOPE

  • Author

    Xuepeng Fan ; Zhenyu Guo ; Hai Jin ; Xiaofei Liao ; Jiaxing Zhang ; Hucheng Zhou ; McDirmid, Sean ; Wei Lin ; Jingren Zhou ; Lidong Zhou

  • Author_Institution
    Sch. of Comput. Sci. & Technol., Huazhong Univ. of Sci. & Technol., Wuhan, China
  • Volume
    26
  • Issue
    6
  • fYear
    2015
  • Firstpage
    1718
  • Lastpage
    1731
  • Abstract
    To minimize the amount of data-shuffling I/O that occurs between the pipeline stages of a distributed data-parallel program, its procedural code must be optimized with full awareness of the pipeline that it executes in. Unfortunately, neither pipeline optimizers nor traditional compilers examine both the pipeline and procedural code of a data-parallel program so programmers must either hand-optimize their program across pipeline stages or live with poor performance. To resolve this tension between performance and programmability, this paper describes PeriSCOPE, which automatically optimizes a data-parallel program´s procedural code in the context of data flow that is reconstructed from the program´s pipeline topology. Such optimizations eliminate unnecessary code and data, perform early data filtering, and calculate small derived values (e.g., predicates) earlier in the pipeline, so that less data - sometimes much less data - is transferred between pipeline stages. PeriSCOPE further leverages symbolic execution to enlarge the scope of such optimizations by eliminating dead code. We describe how PeriSCOPE is implemented and evaluate its effectiveness on real production jobs.
  • Keywords
    data flow computing; optimising compilers; parallel programming; pipeline processing; PeriSCOPE; compilers; data filtering; data flow; data-parallel pipeline; data-parallel program procedural code; data-shuffling; dead code; distributed data-parallel program; pipeline optimizer; pipeline stage; pipeline topology; programmability; spotting code optimization; Indexes; Libraries; Optimization; Pipelines; Production; Program processors; Topology; Data-parallel; data-shuffling I/O; optimization; static analysis; symbolic execution;
  • fLanguage
    English
  • Journal_Title
    Parallel and Distributed Systems, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    1045-9219
  • Type

    jour

  • DOI
    10.1109/TPDS.2014.2326416
  • Filename
    6819843