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+
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 |