TLA+ specification of PCR parallel programming pattern

Solsona, José E. - Yovine, Sergio

Resumen:

Programming correct parallel software in a cost-effective way is a challenging task requiring a high degree of expertise. The PCR pattern aims at expressing computations consisting of a producer consuming input data items and generating for each of them, a data set to be consumed by several consumers working in parallel. Their outputs are finally aggregated back into a single result by a reducer. PCR emphasize the independence between different computations in order to expose all opportunities for parallelism. Here, we formalize the semantics of PCR in terms of TLA+. In this way, we can leverage TLA+ related tools to prove properties.


Detalles Bibliográficos
2020
Agencia Nacional de Investigación e Innovación
Parallel programming patterns
Formal semantics
Formal verification
Ciencias Naturales y Exactas
Ciencias de la Computación e Información
Inglés
Agencia Nacional de Investigación e Innovación
REDI
https://hdl.handle.net/20.500.12381/488
Acceso abierto
Reconocimiento 4.0 Internacional. (CC BY)
Resumen:
Sumario:Programming correct parallel software in a cost-effective way is a challenging task requiring a high degree of expertise. The PCR pattern aims at expressing computations consisting of a producer consuming input data items and generating for each of them, a data set to be consumed by several consumers working in parallel. Their outputs are finally aggregated back into a single result by a reducer. PCR emphasize the independence between different computations in order to expose all opportunities for parallelism. Here, we formalize the semantics of PCR in terms of TLA+. In this way, we can leverage TLA+ related tools to prove properties.