Filters








255,771 Hits in 3.8 sec

Using transformations to verify parallel programs [chapter]

Ernst-Rüdiger Olderog, Krzysztof R. Apt
1991 Lecture Notes in Computer Science  
We argue that the verification of parallel programs can be considerably simplified by using program transformations.  ...  We illustrate this approach by proving correctness of two parallel programs under the assumption of fairness: asynchronous fixed point computation and parallel zero search.  ...  : l=Jair {ii= .L} T {x = µF}. 5 Parallel zero search The next example illustrates how all four transformations can be combined to verify a parallel program.  ... 
doi:10.1007/3-540-53912-3_18 fatcat:x2dmcw4fqne75ao4wnh6b3rx24

A rely-guarantee-based simulation for verifying concurrent program transformations

Hongjin Liang, Xinyu Feng, Ming Fu
2012 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '12  
In this paper, we propose a Rely-Guarantee-based Simulation (RGSim) to verify concurrent program transformations.  ...  Verifying program transformations usually requires proving that the resulting program (the target) refines or is equivalent to the original one (the source).  ...  Acknowledgments We would like to thank Matthew Parkinson  ... 
doi:10.1145/2103656.2103711 dblp:conf/popl/LiangFF12 fatcat:xdr6gbu5knezpdfk56g7ysfsiy

A rely-guarantee-based simulation for verifying concurrent program transformations

Hongjin Liang, Xinyu Feng, Ming Fu
2012 SIGPLAN notices  
In this paper, we propose a Rely-Guarantee-based Simulation (RGSim) to verify concurrent program transformations.  ...  Verifying program transformations usually requires proving that the resulting program (the target) refines or is equivalent to the original one (the source).  ...  Acknowledgments We would like to thank Matthew Parkinson  ... 
doi:10.1145/2103621.2103711 fatcat:kkh4qq3e7jdqhnpoagxqbenvka

Data-race detection: the missing piece for an end-to-end semantic equivalence checker for parallelizing transformations of array-intensive programs

Kunal Banerjee, Soumyadip Banerjee, Santonu Sarkar
2016 Proceedings of the 3rd ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming - ARRAY 2016  
Even when the parallel program can be proved to be semantically equivalent with its corresponding sequential program, detecting data-race conditions in the parallel program remains a challenge.  ...  The parallelizing transformation (hand-crafted or compiler-assisted) is error prone as it is often performed without verifying any semantic equivalence with the sequential counterpart.  ...  In such a case, it is all the more important to verify if the parallel transformation (i) preserves the semantic equivalence of the sequential code and (ii) does not contain problems related to the parallel  ... 
doi:10.1145/2935323.2935324 dblp:conf/pldi/BanerjeeBS16 fatcat:u4rggpx5ffet3lriarntrghgb4

Loop Parallelization using the 3D Iteration Space Visualizer

YIJUN YU, ERIK H. D'HOLLANDER
2001 Journal of Visual Languages and Computing  
A 3D iteration space visualizer (ISV) is presented to analyze the parallelism in loops and to find loop transformations which enhance the parallelism.  ...  In addition, the user may discover and indicate additional parallelism for which a suitable unimodular loop transformation is calculated and verified.  ...  Then, they could verify their findings using the ISV. After using the visualizing tool for about 10 min, almost everyone obtained the transformed code.  ... 
doi:10.1006/jvlc.2000.0191 fatcat:f6zcfjuvafcgddif2vasc73txu

Verifying Parallel Dataflow Transformations with Model Checking and its Application to FPGAs

Robert Stewart, Bernard Berthomieu, Paulo Garcia, Idris Ibrahim, Greg Michaelson, Andrew Wallace
2019 Journal of systems architecture  
We present a Linear Temporal Logic (LTL) model checking approach to verify a dataflow program transformation, using three LTL properties to identify cyclostatic actors in dynamic dataflow programs.  ...  Parallel refactoring using verified transformations speedily improves FPGA performance, e.g. 15.4 × speedup with 16 actors. (R. Stewart).  ...  In contrast, our work uses model checking to verify transformations of stateful actors, and we have extended the Eclipse based Orcc IDE with a graphical tool to apply a parallel transformation when model  ... 
doi:10.1016/j.sysarc.2019.101657 fatcat:rvjjt7yr5jgdhepbvqy5tfkljy

Formal methods for engineering special-purpose parallel systems introduction to minitrack

A.E. Abdallah, W. Luk
2003 36th Annual Hawaii International Conference on System Sciences, 2003. Proceedings of the  
Hawkins emphasises the use of algebraic laws of functional programming to transform high-level specifications into Handel-C programs which, in turn, can be compiled into efficient circuits running on reconfigurable  ...  Due to the massive parallelism in the hardware implementations, programs can potentially achieve enormous improvement in speed.  ...  Hawkins emphasises the use of algebraic laws of functional programming to transform high-level specifications into Handel-C programs which, in turn, can be compiled into efficient circuits running on reconfigurable  ... 
doi:10.1109/hicss.2003.1174807 fatcat:5ckhdatqzzh5tnysh7eeq6ieku

Specification-based sketching with Sketch

Hesam Samimi, Kaushik Rajan
2011 Proceedings of the 13th Workshop on Formal Techniues for Java-Like Programs - FTfJP '11  
We also recount our experience applying the tool to aid optimistic parallel execution frameworks, where we used it to discover and verify operation inverses, commutativity conditions, and operational transformations  ...  This paper describes our implementation of Sketch# on top of Spec# and its program verifier Boogie.  ...  To evaluate Sketch#, we utilize it to aid the development of programs for speculative parallelization frameworks.  ... 
doi:10.1145/2076674.2076677 dblp:conf/ecoop/SamimiR11 fatcat:d3taxp6465adhhpcjorpgoqelu

