A parallel data-structure for modular programming of triangulated computing media

Our long-term project involves performing general-purpose computation on 2D amorphous computing media, which consist of arbitrary many, small, identical processing elements that are homogeneously spread in 2D Euclidian space, and that communicate locally in space. While the minimal assumptions on ha...

Full description

Saved in:
Bibliographic Details
Published in:Natural computing Vol. 22; no. 4; pp. 753 - 766
Main Author: Gruau, Frédéric
Format: Journal Article
Language:English
Published: Dordrecht Springer Netherlands 01.12.2023
Springer Verlag
Subjects:
ISSN:1567-7818, 1572-9796
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:Our long-term project involves performing general-purpose computation on 2D amorphous computing media, which consist of arbitrary many, small, identical processing elements that are homogeneously spread in 2D Euclidian space, and that communicate locally in space. While the minimal assumptions on hardware provide the fascinating perspective of arbitrary large computing power, they also make programming notoriously difficult. Furthermore, our project involves simulating objects extended in 2D-space, called “blobs”. Maintaining the connectedness of blobs while they move in space adds another layer of difficulty since it demands to process the topology of 2D space. This paper describes a new parallel data structure that can simplify the programming task, in this context. In computer graphics, processing related to 2D topology is performed by using triangle meshes. We consider synchronous media whose underlying network is also a triangle mesh. Our data structure, derived from computer graphics, is anchored on that mesh so that its operations can be compiled on the medium. More precisely, our compiler produces a circuit of logic gates, which enables a high-performance simulation, in the case of crystalline media (Cellular Automata). We demonstrate the expressiveness of the data structure’s operation by using an incremental and modular programming style. We program, first small, then larger building-block functions, and re-use them. Blobs are implemented and re-used to compute the Voronoï diagram. What is the scope of the data-structure? This poses the question of whether there exists a universal set of primitives able to program any processing specified only in terms of 2D-geometry.
ISSN:1567-7818
1572-9796
DOI:10.1007/s11047-022-09906-1