Explore chapters and articles related to this topic
Collaborative Signal and Information Processing: An Information-Directed Approach
Published in S. Sitharama Iyengar, Richard R. Brooks, Distributed Sensor Networks, 2016
Feng Zhao, Jie Liu, Juan Liu, Leonidas Guibas, James Reich
At the top level, the programming model should be expressive enough to describe application-level concerns, e.g. physical phenomena to be sensed, user interaction, and collaborative processing algorithms, without the need to manage node-level interactions. The programming model may be domain specific. For example, SAL [24] is a language for expressing and reasoning about geometries of physical data in distributed sensing and control applications; various biologically inspired computational models [25,26] study how complex collaborative behaviors can be built from simple components. The programming model should be structural enough to allow synthesis algorithms to exploit commonly occurring patterns and generate efficient code. TinyGALS [27] is an example of a synthesizable programming model for event-driven embedded software.
An Analysis of Distributed Programming Models and Frameworks for Large-scale Graph Processing
Published in IETE Journal of Research, 2022
Alejandro Corbellini, Daniela Godoy, Cristian Mateos, Silvia Schiaffino, Alejandro Zunino
From a software standpoint, an ad-hoc solution to distributed programming is often hard to maintain as well as prone to errors and performance issues [7]. In practice, developers rely on distributed processing solutions that provide abstractions that isolate the underlying distributed platform (both software and hardware). In fact, most of these solutions expose a programming model that simplifies algorithm development while, at the same time, enforce the correct use of the underlying platform. In this context, a programming model can be seen as a specification that the user must follow to develop an algorithm in a given framework. Additionally, these models usually include some operations to communicate tasks results in a platform-independent way, i.e. disregarding how and where these results are sent.