TY - GEN
T1 - Verifying a Radio Telescope Pipeline Using HaliVer
T2 - 29th International Conference on Formal Methods for Industrial Critical Systems, FMICS 2024
AU - van den Haak, Lars B.
AU - Wijs, Anton
AU - Huisman, Marieke
AU - van den Brand, Mark
PY - 2024/8/21
Y1 - 2024/8/21
N2 - This paper describes a case study to verify memory safety of a radio telescope pipeline, which was targeted with the PADRE project of Astron, SURF and the Netherlands eScienceCenter. As performance is important for this application, the implementation of the radio telescope pipeline should run on a GPU device. Therefore, we encoded the radio telescope pipeline using the Halide scheduling language, which achieved a significant speedup. Next, we used the HaliVer tool to automatically generate formal pre- and postconditions, loop invariants and assertions, which the deductive verifier VerCors can use to prove memory safety. We identified two challenges for the automatic generation of formal annotations for a tool such as VerCors. The first challenge was related to the flattening of multi-dimensional arrays to single arrays and the second challenge concerns the use of many arrays in a program in combination with many quantifiers to specify read and write permissions. For both challenges, we propose solutions, and implemented these. Not every solution proved successful. We discuss the lessons learned and future plans to solve a core scalability issue for large optimised parallel programs.
AB - This paper describes a case study to verify memory safety of a radio telescope pipeline, which was targeted with the PADRE project of Astron, SURF and the Netherlands eScienceCenter. As performance is important for this application, the implementation of the radio telescope pipeline should run on a GPU device. Therefore, we encoded the radio telescope pipeline using the Halide scheduling language, which achieved a significant speedup. Next, we used the HaliVer tool to automatically generate formal pre- and postconditions, loop invariants and assertions, which the deductive verifier VerCors can use to prove memory safety. We identified two challenges for the automatic generation of formal annotations for a tool such as VerCors. The first challenge was related to the flattening of multi-dimensional arrays to single arrays and the second challenge concerns the use of many arrays in a program in combination with many quantifiers to specify read and write permissions. For both challenges, we propose solutions, and implemented these. Not every solution proved successful. We discuss the lessons learned and future plans to solve a core scalability issue for large optimised parallel programs.
KW - Deductive Verification
KW - Formal Verification
KW - Nonlinear Integer Arithmetic
KW - Permission Quantifiers
KW - Scheduling Language
UR - https://www.scopus.com/pages/publications/85202596029
U2 - 10.1007/978-3-031-68150-9_9
DO - 10.1007/978-3-031-68150-9_9
M3 - Conference contribution
AN - SCOPUS:85202596029
SN - 978-3-031-68149-3
T3 - Lecture Notes in Computer Science (LNCS)
SP - 152
EP - 169
BT - Formal Methods for Industrial Critical Systems
A2 - Haxthausen, Anne E.
A2 - Serwe, Wendelin
PB - Springer
Y2 - 9 September 2024 through 11 September 2024
ER -