Programming Data Structures for Large-Scale Desktop Simulations of Complex Systems

05/10/2022
by   Patrik Christen, et al.
0

Studying complex systems requires running large-scale simulations over many iterations in time. It is therefore important to provide efficient implementations. The present study borrows philosophical concepts from Gilbert Simondon to identify data structures and algorithms that have the biggest impact on running time and memory usage. These are the entity e-tuple ℰ and the intertwined update function ϕ. Focusing on implementing data structures in C#, ℰ is implemented as a list of objects according to current software engineering practice and as an array of pointers according to theoretical considerations. Cellular automata simulation with 10^9 entities over one iteration reveal that object-list with dynamic typing and multi-state readiness has a drastic effect on running time and memory usage, especially dynamic as it has a big impact on the evolution time. Pointer-arrays are possible to implement in C# and are more running time and memory efficient as compared to the object-list implementation, however, they are cumbersome to implement. In conclusion, avoiding dynamic typing in object-list based implementations or using pointer-arrays gives evolution times that are acceptable in practice, even on desktop computers.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/30/2021

Breaking the Linear Iteration Cost Barrier for Some Well-known Conditional Gradient Methods Using MaxIP Data-structures

Conditional gradient methods (CGM) are widely used in modern machine lea...
research
05/19/2018

On testing substitutability

The papers hatfimmokomi11 and azizbrilharr13 propose algorithms for test...
research
07/10/2023

Predicting Memory Demands of BDD Operations using Maximum Graph Cuts (Extended Paper)

The BDD package Adiar manipulates Binary Decision Diagrams (BDDs) in ext...
research
08/23/2022

Exchangeable Laws in Borel Data Structures

Motivated by statistical practice, category theory terminology is used t...
research
02/07/2018

Optimal data structures for stochastic driven simulations

Simulations where we have some prior information on the probability dist...
research
10/25/2019

Implementing choreography extraction

Choreography extraction deals with the generation of a choreography (a g...
research
01/01/2021

Chunk List: Concurrent Data Structures

Chunking data is obviously no new concept; however, I had never found an...

Please sign up or login with your details

Forgot password? Click here to reset