The complexity of networked systems, particularly interconnected networks, necessitates advanced simulation frameworks to accurately emulate real-world dynamics, especially in the context of big data and high-performa...
详细信息
The complexity of networked systems, particularly interconnected networks, necessitates advanced simulation frameworks to accurately emulate real-world dynamics, especially in the context of big data and high-performance computing. Most software used for simulation and temporal inference usually falls short in large data and optimization, since it is generally used in particular contexts, like simulating the dynamics of a specific group of entities, such as cellular and community interactions. We present ”Multi-Agent Adaptive Simulation Framework for Evolution in Networks of Networks” (MASFENON). MASFENON employs a temporal multi-layered approach to simulate and analyze dynamic processes in interconnected networks. The framework leverages parallel programming techniques for matrix and linear algebra operations and distributed and reactive programming for agent and environment communication, all implemented in C++ using the Message Passing Interface (MPI) standard. MASFENON has been validated against several common network models and could simulate the behavior of real systems in the context of epidemic simulations (See [ 4 ]). The framework demonstrates sublinear speedup and scalability with network size. The implementation is open source and available in a regularly updated GitHub repository1. MASFENON's integration of MPI and distributed programming techniques provides a powerful and versatile tool for modeling complex network interactions and dynamics. Its capabilities extend beyond traditional models, offering new insights and applications in network science.
From the point of view of distributed programming one of the most interesting communication mechanisms is associative tuple matching in a shared dataspace, as exemplified in the Linda coordination language. Linda has ...
详细信息
From the point of view of distributed programming one of the most interesting communication mechanisms is associative tuple matching in a shared dataspace, as exemplified in the Linda coordination language. Linda has been used as a coordination layer to parallelize several sequential programming languages, such as C and Scheme. In this paper we study the combination of Linda with a logic language, whose result is the language Extended Shared Prolog (ESP). We show that ESP is based on a new programming model called PoliS, that extends Linda with Multiple Tuple Spaces. A class of applications for ESP is discussed, introducing the concept of ''open multiple tuple spaces''. Finally, we show how the distributed implementation of ESP uses the network version of Linda's tuple space.
The domain of industrial automation increasingly requires intelligent control, distributed real-time behaviors, and greater degrees of scalability. This has led to the creation of a new realtime, distributed, object-o...
详细信息
The domain of industrial automation increasingly requires intelligent control, distributed real-time behaviors, and greater degrees of scalability. This has led to the creation of a new realtime, distributed, object-oriented virtual machine focused on the management of hybrid dynamic (i.e., continuous and discrete event) systems. This paper provides an outline of the virtual machine's programming model and some of its implications on the underlying execution environment.
This paper presents a framework for the static specification and safe programming of message passing protocols where the number and kinds of participants are dynamically instantiated. We develop the first theory of di...
详细信息
This paper presents a framework for the static specification and safe programming of message passing protocols where the number and kinds of participants are dynamically instantiated. We develop the first theory of distributed multiparty session types (MPST) to support parameterised protocols with indexed roles-our framework statically infers the different kinds of participants induced by a protocol definition as role variants, and produces decoupled endpoint projections of the protocol onto each variant. This enables safe MPST-based programming of the parameterised endpoints in distributed settings: each endpoint can be implemented separately by different programmers, using different techniques (or languages). We prove the decidability of role variant inference and well-formedness checking, and the correctness of projection. We implement our theory as a toolchain for programming such role-parametric MPST protocols in Go. Our approach is to generate API families of lightweight, protocol- and variant-specific type wrappers for I/O. The APIs ensure a well-typed Go endpoint program (by native Go type checking) will perform only compliant I/O actions w.r.t. the source protocol. We leverage the abstractions of MPST to support the specification and implementation of Go applications involving multiple channels, possibly over mixed transports (e.g., Go channels, TCP), and channel passing via a unified programming interface. We evaluate the applicability and run-time performance of our generated APIs using microbenchmarks and real-world applications.
We propose a programming language, called PCML5, for building distributed applications with distributed access control. Target applications include web-based systems in which programs must compute with stipulated reso...
详细信息
ISBN:
(纸本)9781605588919
We propose a programming language, called PCML5, for building distributed applications with distributed access control. Target applications include web-based systems in which programs must compute with stipulated resources at different sites. In such a setting, access control policies are decentralized (each site may impose restrictions on access to its resources without the knowledge of or cooperation with other sites) and spatially distributed (each site may store its policies locally). To enforce such policies PCML5 employs a distributed proof-carrying authorization framework in which sensitive resources are governed by reference monitors that authenticate principals and demand logical proofs of compliance with site-specific access control policies. The language provides primitive operations for authentication, and acquisition of proofs from local policies. The type system of PCML5 enforces locality restrictions on resources, ensuring that they can only be accessed from the site at which they reside, and enforces the authentication and authorization obligations required to comply with local access control policies. This ensures that a well-typed PCML5 program cannot incur a runtime access control violation at a reference monitor for a controlled resource.
Parallel programming and distributed programming involve substantial amounts of boilerplate code for process management and data synchronisation. This leads to increased bug potential and often results in unintended n...
详细信息
Parallel programming and distributed programming involve substantial amounts of boilerplate code for process management and data synchronisation. This leads to increased bug potential and often results in unintended non-deterministic program behaviour. Moreover, algorithmic details are mixed with technical details concerning parallelisation and distribution. Process calculi are formal models for parallel and distributed programming but often leave details open, causing a gap between formal model and implementation. We propose a fully deterministic process calculus for parallel and distributed programming and implement it as a domain-specific language in Haskell to address these problems. We eliminate boilerplate code by abstracting from the exact notion of parallelisation and encapsulating it in the implementation of our process combinators. Furthermore, we achieve correctness guarantees regarding process composition at compile time through Haskell's type system. Our result can be used as a high-level tool to implement parallel and distributed programs.
This article presents laboratory exercises and project assignments developed to teach concepts of concurrent and distributed programming in Java. The exercises and assignments cover important topics determined after a...
详细信息
This article presents laboratory exercises and project assignments developed to teach concepts of concurrent and distributed programming in Java. The exercises and assignments cover important topics determined after an analysis of topics that are often taught in different universities. During the exercises, students reengineer the general purpose discrete event simulator named SLEEP (Simulation, Logic, Execution, prEsentation, Physics). A multilayer organization of the SLEEP simulator enables coverage of the important topics in a coherent manner. In order to support parallel execution in SLEEP students start to reengineer the simulator layers with an exercise related to concurrent programming, followed by two exercises related to distributed programming, and finish with an exercise related to grid computing. The exercises follow the principles of error management training and teach students what common errors are and how to overcome them. The article also describes a practical experience with the use of SLEEP on a concurrent and distributed programming course over a 3-year period. The results show a positive impact on both students' satisfaction and performance. (c) 2011 Wiley Periodicals, Inc. Comput Appl Eng Educ 22: 39-51, 2014
Grading programming assignments of courses on distributed programming can greatly benefit from extensive testing, especially if quality aspects such as portability, robustness, security, and performance have to be eva...
详细信息
Grading programming assignments of courses on distributed programming can greatly benefit from extensive testing, especially if quality aspects such as portability, robustness, security, and performance have to be evaluated. This paper presents a framework that was developed at the Turin Polytechnic, Turin, Italy, to enable seamless and fast implementation of Web portals for automated management of student programming assignments. By using a computational grid facility to schedule testing jobs on different hosts, the framework offers high flexibility and scalability, thus enabling computationally intensive tests and some kinds of distributed tests, such as portability tests and field tests, which otherwise would be difficult to automate. The grid can be made of ordinary and even nondedicated or dismissed PCs, which, according to the authors' experience, is enough to offer students online extensive testing services. The framework was successfully used in two courses on distributed programming, located at different sites, partially overlapped in time, and attended by a total of 60 students. However, the framework should be scalable enough to work with increasing numbers of students and courses.
distributed programming can be greatly simplified by language support for distributed communication, such as that provided by remote procedure call (RPC) or remote object invocation. This paper examines design and imp...
详细信息
distributed programming can be greatly simplified by language support for distributed communication, such as that provided by remote procedure call (RPC) or remote object invocation. This paper examines design and implementation issues in these systems, and focuses on the influence of the communication system on a distributed program. To make the discussion concrete, we introduce a single application as implemented in two environments: Modula-2+, an extension of Modula-2 with RPC, and Emerald, an object-based language that supports remote object invocation. We show that small differences in the implementation of the communication system can have a significant impact on how distributed applications are structured.
This paper describes the design and implementation of a kernel for the distributed programming language StarMod. The distributed programming kernel was written in a subset of StarMod supported by a concurrent programm...
详细信息
This paper describes the design and implementation of a kernel for the distributed programming language StarMod. The distributed programming kernel was written in a subset of StarMod supported by a concurrent programming kernel. Kernel issues addressed include process representation, I/O device management, signal semantics, system utilities, network communication and the implementation of high-level language communication primitives. We conclude with a summary of our experiences in the development of a ‘bare machine’ kernel for a network of microprocessors.
暂无评论