Skip to main content

Compspec Spack

PyPI version

A compspec (Composition spec) is a specification and model for comparing things. Compspec spack is a plugin for extraction of spack subsystem metadata about software installed on a system (for a system or user spack install) that can be used for scheduling and other purposes. It output Json Graph Format version 2. To learn more:

  • Compspec: the Python library that discovers and loads this plugin.

Usage

Install compspec and the plugin here:

pip install compspec
pip install compspec-spack

Then run an extraction with spack. You will want to provide the root to the spack install to describe:

compspec extract spack /opt/spack

To save to file:

compspec extract --outfile spack-subsystem.json spack /opt/spack
compspec-spack output
{
    "graph": {
        "nodes": {
            "spack0": {
                "metadata": {
                    "type": "spack",
                    "basename": "spack",
                    "name": "spack0",
                    "id": 0,
                    "uniq_id": 0,
                    "containment": {
                        "paths": "/spack0"
                    },
                    "size": 1,
                    "unit": "",
                    "rank": 0,
                    "exclusive": false
                },
                "label": "spack0"
            },
            "package1": {
                "metadata": {
                    "type": "package",
                    "basename": "package",
                    "name": "package0",
                    "id": 1,
                    "uniq_id": 1,
                    "containment": {
                        "paths": "/spack0/package0"
                    },
                    "size": 1,
                    "unit": "",
                    "rank": 0,
                    "exclusive": false,
                    "attributes": {
                        "name": "perl",
                        "version": "5.38.0",
                        "platform": "linux",
                        "target": "skylake",
                        "os": "ubuntu22.04",
                        "vendor": "GenuineIntel",
                        "compiler_version": "11.4.0",
                        "compiler": "gcc"
                    }
                },
...
    "edges": [
        {
                "source": "package7721",
                "target": "library7786",
                "metadata": {
                    "name": {
                        "containment": "contains"
                    }
                }
            },
            {
                "source": "library7786",
                "target": "package7721",
                "metadata": {
                    "name": {
                        "containment": "in"
                    }
                }
            }
        ]
    },
    "metadata": {
        "install_name": "compat-experiment",
        "spack_root": "/home/vanessa/Desktop/Code/flux/spack/opt/spack"
    }

Note that this output can get very large, even when we compress attributes for packages (nodes) at the level of the node! I do think we need to have libraries / binaries as separate nodes, hence why it gets so big.

Development

If you open the Development container in VSCode, you'll find spack on the path:

$ which spack

This allows us to easily develop and test the compatibility plugin. You can also just clone spack locally.

TODO

  • Add python extraction example
  • Testing gloob gloob gloob

License

HPCIC DevTools is distributed under the terms of the MIT license. All new contributions must be made under this license.

See LICENSE, COPYRIGHT, and NOTICE for details.

SPDX-License-Identifier: (MIT)

LLNL-CODE- 842614

Metadata

Release files for compspec-spack 0.0.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for compspec-spack 0.0.13
File Size Uploaded
compspec_spack-0.0.13.tar.gz 7.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for compspec-spack 0.0.13
File Interpreter ABI Platform
compspec_spack-0.0.13-py3-none-any.whl Python 3 none any Details

Total release size: 15.7 kB

Release files / compspec_spack-0.0.13.tar.gz

Download URL compspec_spack-0.0.13.tar.gz
Size 7.8 kB
Tags Source
SHA-256 checksum
How to use checksums
11bef3e67cfb705aa553e95e784803341a2f8963ce733eb7cc1892b9ec15c7c1
BLAKE2b-256 checksum
How to use checksums
b711e363a8a5d695abe762f52fcf70a154b2f85915a566e70dc8ab28fcde7a9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.2

Release files / compspec_spack-0.0.13-py3-none-any.whl

Download URL compspec_spack-0.0.13-py3-none-any.whl
Size 7.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ac86bdd43a307f9ef914b17928458ff7f18857097bad8531ac3482c3a74863d2
BLAKE2b-256 checksum
How to use checksums
8610ce7bcf0ef6269a4340d046d958198b6d1ddafd9935760736cb9f348ccaf9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.2

Release history Release notifications | RSS feed

This release

0.0.13 This release

2 release files

0.0.12

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page