Skip to content

Releases: ROOT-Sim/core

v3.0.0-rc1

24 Apr 11:05
Compare
Choose a tag to compare

What's Changed

  • Optionally build without MPI by @Piccions in #73
  • Print logo only on rank zero by @alessandropellegrini in #76
  • Install targets for the rscore library and ROOT-Sim.h by @Piccions in #79
  • Test framework rework by @Piccions in #78
  • Setting up Code Analysis Actions by @alessandropellegrini in #82
  • Statistics subsystem: new available statistics, plotting scripts, tests by @Piccions in #74
  • Bugfixes: SetState() consistency during silent processing & GVT values lower than 1.0 in the processing loop by @Piccions in #84
  • Higher quality PRNG seeding by @Piccions in #83
  • Deferred fossil collection by @Piccions in #86
  • Caching timestamps for improved straggler detection by @Piccions in #87
  • Causality check bugfix in the parallel ScheduleNewEvent() by @Piccions in #88
  • Fixed the stats counts of anti-messages and rolled-back messages by @Piccions in #92

Full Changelog: v3.0.0-beta...3.0.0-rc1

v3.0.0-beta

21 Jul 07:35
9398259
Compare
Choose a tag to compare

What's Changed

Full Changelog: v3.0.0-alpha.5...v3.0.0-beta

v3.0.0-alpha.5

29 Jun 16:15
2277d9c
Compare
Choose a tag to compare

What's Changed

Full Changelog: v3.0.0-alpha.4...v3.0.0-alpha.5

v3.0.0-alpha.4

28 Jun 15:28
5f0fba8
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 3.0.0-alpha.3...v3.0.0-alpha.4

v3.0.0-alpha.3

24 Jun 23:21
fe0c15b
Compare
Choose a tag to compare

What's Changed

Full Changelog: 3.0.0-alpha2...3.0.0-alpha.3

v3.0.0-alpha2

24 Jun 23:20
17116f7
Compare
Choose a tag to compare

What's Changed

Full Changelog: 3.0.0-alpha...3.0.0-alpha2

v3.0.0-alpha

24 Jun 23:18
246f598
Compare
Choose a tag to compare

Released on 2021-02-11

This is the first release of the 3.x version of ROOT-Sim. This is a full rewrite of the simulation core, which is neater, smaller, and faster.

What's Changed

Full Changelog: 2.1.0...3.0.0-alpha

v2.1.0

24 Jun 23:17
Compare
Choose a tag to compare

Released on 2020-10-28

This is a release carrying mostly bugfix, code cleanup, and performance improvements to the code base.

v2.0.0

24 Jun 23:15
Compare
Choose a tag to compare

Released on 2018-12-06

This is the stable 2.0 release of ROOT-Sim.

All the code has been properly documented. The library is accompanied by a set of rules to help the distributed development effort, and prevent something to screw up the whole work. A wiki has been added to the online repository, and the website has been significantly restructured in a way to be automatically sync'ed with the code repository (as far as possible).

Added

  • ABM Support: A new set of semantically rich API has been added to ROOT-Sim. This API significantly simplifies the development of Agent-Based Models, and transparently supports all the activities required to support rollback and restore of simulation objects. The model can specify portions of the state of a simulation object which must be transparently synchronized with other LPs in the system, also on remote distributed nodes.
  • JSON-based configuration of models: A JSON parser has been introduced in the library. This can be used to configure, e.g., custom topologies. Also, simulation models can lever this parser to implement their own configuration files.
  • Continuous Integration: Continuous integration has been significantly refactored, allowing to stress test the project much more and realigning to newer versions of the system software. Code coverage has also been supported.
  • Tests and Unit Tests: A test script has been introduced, which relies on some unit tests (currently, only DyMeLoR is subject to a unit test) and some models to cover much of the code base while testing.
  • Automatic deploy of website and documentation: Continuous Integration has been rearranged to automatically generate the documentation and update some parts of the website from the content of the repository, any time that a new merge is made in develop or in master.

Changed

  • Argument parsing: We have now switched to argp to parse command line arguments. This has the benefit that also simulation models can implement their parsers almost at no cost. Some models have already been refactored to use this facility.
  • Topology library: The topology library has been significantly enhanced. New topologies have been added. In particular, it is now possible to specify arbitrary topologies, represented as graphs with edges which carry either a probability or a weight. These values are used by API functions such as FindReceiver()to find the destination of a message. Topologies can change at any time during simulation, and they are transparently rolled back if needed.
  • Checkpoint/Restore: The code supporting state saving has been refactored. In particular, the code has been modified to completely separate the routines which handle platform-level data (such as rollbackable libraries) and simulation model buffers. This separation of concerns has significantly cleaned up the code.
  • Faster ULTs: This release explicitly targets x86_64 systems. Therefore, we decide to break portability, remove the portable signal-based approach for creating ULTs, and implemented an extremely fast context setup routine. This change has cut the time to setup LPs by at least a factor of 1000.
  • Contributing Guidelines: Contributing guidelines have been added to the project. The code base has been significantly cleaned up and documented, to comply with the new guidelines.

Deprecated

  • NUMA Optimization: The NUMA subsystem has been found to be suboptimal under some circumstances. The current research effort in this direction tells that a more comprehensive approach is feasible, and more effective. Since the new subsystem will basically constitute a complete rewrite of the previous, in this cleaner release we have deprecated the old subsystem.
  • Parameter Parsing API: The new argp-based parser made the older code to parse simulation models parameters obsolete, and it has thus been deprecated.
  • Treiber Stack: The Treiber stack was being anyhow the bottleneck of the slab allocator. A different approach is under study, so this data structure has been deprecated from the simulator.

Removed

  • Event & Cross State Synchronization: ECS has been temporarily compiled-out of ROOT-Sim. Some of the code base is still in the repository anyhow. A complete cleanup and enhancement of the subsystem is due for the next release.
  • Buddy System and Segment Allocator: A bug in the buddy system has been found, but it was not possible to fix it in time for the current release. Considering that this is only 100% necessary for ECS (which has also been removed), and considering that the performance penalty by removing it is not that dramatic, it has been temporarily disabled (although it is still in the code base). This will be reintroduced in the next release.

2.0.0-alpha2

24 Jun 23:13
Compare
Choose a tag to compare

Released on 2018-02-01

This is the second alpha release for version 2.0.0.

In this release, several performance and correctness minor bugs have been fixed.

The preliminary experimentation has shown, under certain workloads, a 3x speedup with respect to the previous alpha.

Added

  • Treiber Stack: a non-blocking Treiber stack has been added, to implement a retirement queue for message buffers, rather than freeing immediately from the slab, in order to reduce the memory-release bottleneck.

Changed

  • Message Channel: switched to a (M, 1) register.
  • Slab Allocator: operations have been significantly optimized.