环境模块的子系统图生成
项目描述
Compspec Modules
compspec(组合规范)是一种比较事物的规范和模型。Compspec模块是用于提取系统上安装的软件的环境模块子系统元数据的插件。这可以是整个系统或特定用户的安装。该插件导出json图形格式(JGF),可用于调度和其他目的。要了解更多信息
- Compspec:发现和加载此插件的Python库。
注意,我目前正在解析环境模块,非常简单。如果需要,我们可以扩展到更复杂的/LMOD。
用法
在此安装compspec和插件
pip install compspec
pip install compspec-modules
这里有在devcontainer中获取大量测试模块的简单方法。
git clone https://github.com/shawfdong/modulefiles /tmp/modulefiles
export MODULEPATH=$MODULEPATH:/tmp/modulefiles
然后使用spack运行提取。您需要提供spack安装的根目录来描述
compspec extract modules
保存到文件
compspec extract --outfile module-subsystem.json modules
compspec-modules输出
{
"graph": {
"nodes": {
"environment-modules0": {
"metadata": {
"type": "environment-modules",
"basename": "environment-modules",
"name": "environment-modules0",
"id": 0,
"uniq_id": 0,
"containment": {
"paths": "/environment-modules0"
},
"size": 1,
"unit": "",
"rank": 0,
"exclusive": false
},
"label": "environment-modules0"
},
"module1": {
"metadata": {
"type": "module",
"basename": "module",
"name": "module0",
"id": 1,
"uniq_id": 1,
"containment": {
"paths": "/environment-modules0/module0"
},
"size": 1,
"unit": "",
"rank": 0,
"exclusive": false,
"attributes": {
"name": "dot",
"software": "dot"
}
},
"label": "module1"
},
"module2": {
"metadata": {
"type": "module",
"basename": "module",
"name": "module1",
"id": 2,
"uniq_id": 2,
"containment": {
"paths": "/environment-modules0/module1"
},
"size": 1,
"unit": "",
"rank": 0,
"exclusive": false,
"attributes": {
"name": "module-info",
"software": "module-info"
}
},
"label": "module2"
},
"module3": {
"metadata": {
"type": "module",
"basename": "module",
"name": "module2",
"id": 3,
"uniq_id": 3,
"containment": {
"paths": "/environment-modules0/module2"
},
"size": 1,
"unit": "",
"rank": 0,
"exclusive": false,
"attributes": {
"name": "modules",
"software": "modules",
"version": "5.4.0"
}
},
"label": "module3"
},
"module4": {
"metadata": {
"type": "module",
"basename": "module",
"name": "module3",
"id": 4,
"uniq_id": 4,
"containment": {
"paths": "/environment-modules0/module3"
},
"size": 1,
"unit": "",
"rank": 0,
"exclusive": false,
"attributes": {
"name": "module-git",
"software": "module-git"
}
},
"label": "module4"
},
"module5": {
"metadata": {
"type": "module",
"basename": "module",
"name": "module4",
"id": 5,
"uniq_id": 5,
"containment": {
"paths": "/environment-modules0/module4"
},
"size": 1,
"unit": "",
"rank": 0,
"exclusive": false,
"attributes": {
"name": "use.own",
"software": "use.own"
}
},
"label": "module5"
},
"module6": {
"metadata": {
"type": "module",
"basename": "module",
"name": "module5",
"id": 6,
"uniq_id": 6,
"containment": {
"paths": "/environment-modules0/module5"
},
"size": 1,
"unit": "",
"rank": 0,
"exclusive": false,
"attributes": {
"name": "null",
"software": "null"
}
},
"label": "module6"
},
"module7": {
"metadata": {
"type": "module",
"basename": "module",
"name": "module6",
"id": 7,
"uniq_id": 7,
"containment": {
"paths": "/environment-modules0/module6"
},
"size": 1,
"unit": "",
"rank": 0,
"exclusive": false,
"attributes": {
"name": "python/intelpython2",
"software": "python"
}
},
"label": "module7"
},
"module8": {
"metadata": {
"type": "module",
"basename": "module",
"name": "module7",
"id": 8,
"uniq_id": 8,
"containment": {
"paths": "/environment-modules0/module7"
},
"size": 1,
"unit": "",
"rank": 0,
"exclusive": false,
"attributes": {
"name": "python/anaconda3",
"software": "python"
}
},
"label": "module8"
},
"module9": {
"metadata": {
"type": "module",
"basename": "module",
"name": "module8",
"id": 9,
"uniq_id": 9,
"containment": {
"paths": "/environment-modules0/module8"
},
"size": 1,
"unit": "",
"rank": 0,
"exclusive": false,
"attributes": {
"name": "python/anaconda2",
"software": "python"
}
},
"label": "module9"
},
"module10": {
"metadata": {
"type": "module",
"basename": "module",
"name": "module9",
"id": 10,
"uniq_id": 10,
"containment": {
"paths": "/environment-modules0/module9"
},
"size": 1,
"unit": "",
"rank": 0,
"exclusive": false,
"attributes": {
"name": "python/intelpython3",
"software": "python"
}
},
"label": "module10"
},
"module11": {
"metadata": {
"type": "module",
"basename": "module",
"name": "module10",
"id": 11,
"uniq_id": 11,
"containment": {
"paths": "/environment-modules0/module10"
},
"size": 1,
"unit": "",
"rank": 0,
"exclusive": false,
"attributes": {
"name": "python/rh-python36",
"software": "python"
}
},
"label": "module11"
},
"module12": {
"metadata": {
"type": "module",
"basename": "module",
"name": "module11",
"id": 12,
"uniq_id": 12,
"containment": {
"paths": "/environment-modules0/module11"
},
"size": 1,
"unit": "",
"rank": 0,
"exclusive": false,
"attributes": {
"name": "PrgEnv-intel/2019.1.053",
"software": "PrgEnv-intel",
"version": "2019.1.053"
}
},
"label": "module12"
},
"module13": {
"metadata": {
"type": "module",
"basename": "module",
"name": "module12",
"id": 13,
"uniq_id": 13,
"containment": {
"paths": "/environment-modules0/module12"
},
"size": 1,
"unit": "",
"rank": 0,
"exclusive": false,
"attributes": {
"name": "PrgEnv-pgi/llvm_18.10",
"software": "PrgEnv-pgi",
"version": "18.10"
}
},
"label": "module13"
},
...
},
"metadata": {
"install_name": "compat-experiment"
}
}
开发
如果您在VSCode中打开开发容器,您会发现已安装环境模块
$ module avail
这使我们能够轻松开发和测试兼容性插件。
许可证
HPCIC DevTools遵循MIT许可证进行分发。所有新的贡献都必须在此许可证下进行。
SPDX-License-Identifier: (MIT)
LLNL-CODE- 842614
项目详情
关闭
compspec-modules-0.0.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 16e1bb28b8d28ee1b4377ac5acae257d65ec61740e26ed72b77c1471596e29dd |
|
MD5 | ff8919fe2e73e494594cd879c1c96042 |
|
BLAKE2b-256 | 461f0c99e2c64980c5e34115d5f7c51b4d0ca68ba13ce0e4b51ad42f8003ee4b |
关闭
compspec_modules-0.0.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 86ee0cd9b128f4c74fa33f3adc75c606d12856c912cd5a9bf84da120debe7ae9 |
|
MD5 | fca2993f4c9c4120f99da437365c4420 |
|
BLAKE2b-256 | f40041a855f21ce1ec7d1cb2ce6e5e1a58ddf62e971323b3535c171b053eb09c |