{"id":26766169,"url":"https://github.com/ucl/gerun","last_synced_at":"2026-03-12T06:39:34.391Z","repository":{"id":19360305,"uuid":"22600126","full_name":"UCL/GERun","owner":"UCL","description":"A wrapper for the various MPI implementations on Legion to abstract them so that users don't need to know all the options.","archived":false,"fork":false,"pushed_at":"2024-04-18T16:31:04.000Z","size":34,"stargazers_count":2,"open_issues_count":2,"forks_count":2,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-15T12:46:48.474Z","etag":null,"topics":["grace","legion","mpi","mpirun","sge","son-of-grid-engine","thomas","wrapper"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UCL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-08-04T10:19:03.000Z","updated_at":"2024-04-18T14:42:52.000Z","dependencies_parsed_at":"2025-04-15T12:40:57.534Z","dependency_job_id":"7cadade5-259d-46bf-9f18-2f4d013141e6","html_url":"https://github.com/UCL/GERun","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/UCL/GERun","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UCL%2FGERun","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UCL%2FGERun/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UCL%2FGERun/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UCL%2FGERun/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UCL","download_url":"https://codeload.github.com/UCL/GERun/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UCL%2FGERun/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30417526,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T04:41:02.746Z","status":"ssl_error","status_checked_at":"2026-03-12T04:40:12.571Z","response_time":114,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["grace","legion","mpi","mpirun","sge","son-of-grid-engine","thomas","wrapper"],"created_at":"2025-03-28T20:19:21.955Z","updated_at":"2026-03-12T06:39:34.374Z","avatar_url":"https://github.com/UCL.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"GERun\n=====\n\nGERun is a simple, extensible wrapper for different versions of mpirun such that users don't need to know the implementation specfic options when running MPI programs on Legion.\n\nThe code is licensed under a 4-clause, BSD-style license, see LICENSE.txt for details.\n\nOverview:\n---------\n\nGERun replaces mpirun with a single \"gerun\" command and autofills in options based on the GE environment.\n\nThe intitial version is described in this blog-post:\n\nhttp://blogs.ucl.ac.uk/research-computing/2013/05/16/easier-parallel-launcher-for-mpi-jobs-gerun/\n\nThis version is the public, tidied up version of the code.\n\nGERun allows users to replace complicated formulations like:\n\n```bash\nmpirun -m $TMPDIR/machines -np $NSLOTS $HOME/src/madscience/mad\n```\n\nor\n\n```bash\nmpirun --rsh=ssh -machinefile $TMPDIR/machines -np $NSLOTS $HOME/src/madscience/mad\n```\n\ndepending on their MPI implementation with:\n\n```bash\ngerun $HOME/src/madscience/mad\n```\n\nGERun version iii supports mixed mode codes in some MPI environments (Intel MPI, OpenMPI *without SGE integration*) by running $NSLOTS/$OMP\\_NUM\\_THREADS MPI processes, and provides a tool \"ppn\" which calculates the number of processors per node.  This means that on the new Research Computing OS software stack you can portably (over the node types in the cluster) run with OpenMP threads within a node, MPI between a node should you desire by doing this:\n\n```bash\nexport OMP_NUM_THREADS=`ppn`\ngerun $HOME/src/madscience/mad\n```\n\nAlternatively, if you always want to run 2 threads per MPI task you can do this:\n\n```bash\nexport OMP_NUM_THREADS=2\ngerun $HOME/src/madscience/mad\n```\n\nGERun will then run $NSLOTS/2 MPI processes with 2 OpenMP threads each.\n\nInstallation:\n-------------\n\nOn Legion we use environment modules and so the instructions will be written assuming this.\n\n1) Unpack the code somewhere.\n\n2) Add the path to the code into $PATH (on Legion this is done as part of the \"sge\" module), and set the $GERUN\\_PATH to the same location.\n\n3) Inside the module for each MPI implementation set $GERUN\\_LAUNCHER to the appropriate version for that MPI.\n\nProvided with the code are:\n\n| MPI              | $GERUN\\_LAUNCHER | Wrapper file       |\n|:---------------- |:--------------- |:------------------ |\n| Qlogic           | qlc             | gerun-qlc          |\n| Intel            | intel           | gerun-intel        |\n| OpenMPI          | openmpi         | gerun-openmpi      |\n| OpenMPI with SGE | openmpi-sge     | genrun-openmpi-sge |\n\nTo add a new MPI implementation, you simply need to create a new gerun-\u003cwhatver\u003e wrapper and set $GERUN\\_LAUNCHER appropriately.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fucl%2Fgerun","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fucl%2Fgerun","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fucl%2Fgerun/lists"}