{"id":20672178,"url":"https://github.com/dgruber/jsv","last_synced_at":"2025-04-19T19:00:15.299Z","repository":{"id":14999095,"uuid":"17724516","full_name":"dgruber/jsv","owner":"dgruber","description":"Grid Engine JSV (Job Submission Verifier) implementation for Go (#golang).","archived":false,"fork":false,"pushed_at":"2024-08-19T08:45:16.000Z","size":25,"stargazers_count":9,"open_issues_count":0,"forks_count":7,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-08-19T10:23:25.806Z","etag":null,"topics":["hpc","jsv","openclusterscheduler","sge"],"latest_commit_sha":null,"homepage":"https://github.com/hpc-gridware/clusterscheduler","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dgruber.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-03-13T20:11:51.000Z","updated_at":"2024-08-19T08:52:50.000Z","dependencies_parsed_at":"2022-09-26T22:01:33.440Z","dependency_job_id":null,"html_url":"https://github.com/dgruber/jsv","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgruber%2Fjsv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgruber%2Fjsv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgruber%2Fjsv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgruber%2Fjsv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dgruber","download_url":"https://codeload.github.com/dgruber/jsv/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224970199,"owners_count":17400292,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hpc","jsv","openclusterscheduler","sge"],"created_at":"2024-11-16T20:32:30.765Z","updated_at":"2025-04-19T19:00:15.279Z","avatar_url":"https://github.com/dgruber.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jsv\n\n[![GoDoc](http://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/dgruber/jsv)\n[![Go Report Card](http://goreportcard.com/badge/github.com/dgruber/jsv)](http://goreportcard.com/report/github.com/dgruber/jsv)\n\nGrid Engine JSV (Job Submission Verifier) implementation for Go (#golang).\n\nCheck out the [Open Cluster Scheduler](https://github.com/hpc-gridware/clusterscheduler/) as\nthe successor of open source Grid Engine and the [Gridware Cluster Scheduler](http://www.hpc-gridware.com/)\nas long term support version. Both aim to be fully compatible with Grid Engine and provide a lot\nof new, modern features.\n\n## What is it?\n\nJSV or Job Submission Verifiers are a part of the Grid Engine cluster scheduler eco system.\nJSV scripts or binaries are executed after a job was submitted and before the job is\naccepted by the cluster scheduler / manager (the Grid Engine master process).\nThey are a powerful tool for an administrator to inspect, correct, and set job\nsubmission parameters for jobs based on his own logic.\n\nAn example would be only allowing jobs with a certain sizes (number of cores/\nslots requested) at a certain time. Another one would be adding a predefined\ndynamically created accounting string for each job. JSV scripts can also be used\nfor gathering job submission statistics or draining the cluster by rejecting all\njobs before a cluster upgrade happens.\n\nFor more information please consult your Univa Grid Engine documentation\nand the man pages ([JSV man page](http://gridengine.eu/mangridengine/htmlman1/jsv.html)\nand [qsub man page](http://gridengine.eu/mangridengine/htmlman1/qsub.html)).\n\n## Why using this library?\n\nJSV helper functions are available for TCL, bash, perl etc. Go is a compiled\nlanguage which does not rely on a external runtime system (JVM).\nIt enforces strict typing and is simple and lean. This makes it an ideal candidate\nfor implementing JSV \"scripts\" in little Go programs. Performance measurements\nalso showed that Go is the fastest available option for JSV. This is critical\nsince a JSV script is usually executed for each submitted job.\n\n## How to use it?\n\nOnce you have this library, please consult the example in the examples\ndirectory. Please consult the JSV documentation of Grid Engine for a\nmore detailed description.\n\n## Example\n\nGo to examples directory. Compile the example:\n\n    git clone https://github.com/dgruber/jsv.git\n    cd jsv/examples/simple\n\n    go build example.go\n\nThe example adds the *-binding linear:1* core binding request to the *qsub* job submission.\n\nIn order to use it as client side JSV add the binary on *qsub* command line.\n\n    qsub -jsv ./example -b y /bin/sleep 123\n\nCheck the *qsub* parameters in *qstat*. It added the new parameter.\n\nAn administrator certainly wants to enforce rules encoded in the JSV application for\n*each* job, even when it not requests the *-jsv* parameter. Grid Engine /\n**Gridware Cluster Scheduler** allows to configure the location of a global JSV\nscript executed for all jobs by the master process.\n\nThis is called *server sided JSV*.\n\nIn order to use your application as server side JSV you need to be Grid Engine\nadmin user. Set the path to the binary in *jsv_url* in the global configuration\n*qconf -mconf global*. Then it is executed for each submitted job automatically.\n\n    qsub -b y /bin/sleep 123\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgruber%2Fjsv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdgruber%2Fjsv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgruber%2Fjsv/lists"}