Restructuring Scientific Software using Semantic Patching with Coccinelle

Michele Martone

Maintenance of a large HPC software in C/C++ can be demanding. Factors like evolving 3rd-party APIs and hardware require significant efforts to project sustainability. Failure in coping with these challenges can lead to obsolescence, performance loss, vendor lock-in, bugs. This workshop introduces the Coccinelle’ tool for semantics-aware matching and patching of C code. While initially conceived for automatically keeping up-to-date Linux kernel drivers, Coccinelle has been underexplored in other contexts. Here, emphasis will be given on code restructuring for High Performance Computing (HPC) codes in support to domain scientists. Coccinelle can also be a powerful testing tool. Discussion and experience exchange is welcome.

🖥 There is a PDF file with the slides for this workshop available. Unless otherwise noted in the slides themselves, they are published under a CC BY 3.0 license.
CC BY 3.0 badge