Source-level transformations of programs are fundamental to achieve high-performance: complex loop transformations, including loop tiling and parallelization, must typically be applied by a user or an automated tool. However this process is error-prone, especially when combined with transformations of the data layout, code structure and statements themselves. In this work, we present an approach to prove the equivalence between a function and its candidate optimized version which is mostly agnostic to the schedule and storage implemented. It can prove the equivalence between a sequential function and its parallelized version, under practical restrictions.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Verification of Concurrent Programs Using Hybrid Concrete-Symbolic Interpretation

  • Emily Tucker,
  • Louis-Noël Pouchet

摘要

Source-level transformations of programs are fundamental to achieve high-performance: complex loop transformations, including loop tiling and parallelization, must typically be applied by a user or an automated tool. However this process is error-prone, especially when combined with transformations of the data layout, code structure and statements themselves. In this work, we present an approach to prove the equivalence between a function and its candidate optimized version which is mostly agnostic to the schedule and storage implemented. It can prove the equivalence between a sequential function and its parallelized version, under practical restrictions.