On the specification and verification of the PCR parallel programming pattern in TLA+

Sobre la especificación y verificación del patrón de programación paralela PCR en TLA+

Sobre a especificação e verificação do padrão de programação paralela PCR em TLA+

Solsona, José E.
Detalles Bibliográficos
2023
Algoritmos paralelos
Patrones de diseño
Métodos formales
TLA
Parallel algorithms
Design patterns
Formal Methods
TLA
Algoritmos paralelos
Padrões de design
Métodos Formais
TLA
Español
Universidad de Montevideo
REDUM
http://revistas.um.edu.uy/index.php/ingenieria/article/view/1146
Acceso abierto
Atribución 4.0 Internacional
_version_ 1807356688118841344
author Solsona, José E.
author_facet Solsona, José E.
author_role author
collection REDUM
dc.creator.none.fl_str_mv Solsona, José E.
dc.date.none.fl_str_mv 2023-06-30
dc.description.en-US.fl_txt_mv Physical limitations in processor design have made the computer industry shift from improving the speed of a single processor to increasing the number of processing core units. But the design of software to exploit parallel processing power in a correct and cost-effective way is a challenging task requiring a high degree of expertise. In 2017, Pérez and Yovine proposed a platform-agnostic parallel programming pattern called PCR, that eases writing parallel code. In this work, we formalize the PCR pattern in terms of TLA+ - a formal specification language for concurrent systems that is being used at places such as Intel, Amazon and Microsoft. We seek to provide a formal framework mainly for (1) expressing high level PCR designs and prove their functional correctness in the sense that their parallel computation computes a given mathematical function, and (2) being able to formally relate different PCR designs. In this way, we contribute to the state of the art in formal verification of parallel programs by leveraging TLA+-related tools to proving properties about high-level PCR-based algorithms such as their functional correctness and refinement.
dc.description.es-ES.fl_txt_mv Limitaciones físicas en el diseño de microprocesadores han hecho que la industria de computadoras pase de mejorar la velocidad de un solo procesador a aumentar el número de unidades centrales de procesamiento. Pero el diseño de software para explotar la potencia de procesamiento paralelo de manera correcta y efectiva es una tarea desafiante que requiere un alto grado de experiencia. En 2017, Pérez y Yovine propusieron un patrón de programación paralela agnóstico de plataforma llamado PCR, que facilita la escritura de código paralelo. En este trabajo, formalizamos el patrón PCR en términos de TLA+ - un lenguaje de especificación formal para sistemas concurrentes que se está utilizando en lugares como Intel, Amazon y Microsoft. Buscamos proporcionar un marco formal principalmente para (1) expresar diseños PCR de alto nivel y probar su corrección funcional en el sentido de que su computación paralela calcula una función matemática dada, y (2) poder relacionar formalmente diferentes diseños PCR. De esta manera, contribuimos al estado del arte en la verificación formal de programas paralelos aprovechando las herramientas asociadas a TLA+ para probar propiedades sobre algoritmos PCR de alto nivel, como su corrección funcional y refinamiento.
dc.description.pt-BR.fl_txt_mv As limitações físicas no design do processador fizeram com que a indústria de computadores mudasse de melhorar a velocidade de um único processador para aumentar o número de unidades centrais de processamento. Mas o design de software para explorar o poder de processamento paralelo de maneira correta e econômica é uma tarefa desafiadora que requer um alto grau de especialização. Em 2017, Pérez e Yovine propuseram um padrão de programação paralela independente de plataforma chamado PCR, que facilita a escrita de código paralelo. Neste trabalho, formalizamos o padrão PCR em termos de TLA+ - uma linguagem de especificação formal para sistemas concorrentes que está sendo utilizada em locais como Intel, Amazon e Microsoft. Procuramos fornecer uma estrutura formal principalmente para (1) expressar designs de PCR de alto nível e provar sua correção funcional no sentido de que sua computação paralela calcula uma determinada função matemática e (2) ser capaz de relacionar formalmente diferentes designs de PCR. Dessa forma, contribuímos para o estado da arte na verificação formal de programas paralelos, aproveitando as ferramentas relacionadas ao TLA+ para provar propriedades sobre algoritmos baseados em PCR de alto nível, como correção e refinamento funcional.
dc.format.none.fl_str_mv application/pdf
application/epub+zip
dc.identifier.none.fl_str_mv http://revistas.um.edu.uy/index.php/ingenieria/article/view/1146
10.36561/ING.24.8
dc.language.iso.none.fl_str_mv spa
dc.publisher.es-ES.fl_str_mv Universidad de Montevideo
dc.relation.none.fl_str_mv http://revistas.um.edu.uy/index.php/ingenieria/article/view/1146/1462
http://revistas.um.edu.uy/index.php/ingenieria/article/view/1146/1463
dc.rights.es-ES.fl_str_mv Derechos de autor 2023 José E. Solsona
dc.rights.license.none.fl_str_mv Atribución 4.0 Internacional
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
dc.source.en-US.fl_str_mv Memoria Investigaciones en Ingeniería; No. 24 (2023); 105-116
dc.source.es-ES.fl_str_mv Memoria Investigaciones en Ingeniería; Núm. 24 (2023); 105-116
dc.source.none.fl_str_mv 2301-1106
2301-1092
10.36561/ING.24
reponame:REDUM
instname:Universidad de Montevideo
instacron:Universidad de Montevideo
dc.source.pt-BR.fl_str_mv Memoria Investigaciones en Ingenieria; n. 24 (2023); 105-116
dc.subject.en-US.fl_str_mv Parallel algorithms
Design patterns
Formal Methods
TLA
dc.subject.es-ES.fl_str_mv Algoritmos paralelos
Patrones de diseño
Métodos formales
TLA
dc.subject.pt-BR.fl_str_mv Algoritmos paralelos
Padrões de design
Métodos Formais
TLA
dc.title.none.fl_str_mv On the specification and verification of the PCR parallel programming pattern in TLA+
Sobre la especificación y verificación del patrón de programación paralela PCR en TLA+
Sobre a especificação e verificação do padrão de programação paralela PCR em TLA+
dc.type.en-US.fl_str_mv Peer reviewed articles
dc.type.es-ES.fl_str_mv Artículos evaluados por pares
dc.type.none.fl_str_mv info:eu-repo/semantics/article
info:eu-repo/semantics/publishedVersion
dc.type.pt-BR.fl_str_mv Artigos revistos por pares
dc.type.version.none.fl_str_mv publishedVersion
info:eu-repo/semantics/publishedVersion
description Physical limitations in processor design have made the computer industry shift from improving the speed of a single processor to increasing the number of processing core units. But the design of software to exploit parallel processing power in a correct and cost-effective way is a challenging task requiring a high degree of expertise. In 2017, Pérez and Yovine proposed a platform-agnostic parallel programming pattern called PCR, that eases writing parallel code. In this work, we formalize the PCR pattern in terms of TLA+ - a formal specification language for concurrent systems that is being used at places such as Intel, Amazon and Microsoft. We seek to provide a formal framework mainly for (1) expressing high level PCR designs and prove their functional correctness in the sense that their parallel computation computes a given mathematical function, and (2) being able to formally relate different PCR designs. In this way, we contribute to the state of the art in formal verification of parallel programs by leveraging TLA+-related tools to proving properties about high-level PCR-based algorithms such as their functional correctness and refinement.
eu_rights_str_mv openAccess
format article
id REDUM_b0aecffde0a83d9c3b36a5989d2f99d3
identifier_str_mv 10.36561/ING.24.8
instacron_str Universidad de Montevideo
institution Universidad de Montevideo
instname_str Universidad de Montevideo
language spa
network_acronym_str REDUM
network_name_str REDUM
oai_identifier_str oai:redum.um.edu.uy:20.500.12806/2586
publishDate 2023
reponame_str REDUM
repository.mail.fl_str_mv nolascoaga@um.edu.uy
repository.name.fl_str_mv REDUM - Universidad de Montevideo
repository_id_str 10501
rights_invalid_str_mv Derechos de autor 2023 José E. Solsona
Atribución 4.0 Internacional
spelling Solsona, José E.2023-06-30http://revistas.um.edu.uy/index.php/ingenieria/article/view/114610.36561/ING.24.8Physical limitations in processor design have made the computer industry shift from improving the speed of a single processor to increasing the number of processing core units. But the design of software to exploit parallel processing power in a correct and cost-effective way is a challenging task requiring a high degree of expertise. In 2017, Pérez and Yovine proposed a platform-agnostic parallel programming pattern called PCR, that eases writing parallel code. In this work, we formalize the PCR pattern in terms of TLA+ - a formal specification language for concurrent systems that is being used at places such as Intel, Amazon and Microsoft. We seek to provide a formal framework mainly for (1) expressing high level PCR designs and prove their functional correctness in the sense that their parallel computation computes a given mathematical function, and (2) being able to formally relate different PCR designs. In this way, we contribute to the state of the art in formal verification of parallel programs by leveraging TLA+-related tools to proving properties about high-level PCR-based algorithms such as their functional correctness and refinement.Limitaciones físicas en el diseño de microprocesadores han hecho que la industria de computadoras pase de mejorar la velocidad de un solo procesador a aumentar el número de unidades centrales de procesamiento. Pero el diseño de software para explotar la potencia de procesamiento paralelo de manera correcta y efectiva es una tarea desafiante que requiere un alto grado de experiencia. En 2017, Pérez y Yovine propusieron un patrón de programación paralela agnóstico de plataforma llamado PCR, que facilita la escritura de código paralelo. En este trabajo, formalizamos el patrón PCR en términos de TLA+ - un lenguaje de especificación formal para sistemas concurrentes que se está utilizando en lugares como Intel, Amazon y Microsoft. Buscamos proporcionar un marco formal principalmente para (1) expresar diseños PCR de alto nivel y probar su corrección funcional en el sentido de que su computación paralela calcula una función matemática dada, y (2) poder relacionar formalmente diferentes diseños PCR. De esta manera, contribuimos al estado del arte en la verificación formal de programas paralelos aprovechando las herramientas asociadas a TLA+ para probar propiedades sobre algoritmos PCR de alto nivel, como su corrección funcional y refinamiento.As limitações físicas no design do processador fizeram com que a indústria de computadores mudasse de melhorar a velocidade de um único processador para aumentar o número de unidades centrais de processamento. Mas o design de software para explorar o poder de processamento paralelo de maneira correta e econômica é uma tarefa desafiadora que requer um alto grau de especialização. Em 2017, Pérez e Yovine propuseram um padrão de programação paralela independente de plataforma chamado PCR, que facilita a escrita de código paralelo. Neste trabalho, formalizamos o padrão PCR em termos de TLA+ - uma linguagem de especificação formal para sistemas concorrentes que está sendo utilizada em locais como Intel, Amazon e Microsoft. Procuramos fornecer uma estrutura formal principalmente para (1) expressar designs de PCR de alto nível e provar sua correção funcional no sentido de que sua computação paralela calcula uma determinada função matemática e (2) ser capaz de relacionar formalmente diferentes designs de PCR. Dessa forma, contribuímos para o estado da arte na verificação formal de programas paralelos, aproveitando as ferramentas relacionadas ao TLA+ para provar propriedades sobre algoritmos baseados em PCR de alto nível, como correção e refinamento funcional.application/pdfapplication/epub+zipspaUniversidad de Montevideohttp://revistas.um.edu.uy/index.php/ingenieria/article/view/1146/1462http://revistas.um.edu.uy/index.php/ingenieria/article/view/1146/1463Derechos de autor 2023 José E. Solsonainfo:eu-repo/semantics/openAccessAtribución 4.0 InternacionalMemoria Investigaciones en Ingeniería; No. 24 (2023); 105-116Memoria Investigaciones en Ingeniería; Núm. 24 (2023); 105-116Memoria Investigaciones en Ingenieria; n. 24 (2023); 105-1162301-11062301-109210.36561/ING.24reponame:REDUMinstname:Universidad de Montevideoinstacron:Universidad de MontevideoAlgoritmos paralelosPatrones de diseñoMétodos formalesTLAParallel algorithmsDesign patternsFormal MethodsTLAAlgoritmos paralelosPadrões de designMétodos FormaisTLAOn the specification and verification of the PCR parallel programming pattern in TLA+Sobre la especificación y verificación del patrón de programación paralela PCR en TLA+Sobre a especificação e verificação do padrão de programação paralela PCR em TLA+info:eu-repo/semantics/articleinfo:eu-repo/semantics/publishedVersionPeer reviewed articlesArtículos evaluados por paresArtigos revistos por parespublishedVersioninfo:eu-repo/semantics/publishedVersion20.500.12806/25862024-07-17 09:46:47.915oai:redum.um.edu.uy:20.500.12806/2586Universidadhttps://um.edu.uy/https://redum.um.edu.uy/oai/requestnolascoaga@um.edu.uyUruguayopendoar:105012024-07-17T12:46:47REDUM - Universidad de Montevideofalse
spellingShingle On the specification and verification of the PCR parallel programming pattern in TLA+
Solsona, José E.
Algoritmos paralelos
Patrones de diseño
Métodos formales
TLA
Parallel algorithms
Design patterns
Formal Methods
TLA
Algoritmos paralelos
Padrões de design
Métodos Formais
TLA
status_str publishedVersion
title On the specification and verification of the PCR parallel programming pattern in TLA+
title_full On the specification and verification of the PCR parallel programming pattern in TLA+
title_fullStr On the specification and verification of the PCR parallel programming pattern in TLA+
title_full_unstemmed On the specification and verification of the PCR parallel programming pattern in TLA+
title_short On the specification and verification of the PCR parallel programming pattern in TLA+
title_sort On the specification and verification of the PCR parallel programming pattern in TLA+
topic Algoritmos paralelos
Patrones de diseño
Métodos formales
TLA
Parallel algorithms
Design patterns
Formal Methods
TLA
Algoritmos paralelos
Padrões de design
Métodos Formais
TLA
url http://revistas.um.edu.uy/index.php/ingenieria/article/view/1146