https://github.com/cemc-oper/hpc-model-go

A key-value model for HPC resources in CEMC

https://github.com/cemc-oper/hpc-model-go

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

cemc hpc nwpc slurm
Last synced: 9 months ago · JSON representation

Repository

A key-value model for HPC resources in CEMC

Basic Info
  • Host: GitHub
  • Owner: cemc-oper
  • License: mit
  • Language: Go
  • Default Branch: master
  • Homepage:
  • Size: 41 KB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 2
  • Open Issues: 0
  • Releases: 0
Topics
cemc hpc nwpc slurm
Created over 7 years ago · Last pushed over 2 years ago
Metadata Files
Readme License

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

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
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 9.5%
Average: 10.1%
Dependent repos count: 10.7%
Last synced: 10 months ago

Dependencies

go.mod go