Program Correctness by Transformation [chapter]

Marieke Huisman, Stefan Blom, Saeed Darabi, Mohsen Safari
2018 Lecture Notes in Computer Science  
Deductive program verification can be used effectively to verify high-level programs, but can be challenging for low-level, highperformance code.  ...  We also sketch how several commonly used OpenCL kernel transformations can be adapted to also transform the corresponding program annotations.  ...  We are indebted to Jeroen Vonk, who started studying some of the annotation-aware program transformations as part of his Bachelor project.  ... 
doi:10.1007/978-3-030-03418-4_22 fatcat:oubjazobzbaljpzkwfgxzh5rt4

Handling loops in bounded model checking of C programs via k-induction

Mikhail Y. R. Gadelha, Hussama I. Ismail, Lucas C. Cordeiro
2015 International Journal on Software Tools for Technology Transfer (STTT)  
In this paper, we present a novel proof by induction algorithm, which is built on the top of a symbolic context-bounded model checker and uses an iterative deepening approach to verify, for each step k  ...  up to a given maximum, whether a given safety property φ holds in the program.  ...  The approach used to verify C programs is the k -induction technique.  ... 
doi:10.1007/s10009-015-0407-9 fatcat:raktsxzfvfgizdvrumdsvcb3nm

A Verification-Aware Design Methodology for Thread Pipelining Parallelization

Guo-An JIAN, Cheng-An CHIEN, Peng-Sheng CHEN, Jiun-In GUO
2012 IEICE transactions on information and systems  
When verifying the parallel program, the proposed verification approach keeps the performance degradation within 23% and 21.1% in D1 and HD720 resolutions, respectively.  ...  In contrast to traditional design flow, a behavior-model program is constructed before parallelizing as a bridge to help developers gradually leverage the technique of thread-pipelining parallelization  ...  The authors are grateful to the National Center for High-Performance Computing for computer time and facilities.  ... 
doi:10.1587/transinf.e95.d.2505 fatcat:zrgue6qzwnbghgojngsai4y32y

Pure Functions in C: A Small Keyword for Automatic Parallelization

Tim SuB, Lars Nagel, Marc-Andre Vef, Andre Brinkmann, Dustin Feld, Thomas Soddemann
2017 2017 IEEE International Conference on Cluster Computing (CLUSTER)  
To make use of this potential, an essential technique to increase the parallelism of a program is to parallelize loops.  ...  In this paper, we present a seemingly simple extension to the C programming language which marks functions without side-effects.  ...  Besides using libraries and parallelization tools, there are several other approaches to extend programming languages for automatic parallelization.  ... 
doi:10.1109/cluster.2017.32 dblp:conf/cluster/Suss0VBFS17 fatcat:3jatajchsbhcbhoo6w7dzi2zm4

Automatic formal verification of MPI-based parallel programs

Stephen F. Siegel, Timothy K. Zirkel
2011 Proceedings of the 16th ACM symposium on Principles and practice of parallel programming - PPoPP '11  
The Toolkit for Accurate Scientific Software (TASS) is a suite of tools for the formal verification of MPI-based parallel programs used in computational science.  ...  The model is then explored using symbolic execution and explicit state space enumeration. A number of techniques are used to reduce the time and memory consumed.  ...  (KLEE [2] is another symbolic execution tool which has been used to verify functional equivalence in some cases; however it does not apply to parallel programs.) 8. Collective assertions.  ... 
doi:10.1145/1941553.1941603 dblp:conf/ppopp/SiegelZ11 fatcat:jrpjpny7wzhufjcub4o3ath7mq

Speculative Program Parallelization with Scalable and Decentralized Runtime Verification [chapter]

Aravind Sukumaran-Rajam, Juan Manuel Martinez Caamaño, Willy Wolff, Alexandra Jimborean, Philippe Clauss
2014 Lecture Notes in Computer Science  
Thread Level Speculation (TLS) is a dynamic code parallelization technique proposed to keep the software in pace with the advances in hardware, in particular, to automatically parallelize programs to take  ...  This situation appeals to scalable and decentralized verification systems and new strategies to dynamically generate efficient parallel code resulting from advanced optimizing parallelizing transformations  ...  In order to verify continuously the prediction, and thus verify the correctness of the parallel program, we implemented a decentralized runtime verification system embedded in the parallel code, as detailed  ... 
doi:10.1007/978-3-319-11164-3_11 fatcat:k7hv6nqbovgxrcpzspfpy55k5u

Automation of Formal Verification of Programs in the Pifagor Language

M. S. Ushakova, A. I. Legalov
2015 Modelirovanie i Analiz Informacionnyh Sistem  
However, the method of deduction is not widely used for verification of parallel programs because of high complexity of the process.  ...  The usage of the functional data-flow paradigm of parallel programming allows to decrease the complexity of the proof process.  ...  Hoare triples corresponding to the obtained LDFGs are transformed into formulas (let us call them final formulas) and are passed to the formula verifier to check their truth.  ... 
doi:10.18255/1818-1015-2015-4-578-589 fatcat:suqnqeeeuvab5bfm2g74zaywau
« Previous Showing results 1 — 15 out of 255,771 results