arXiv Science⌕ Search

arXiv · 1206.2775

Parallel Discrete Event Simulation with Erlang

Abstract

Discrete Event Simulation (DES) is a widely used technique in which the state of the simulator is updated by events happening at discrete points in time (hence the name). DES is used to model and analyze many kinds of systems, including computer architectures, communication networks, street traffic, and others. Parallel and Distributed Simulation (PADS) aims at improving the efficiency of DES by partitioning the simulation model across multiple processing elements, in order to enabling larger and/or more detailed studies to be carried out. The interest on PADS is increasing since the widespread availability of multicore processors and affordable high performance computing clusters. However, designing parallel simulation models requires considerable expertise, the result being that PADS techniques are not as widespread as they could be. In this paper we describe ErlangTW, a parallel simulation middleware based on the Time Warp synchronization protocol. ErlangTW is entirely written in Erlang, a concurrent, functional programming language specifically targeted at building distributed systems. We argue that writing parallel simulation models in Erlang is considerably easier than using conventional programming languages. Moreover, ErlangTW allows simulation models to be executed either on single-core, multicore and distributed computing architectures. We describe the design and prototype implementation of ErlangTW, and report some preliminary performance results on multicore and distributed architectures using the well known PHOLD benchmark.

Explore related subjects

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

Luca Toscano, Gabriele D'Angelo, Moreno Marzolla. 2014-07-24. Parallel Discrete Event Simulation with Erlang. https://doi.org/10.1145/2364474.2364487

Cite the original work for its findings. Save a collection to share your selection of sources.

KEEP EXPLORING

Related papers

Bitcoin-IPC: Scaling Bitcoin with a Network of Proof-of-Stake Subnets

Despite holding over $1.7T in value, Bitcoin scales poorly: Layer-1 (L1) processes only a few transactions per second, and Layer-2 (L2) solutions suffer from operational and liquidity fragmentation that requires external bridges for cross-chain connectivity. We present Bitcoin-IPC, a protocol that horizontally scales Bitcoin via permissionless, interconnected, programmable Proof-of-Stake L2 subnets staked in L1 BTC. Subnets leverage Bitcoin L1 for interconnectivity, settlement, and security, including Sybil protection, equivocating validator slashing, unilateral exit for honest stake, long-range attack protection, and compromised subnet firewalling. Bitcoin-IPC cross-subnet transfers involve only source/destination subnet validators and L1, with no external bridges or per-path liquidity lock-up. Embedded and batched in Bitcoin's witness mechanism, cross-subnet settlements can approach 6 vB per transfer, 23x less than a native L1 payment. Filling Bitcoin blocks with such batches corresponds to L1 monetary throughput of about 273 transfers per second, without modifying Bitcoin.

cs.DC↗

Do We Need Asynchronous SGD? On the Near-Optimality of Synchronous Methods

Modern distributed optimization methods mostly rely on traditional synchronous approaches, despite substantial recent progress in asynchronous optimization. We revisit Synchronous SGD and its robust variant, called $m$-Synchronous SGD, which can be interpreted as a method with a backup-worker strategy, and theoretically show that they are nearly optimal in many heterogeneous computation and communication scenarios, which is somewhat unexpected. We analyze the synchronous methods under random times and adversarial partial participation of workers, and prove that their time complexities are optimal in many practical regimes, up to logarithmic factors. While synchronous methods are not universal solutions and there exist tasks where asynchronous methods may be necessary, we show theoretically that they are sufficient for many modern heterogeneous computation and communication scenarios.

cs.DC↗

SIGMA: A Versatile Streaming Graph Partitioner for Vertex- and Edge-Balanced Distributed GNN Training

Distributed Graph Neural Network (GNN) training depends critically on how the underlying graph is partitioned across compute resources. Existing graph partitioners focus either on vertex partitioning or edge partitioning and typically optimize only a single communication objective (edge cut vertex cut) under a single balance constraint (vertex balance edge balance). We present SIGMA (Streaming Integrated Graph Partitioning with Multi-objective Awareness), a versatile streaming graph partitioner that supports both vertex and edge partitioning within a unified multi-objective, multi-constraint framework. Depending on the target distributed GNN system, SIGMA can be configured for edge-cut-oriented vertex partitioning or vertex-cut-oriented edge partitioning while simultaneously accounting for vertex and edge balancing. A clustering-based preprocessing stage incorporates global graph structure to improve partition quality while preserving the efficiency and scalability advantages of streaming partitioning. We evaluate SIGMA on six benchmark graphs spanning diverse domains and scales using two distributed GNN training systems: DistGNN (edge-partitioned) and DistDGL (vertex-partitioned). Across both settings, SIGMA consistently achieves strong performance, showing its ability to navigate complex trade-offs between partition quality, training efficiency, and memory consumption, frequently outperforming established streaming approaches and delivering competitive results against high-quality in-memory partitioners, with particularly strong results in edge-partitioned GNN training. These results demonstrate that a unified streaming partitioner can effectively address the communication, compute, and memory challenges of distributed GNN training across fundamentally different system architectures.

cs.DC↗