Releases: nkallima/Synch-Framework
Version 2.3.1
The most important changes/improvements of v2.3.1 are the following:
- Improvements on
validate.sh
for better error reporting. - Enhancements on
README.md
. - Improved logo.
Version 2.3.0
The most important changes/improvements of v2.3.0 are the following:
- Introducing
validate.sh
, a smoke/validation script that verifies many of the provided data structures. - A few improvements on some benchmarks in order to be conformed with
validate.sh
. - Introducing the logo of the repository.
- Enhancements on
README.md
.
Version 2.2.1
The most important changes/improvements of v2.2.1 are the following:
- Executing
Pause
instructions on spinning-loops for the X86 architecture. Spin-locks and some lock-free algorithms may have performance benefits in SMT architectures. - Documentation improvements.
Version 2.2.0
This is the v2.2.0 release. This is the most stable and high-performant version of our source, so far.
The most important changes/improvements of v2.2.0 are the following:
- A new implementation of the pool.c functionality. Most stack and queue implementations support memory reclamation, the only exception are the simstack, simqueue, lfstack and msqueue implementations.
- Code clean-up for the Sim family of algorithms.
- Improvements on the H-Synch family of algorithms.
- Enhanced NUMA support for the NUMA-aware data-structures.
- Homogenized code for stack and queue implementations.
- Better output for bench.sh script.
- Numerous performance optimizations and bug-fixes, especially in machines with weak memory models.
- Documentation improvements.
Version 2.1.1
The most important changes/improvements of v2.1.1 are the following:
- Improving the output messages of build-system.
- Adding support for clang in Makefile (i.e.,use make clang for building the sources with the clang compile).
- A few bug-fixes and minor improvements.
- Dropped support for Intel icc compiler and added support for Intel icx compiler. Tested with Intel(R) oneAPI DPC++ Compiler 2021.1.2.
Version 2.1.0
The most important changes/improvements of v2.1.0 are the following:
- Significant enhancements on bench.sh.
- New folder/file library structure.
- ftime is replaced by clock_gettime.
Version 2.0.1
This is mostly a stability release. The most important changes/improvements are the following:
- Removing dead-code from the unsupported sparc/solaris architecture.
- PAPI and NUMA libraries automatically used depending user's settings in config.h.
- Pid fix for the Sync family of algorithms.
- Code-cleanup.
Version 2.0
This is the v2.0 version of the code. This version introduces numerous bug fixes and features. In short, some of the features/enhancements of this release are the following:
- Initial support for ARM-V8 and RISC-V machine architectures.
- Significant performance optimizations for the Synch family of algorithms on modern NUMA machines.
- The produced binaries can run with any number of threads/fibers without re-compilation.
- All the produced benchmark binaries can accept arguments, such as the number of threads, the number of benchmark's iterations, etc.
- Enhancements on how the runtime handles the NUMA characteristics of modern multiprocessors.
- Better thread affinity policy in NUMA machines.
- A new script called run_all.sh is provided for automatically testing all the produced binaries.
- A .clang-format file is provided in order to maintain the styling-consistency of the source code.
- Numerous performance optimizations and bug-fixes.
Towards v2.0
This version introduces a series of bug fixes and performance improvements.
More testing has been performed in RISC-V and aarch64 machine architectures.
Initial support for ARM-V8 and RISC-V architectures
This release is successfully tested in X86_64, ARM-V8 and RISC-V machine architecture.
However, it is optimized in terms of performance only for the X86_64 architecture.