spack安装的子系统图生成
项目描述
Compspec Spack
Compspec(组合规范)是一种比较事物的规范和模型。Compspec spack 是一个插件,用于提取关于系统上安装的软件(对于系统或用户 spack 安装)的 spack 子系统元数据,可用于调度和其他目的。它输出Json Graph Format版本2。了解更多
- Compspec:发现和加载此插件的 Python 库。
用法
在此处安装 compspec 和插件
pip install compspec
pip install compspec-spack
然后使用 spack 运行提取。您需要提供要描述的 spack 安装的根目录
compspec extract spack /path/to/spack
保存到文件
compspec extract --outfile spack-subsystem.json spack /path/to/spack
compspec-spack 输出
{
"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"
}
请注意,即使我们在节点级别压缩了包(节点)的属性,此输出也可能非常大!我确实认为我们需要将库/二进制文件作为单独的节点,这就是为什么它会变得如此之大。
开发
如果您在 VSCode 中打开开发容器,您会在路径上找到 spack
$ which spack
这使我们能够轻松地开发和测试兼容性插件。您也可以仅在本地上克隆 spack。
待办事项
- 添加 Python 提取示例
- 测试 gloob gloob gloob
许可证
HPCIC DevTools 在 MIT 许可证的条款下分发。所有新的贡献都必须在此许可证下进行。
SPDX-License-Identifier: (MIT)
LLNL-CODE- 842614
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码发行版
compspec-spack-0.0.1.tar.gz (8.1 kB 查看哈希值)
构建发行版
compspec_spack-0.0.1-py3-none-any.whl (10.8 kB 查看哈希值)