# A Functional Equivalence Verification of Sequential and MPI Versions of the Eikonal Algorithm.

## Faculty Mentor Information

Elena Sherman

## Abstract

The domain of scientific computation widely utilizes parallel algorithms to dramatically increase program performances while executing them on relatively low-cost computer architectures. Commonly a programmer first develops a sequential version of program and then manually translates it to a parallel one, or completely re-implements the program. Such approach leads to the question about the functional equivalency of the sequential and the parallel version -- Are those two algorithm compute the same solutions? In this work we explore how to utilize the Concurrency Intermediate Verification Language framework (CIVL) to perform such task on a real scientific computation problem. In particular, we focus on determining the function equivalence of a sequential and an MPI version of the Eikonal algorithms used in scientific computation to calculate distances between objects. During our work we identified several limitations and bugs in CIVL, while modifying the original version of the algorithms to be more amiable for verification.

A Functional Equivalence Verification of Sequential and MPI Versions of the Eikonal Algorithm.

The domain of scientific computation widely utilizes parallel algorithms to dramatically increase program performances while executing them on relatively low-cost computer architectures. Commonly a programmer first develops a sequential version of program and then manually translates it to a parallel one, or completely re-implements the program. Such approach leads to the question about the functional equivalency of the sequential and the parallel version -- Are those two algorithm compute the same solutions? In this work we explore how to utilize the Concurrency Intermediate Verification Language framework (CIVL) to perform such task on a real scientific computation problem. In particular, we focus on determining the function equivalence of a sequential and an MPI version of the Eikonal algorithms used in scientific computation to calculate distances between objects. During our work we identified several limitations and bugs in CIVL, while modifying the original version of the algorithms to be more amiable for verification.