https://github.com/cemc-oper/hpc-model-go
A key-value model for HPC resources in CEMC
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (7.7%) to scientific vocabulary
Keywords
Repository
A key-value model for HPC resources in CEMC
Basic Info
Statistics
- Stars: 1
- Watchers: 1
- Forks: 2
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
hpc-model-go
A key-value model for HPC resources in CEMC/CMA. Including models for:
- Slurm
Installation
Use go get to install the latest version.
bash
go get github.com/cemc-oper/hpc-model-go
Getting Started
The following example uses hpc-model-go to extract job id and job owner from a squeue -o %all query.
Create category list:
go
categoryList := slurm.QueryCategoryList{
QueryCategoryList: hpcmodel.QueryCategoryList{
CategoryList: []*hpcmodel.QueryCategory{
{
ID: "sinfo.partition",
DisplayName: "Partition",
Label: "PARTITION",
PropertyClass: "StringProperty",
PropertyCreateArguments: []string{},
RecordParserClass: "TokenRecordParser",
},
{
ID: "sinfo.avail",
DisplayName: "Avail",
Label: "AVAIL",
PropertyClass: "StringProperty",
PropertyCreateArguments: []string{},
RecordParserClass: "TokenRecordParser",
},
{
ID: "sinfo.nodes",
DisplayName: "Nodes(A/I/O/T)",
Label: "NODES(A/I/O/T)",
PropertyClass: "StringProperty",
PropertyCreateArguments: []string{},
RecordParserClass: "TokenRecordParser",
},
{
ID: "sinfo.cpus",
DisplayName: "CPUs(A/I/O/T)",
Label: "CPUS(A/I/O/T)",
PropertyClass: "StringProperty",
PropertyCreateArguments: []string{},
RecordParserClass: "TokenRecordParser",
},
},
},
}
Get squeue -o %all output.
go
cmd := exec.Command("sinfo", params...)
//fmt.Println(cmd.Args)
var out bytes.Buffer
cmd.Stdout = &out
err := cmd.Run()
if err != nil {
return nil, fmt.Errorf("command ran error: %v", err)
}
s := out.String()
lines := strings.Split(s, "\n")
Build model from category list.
go
model, err := slurm.BuildModel(lines, categoryList, " ")
model contains data of all categories.
Test
Use go test to run all tests.
License
Copyright © 2019-2023, developers at cemc-oper.
hpc-model-go is licensed under The MIT License.
Owner
- Name: Operation System Division of CEMC ( CMA Earth System Modeling and Prediction Center)
- Login: cemc-oper
- Kind: organization
- Email: wangdp@cma.gov.cn
- Location: China
- Website: http://cemc.cma.cn/
- Repositories: 49
- Profile: https://github.com/cemc-oper
Focus on building, monitoring NWP operational systems and support NWP researching.
GitHub Events
Total
Last Year
Packages
- Total packages: 1
- Total downloads: unknown
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 1
proxy.golang.org: github.com/cemc-oper/hpc-model-go
- Homepage: https://github.com/cemc-oper/hpc-model-go
- Documentation: https://pkg.go.dev/github.com/cemc-oper/hpc-model-go#section-documentation
- License: MIT
-
Latest release: v0.0.0-20231222135130-7e6869b92a7e
published over 2 years ago