Archspec aims at providing a standard set of human-understandable labels for various aspects of a system architecture like CPU, network fabrics, etc. and APIs to detect, query and compare them.
This project grew out of Spack and is currently under active development. At present it supports APIs to detect and model compatibility relationships among different CPU microarchitectures.
The archspec
Python package needs poetry to
be installed from VCS sources. The preferred method to install it is via
its custom installer outside of any virtual environment:
$ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
You can refer to Poetry's documentation
for further details or for other methods to install this tool. You'll also need tox
to run unit test:
$ pip install --user tox
Finally you'll need to clone the repository:
$ git clone --recursive https://github.com/archspec/archspec.git
Once you have your environment ready you can run archspec
unit tests
using tox
from the root of the repository:
$ tox
[ ... ]
py27: commands succeeded
py35: commands succeeded
py36: commands succeeded
py37: commands succeeded
py38: commands succeeded
pylint: commands succeeded
flake8: commands succeeded
black: commands succeeded
congratulations :)
If you are referencing archspec
in a publication, please cite the following
paper:
- Massimiliano Culpo, Gregory Becker, Carlos Eduardo Arango Gutierrez, Kenneth
Hoste, and Todd Gamblin.
archspec
: A library for detecting, labeling, and reasoning about microarchitectures. In 2nd International Workshop on Containers and New Orchestration Paradigms for Isolated Environments in HPC (CANOPIE-HPC'20), Online Event, November 12, 2020.
Archspec is distributed under the terms of both the MIT license and the Apache License (Version 2.0). Users may choose either license, at their option.
All new contributions must be made under both the MIT and Apache-2.0 licenses.
See LICENSE-MIT, LICENSE-APACHE, COPYRIGHT, and NOTICE for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
LLNL-CODE-811653