An approach to correctness of data parallel algorithms

The design of data parallel algorithms for fine-grained SIMD machines is a fundamental domain in today computer science. High standards in the specification and resolution of problems have been achieved in the sequential case. It seems reasonable to apply the same level of quality to data parallel p...

Descripción completa

Detalles Bibliográficos
Autores: Gabarró Vallès, Joaquim|||0000-0003-3771-2813, Gavaldà Mestre, Ricard|||0000-0003-4736-7179
Tipo de recurso: informe técnico
Fecha de publicación:1991
País:España
Institución:Universitat Politècnica de Catalunya (UPC)
Repositorio:UPCommons. Portal del coneixement obert de la UPC
Idioma:inglés
OAI Identifier:oai:upcommons.upc.edu:2117/328707
Acceso en línea:https://hdl.handle.net/2117/328707
Access Level:acceso abierto
Palabra clave:SIMD (Computer architecture)
Programming languages (Electronic computers)
SIMD machines
Programming languages
Axiomatic semantics
Stepwise refinement
SIMD (Arquitectura d'ordinadors)
Llenguatges de programació
Àrees temàtiques de la UPC::Informàtica
Descripción
Sumario:The design of data parallel algorithms for fine-grained SIMD machines is a fundamental domain in today computer science. High standards in the specification and resolution of problems have been achieved in the sequential case. It seems reasonable to apply the same level of quality to data parallel programs. It appears that most of the data parallel problems can be specified in terms of post and preconditions. These conditions characterize the overall state of the fine-grained processors in the initial and final states. In this paper: We present an axiomatic system to prove correctness of data parallel algorithms on fine-grained SIMD machines. We specify some data parallel problems like tree sum, radix sorting, and dynamic memory allocation. With this set of axioms we prove the correctness of programs solving the above problems. It seems that the framework to deal with data parallel problems is quite different from the other one dealing with problems of parallelism with multiple threads of control, like those solvable in CSP.