https://github.com/hpc-gridware/go-clusterscheduler
Simple Go API wrapping Open Cluster Schedulers cli
Science Score: 26.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
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.6%) to scientific vocabulary
Keywords
Repository
Simple Go API wrapping Open Cluster Schedulers cli
Basic Info
- Host: GitHub
- Owner: hpc-gridware
- Language: Go
- Default Branch: main
- Homepage: https://www.hpc-gridware.com/
- Size: 7.83 MB
Statistics
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
Open Cluster Scheduler Go API
Welcome to the Open Cluster Scheduler Go API repository. This project provides a Go-based API to interact with the Open Cluster Scheduler, encapsulating the command-line interface to streamline the configuration and management of Open/Gridware Cluster Scheduler clusters.
Features
The Go API offers a range of powerful features, including:
qconfCommand Line Wrapper: This primary feature enables developers to build robust applications to configure the Open/Gridware Cluster Scheduler effortlessly.simulatorApplication: This application implements a container based simulator of a real "Grid Engine" cluster. It can dump the configuration of a SGE or Open Grid Engine cluster and apply changes to a cluster simulated within a container. (See thecmd/simulatordirectory for more information.)sharetreeGUI Editor: This application implements a simple web-based visualization and editing tool for Open Cluster Scheduler (OCS) and Gridware Cluster Scheduler (GCS) sharetree configurations. (See thecmd/sharetreedirectory for more information.)- mcp-server: Implements an example MCP (Model Context Protocol) for interacting with the cluster. Process job details, accounting information, cluster configuration details with your favorite AI application (like Claude) which supports MCP extensions.
Go API Development Container
This project includes scripts to set up a one-node Open Cluster Scheduler cluster, which helps you to quickly build and test Go API applications without manually constructing a build environment.
Note, that the tests are written for this container setup. You should not run the tests against a real cluster as they will modify the cluster configuration of course.
Getting Started
Prerequisites
To begin, ensure you have the following software installed:
- Docker
maketool
Building and Testing Using the Container
Build the Container
First, build the container, which is based on Ubuntu 22.04 and includes all required dependencies:
bash
make build
Run the Single Node Cluster
After successfully building the container, you can initialize and run a single-node cluster:
bash
make run
Upon the first successful execution of make run, you can expect
command line output similar to the following:
shell
Install log can be found in: /opt/cs-install/default/common/install_logs/qmaster_install_master_2024-08-11_12:00:00.log
Install log can be found in: /opt/cs-install/default/common/install_logs/execd_install_master_2024-08-11_12:00:00.log
root@master modified "global" in configuration list
root@master modified "all.q" in cluster queue list
This indicates that the cluster has been successfully set up. You can check the status of the cluster by running the following command:
```bash
qhost
HOSTNAME ARCH NCPU NSOC NCOR NTHR LOAD MEMTOT MEMUSE SWAPTO SWAPUS
global - - - - - - - - - - master lx-amd64 7 1 7 7 0.37 23.5G 838.0M 3.0G 0.0 cd /root/go/src/github.com/hpc-gridware/go-clusterscheduler/pkg/qconf ginkgo -v ... ```
The installation directly is the local "installation" subdirectory on the
the host which is mounted into the container. The subsequent runs of make run
will reuse the existing installation for faster startup. If you want to
reinstall the cluster, you can remove the installation directory and
run make run again.
Issues
If you encounter any issues or have questions, please open an issue in this repository. We'll be happy to assist.
- No jobs are scheduled: When using a laptop and closing and re-opening, the scheduler thread times out. To protect the qmaster, the scheduler thread gets disconnect. To get it running again either restart the container or remove and attach the scheduler thread manually ("qconf -kt scheduler" and then "qconf -at scheduler").
Owner
- Name: HPC-Gridware GmbH
- Login: hpc-gridware
- Kind: organization
- Repositories: 1
- Profile: https://github.com/hpc-gridware
GitHub Events
Total
- Delete event: 25
- Push event: 49
- Pull request review event: 4
- Pull request review comment event: 3
- Pull request event: 57
- Create event: 31
Last Year
- Delete event: 25
- Push event: 49
- Pull request review event: 4
- Pull request review comment event: 3
- Pull request event: 57
- Create event: 31
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 1
- Total pull requests: 19
- Average time to close issues: 2 minutes
- Average time to close pull requests: 2 minutes
- Total issue authors: 1
- Total pull request authors: 1
- Average comments per issue: 0.0
- Average comments per pull request: 0.0
- Merged pull requests: 15
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 1
- Pull requests: 19
- Average time to close issues: 2 minutes
- Average time to close pull requests: 2 minutes
- Issue authors: 1
- Pull request authors: 1
- Average comments per issue: 0.0
- Average comments per pull request: 0.0
- Merged pull requests: 15
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- dgruber (1)
Pull Request Authors
- dgruber (41)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 6
- Total downloads: unknown
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 0
proxy.golang.org: github.com/hpc-gridware/go-clusterscheduler/cmd/adapter
Rankings
proxy.golang.org: github.com/hpc-gridware/go-clusterscheduler/examples/testexample
Rankings
proxy.golang.org: github.com/hpc-gridware/go-clusterscheduler/pkg/adapter
Rankings
proxy.golang.org: github.com/hpc-gridware/go-clusterscheduler/cmd/diag
Rankings
proxy.golang.org: github.com/hpc-gridware/go-clusterscheduler/cmd/simulator
Rankings
proxy.golang.org: github.com/hpc-gridware/go-clusterscheduler
Rankings
Dependencies
- ../.. *
- github.com/inconshreveable/mousetrap v1.1.0
- github.com/spf13/cobra v1.8.1
- github.com/spf13/pflag v1.0.5
- github.com/cpuguy83/go-md2man/v2 v2.0.4
- github.com/go-logr/logr v1.4.2
- github.com/go-task/slim-sprig/v3 v3.0.0
- github.com/google/go-cmp v0.6.0
- github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6
- github.com/inconshreveable/mousetrap v1.1.0
- github.com/onsi/ginkgo/v2 v2.19.1
- github.com/onsi/gomega v1.34.1
- github.com/russross/blackfriday/v2 v2.1.0
- github.com/spf13/cobra v1.8.1
- github.com/spf13/pflag v1.0.5
- golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56
- golang.org/x/net v0.27.0
- golang.org/x/sys v0.22.0
- golang.org/x/text v0.16.0
- golang.org/x/tools v0.23.0
- gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
- gopkg.in/yaml.v3 v3.0.1
- hpcgridware/clusterscheduler-latest-ubuntu2204 latest build
- ./../../../go-clusterscheduler *
- github.com/go-logr/logr v1.4.2
- github.com/go-task/slim-sprig/v3 v3.0.0
- github.com/google/go-cmp v0.6.0
- github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6
- github.com/onsi/ginkgo/v2 v2.19.1
- github.com/onsi/gomega v1.34.1
- golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56
- golang.org/x/net v0.27.0
- golang.org/x/sys v0.22.0
- golang.org/x/text v0.16.0
- golang.org/x/tools v0.23.0
- gopkg.in/yaml.v3 v3.0.1
- github.com/davecgh/go-spew v1.1.1
- github.com/go-logr/logr v1.4.2
- github.com/go-task/slim-sprig/v3 v3.0.0
- github.com/google/go-cmp v0.6.0
- github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6
- github.com/onsi/ginkgo/v2 v2.19.1
- github.com/onsi/gomega v1.34.1
- github.com/pmezard/go-difflib v1.0.0
- github.com/stretchr/testify v1.8.4
- golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56
- golang.org/x/net v0.27.0
- golang.org/x/sys v0.22.0
- golang.org/x/text v0.16.0
- golang.org/x/tools v0.23.0
- google.golang.org/protobuf v1.34.1
- gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
- gopkg.in/yaml.v3 v3.0.1
- ./../../ *
- github.com/go-logr/logr v1.4.2
- github.com/go-logr/stdr v1.2.2
- github.com/google/uuid v1.6.0
- github.com/gorilla/mux v1.8.1
- go.opentelemetry.io/contrib/bridges/otelslog v0.5.0
- go.opentelemetry.io/otel v1.30.0
- go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.6.0
- go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.30.0
- go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.30.0
- go.opentelemetry.io/otel/log v0.6.0
- go.opentelemetry.io/otel/metric v1.30.0
- go.opentelemetry.io/otel/sdk v1.30.0
- go.opentelemetry.io/otel/sdk/log v0.6.0
- go.opentelemetry.io/otel/sdk/metric v1.30.0
- go.opentelemetry.io/otel/trace v1.30.0
- golang.org/x/sys v0.25.0
- github.com/davecgh/go-spew v1.1.1
- github.com/go-logr/logr v1.2.2
- github.com/go-logr/logr v1.4.2
- github.com/go-logr/stdr v1.2.2
- github.com/go-task/slim-sprig/v3 v3.0.0
- github.com/google/go-cmp v0.6.0
- github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6
- github.com/google/uuid v1.6.0
- github.com/gorilla/mux v1.8.1
- github.com/hpc-gridware/go-clusterscheduler v0.0.0-20240914092021-0285da16cc31
- github.com/hpc-gridware/go-clusterscheduler/pkg/adapter v0.0.0-20240914092021-0285da16cc31
- github.com/onsi/ginkgo/v2 v2.19.1
- github.com/onsi/gomega v1.34.1
- github.com/pmezard/go-difflib v1.0.0
- github.com/stretchr/testify v1.9.0
- go.opentelemetry.io/contrib/bridges/otelslog v0.5.0
- go.opentelemetry.io/otel v1.30.0
- go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.6.0
- go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.30.0
- go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.30.0
- go.opentelemetry.io/otel/log v0.6.0
- go.opentelemetry.io/otel/metric v1.30.0
- go.opentelemetry.io/otel/sdk v1.30.0
- go.opentelemetry.io/otel/sdk/log v0.6.0
- go.opentelemetry.io/otel/sdk/metric v1.30.0
- go.opentelemetry.io/otel/trace v1.30.0
- golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56
- golang.org/x/net v0.27.0
- golang.org/x/sys v0.25.0
- golang.org/x/text v0.16.0
- golang.org/x/tools v0.23.0
- gopkg.in/yaml.v3 v3.0.1
- actions/checkout v3 composite
- mattzcarey/code-review-gpt v0.1.10 composite
- ../.. *
- github.com/goccy/go-json v0.10.3
- go.uber.org/multierr v1.10.0
- go.uber.org/zap v1.27.0
- google.golang.org/protobuf v1.35.1
- github.com/davecgh/go-spew v1.1.1
- github.com/go-logr/logr v1.4.2
- github.com/go-task/slim-sprig/v3 v3.0.0
- github.com/goccy/go-json v0.10.3
- github.com/google/go-cmp v0.6.0
- github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6
- github.com/onsi/ginkgo/v2 v2.19.1
- github.com/onsi/gomega v1.34.1
- github.com/pmezard/go-difflib v1.0.0
- github.com/stretchr/testify v1.8.1
- go.uber.org/goleak v1.3.0
- go.uber.org/multierr v1.10.0
- go.uber.org/zap v1.27.0
- golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56
- golang.org/x/net v0.27.0
- golang.org/x/sys v0.25.0
- golang.org/x/text v0.16.0
- golang.org/x/tools v0.23.0
- google.golang.org/protobuf v1.35.1
- gopkg.in/yaml.v3 v3.0.1