Skip to content

Releases: hpcgarage/spatter

Spatter 2.1 Release Notes

05 May 01:12
ec89237

Choose a tag to compare

Spatter 2.0 Release Notes

The 2.1 release of Spatter is a bugfix release that fixes several issues seen in the 2.0 release. Specifically, this release includes these changes:

  • Make OpenMP dense buffers a command line option with the --dense-buffers flag.
  • Initialize data buffers in parallel for the OpenMP backend
  • Fix a performance regression in the OpenMP backend seen with Sapphire Rapids systems
  • Readd the --atomic-thread-fence flag for the OpenMP backend.
  • Update GS kernel name to gs from sg to be consistent for all test scenarios.
  • Update CMakeLists to include an install option. This option enables the usage of Spatter as a Spack package.
  • Fixes to the MPI GitHub workflow and security updates for the GettingStarted notebook workflow.

This release includes commits from Patrick Lavin, Connor Radelja, and Jeff Young as well as important feedback from contributors at Los Alamos National Labs through their work with Spatter.

Spatter 2.0 Release Notes

04 Oct 01:48
58808ff

Choose a tag to compare

Spatter 2.0 Release Notes

The 2.0 release of Spatter brings several important changes to the codebase, some of which are summarized in the MEMSYS 2024 paper, by Sheridan, et al., "A Workflow for the Synthesis of Irregular Memory Access Microbenchmarks". Specifically, this release includes these major changes:

  • Switch from C to C++ for the codebase, enabling more robust configuration options
  • Refactor of the CMake infrastructure
  • Different parsing mechanisms and deprecation of older parsing code requiring third-party submodules
  • Improvements to the CUDA backend including support for longer patterns and support for GPU throughput testing
  • MPI support for weak and strong scaling test scenarios
  • Removal of integrated support for PAPI
  • Addition of contributors guide, improved GH actions for testing, and templates for PRs and new issues.
  • Updates to the Spatter wiki to describe changes in Spatter 2.0 that may affect benchmark performance and a new guide for developing new backends.

This release includes commits from Patrick Lavin, Jeff Young, Julio Agustin Vaca Valverde, Jered Dominguez-Trujillo, and Connor Radelja. We are greatly appreciative of the support of contributors from Los Alamos National Labs through their work with Spatter as well as new work on generating input patterns with GS Patterns.

v1.1

24 Jul 17:47
ac7f345

Choose a tag to compare

This release contains bug fixes after the 1.0 release in 2023 and is intended to capture the state of Spatter before the 2.0 refactor.

v1.0

22 Sep 23:57
77c9270

Choose a tag to compare

Spatter 1.0 Release Notes

After 6 years of development, we are ready to release Spatter version 1.0! Over the years we have gone through a number of input and output formats, but they have not changed significantly in several years now, so we are confident that they are stable enough for our first major release.

Building Spatter has been a collaborative effort. This release includes commits from Patrick Lavin, Jeff Young, Julio Agustin Vaca Valverde, Jered Dominguez-Trujillo, James Wood, Vincent Huang, Sudhanshu Agarwal, Jeff Inman, and Jeff Hammond. Thank you to all of you for your effort and to those who submitted issues and advised us on the project as well.

New Features

Since version 0.6, Spatter has added several major new features:

  • multi-gather, multi-scatter: the multi- kernels perform two levels of indirection, e.g. multi-gather is dest[i] = src[idx1[idx2[i]] and multi-scatter is analogous. This greatly expands the class of patterns that Spatter can represent.
  • Binary trace support allows for compressed inputs to be used with Spatter to represent synthetic and application traces.
    MPI support allows Spatter to run the same pattern on many ranks and allows for weak scaling studies
  • CMake support has been modernized and configuration is greatly simplified. Bespoke configuration scripts for different compilers/backends have been folded into CMake options.
  • Testing and CI/CD has been greatly improved. The GPU backend is now included in the test suite, and we have expanded the set of automated tests used for the CPU backend as well.
  • Documentation now includes a Getting Started Jupyter notebook to demonstrate how to use the benchmark and how to plot outputs.

Ongoing Work

We are still implementing a CI solution to automatically test commits to the GPU backend.