Skip to main content

Subsystem graph generation for a spack install

Project description

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 /path/to/spack

To save to file:

compspec extract --outfile spack-subsystem.json spack /path/to/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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

compspec-spack-0.0.1.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

compspec_spack-0.0.1-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file compspec-spack-0.0.1.tar.gz.

File metadata

  • Download URL: compspec-spack-0.0.1.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.5

File hashes

Hashes for compspec-spack-0.0.1.tar.gz
Algorithm Hash digest
SHA256 a3bbee41c6408550cb56b796ef3e39db037ecb761ce6b20633993f880938f4fa
MD5 ece1605ebe1876a4a0c6c09ccc7a0347
BLAKE2b-256 37e92466e47af0c47f4ae2090eb5928b51d1dd8fc8816af2060c6c85f396a414

See more details on using hashes here.

File details

Details for the file compspec_spack-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for compspec_spack-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b329fa37b6de413114ba8eb97990bb1f65e8ac1e94edef9cc6435db24228f756
MD5 7c17abe9f7333b6750ec5a8b71fab35a
BLAKE2b-256 2a32f5bdf08241c76ec729b137e25b353437b0401320834e842b4eb1d9ba0846

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page