{"id":13650724,"url":"https://github.com/golemfactory/ray-on-golem","last_synced_at":"2025-08-25T17:06:41.719Z","repository":{"id":195515769,"uuid":"631954962","full_name":"golemfactory/ray-on-golem","owner":"golemfactory","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-22T06:22:40.000Z","size":2446,"stargazers_count":8,"open_issues_count":18,"forks_count":7,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-07-05T08:41:19.798Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/golemfactory.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-24T12:13:35.000Z","updated_at":"2025-07-03T13:21:46.000Z","dependencies_parsed_at":"2023-10-23T16:41:36.436Z","dependency_job_id":"ddc684df-73e6-4d50-885e-86712f867ee6","html_url":"https://github.com/golemfactory/ray-on-golem","commit_stats":null,"previous_names":["golemfactory/ray-on-golem"],"tags_count":46,"template":false,"template_full_name":null,"purl":"pkg:github/golemfactory/ray-on-golem","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/golemfactory%2Fray-on-golem","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/golemfactory%2Fray-on-golem/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/golemfactory%2Fray-on-golem/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/golemfactory%2Fray-on-golem/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/golemfactory","download_url":"https://codeload.github.com/golemfactory/ray-on-golem/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/golemfactory%2Fray-on-golem/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272100683,"owners_count":24873442,"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","status":"online","status_checked_at":"2025-08-25T02:00:12.092Z","response_time":1107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-08-02T02:00:40.054Z","updated_at":"2025-08-25T17:06:41.641Z","avatar_url":"https://github.com/golemfactory.png","language":"Python","funding_links":[],"categories":["Golem Projects"],"sub_categories":["Ray on Golem"],"readme":"# Ray on Golem\n\n\u003ch5 align=\"center\"\u003e\n  \u003ca href='https://docs.golem.network/docs/creators/ray'\u003e\u003cimg\n      width='500px'\n      alt=''\n      src=\"https://github.com/golemfactory/ray-on-golem/raw/main/Ray_on_Golem.jpg\" /\u003e\u003c/a\u003e\n\u003c/h5\u003e\n\n## What is Golem, Ray and Ray on Golem\n\n[Golem](https://golem.network) is a decentralized marketplace for computing power, where providers let requestors use their machines for a small fee.\n\nRay on Golem makes it super easy to set up and use Golem Network to run your Ray applications.\n\n[Ray](https://ray.io) on the other hand is an open-source framework dedicated to scaling Python workloads. \nIt specializes in tooling for AI/ML applications, but at the same time, it is based on Ray Core which understands every piece of generic Python code.\n\nRay uses concepts of tasks, actors, and objects to enable building and scaling distributed software.\nIt can be used to parallelize your Python code to use all cores on your own computer, but more importantly, it also offers a cluster interface to run your payload on several, remote machines.\n\nYou can learn about Ray Core mechanisms on [Ray docs website](https://docs.ray.io/en/latest/ray-core/walkthrough.html) or check out [Ray on Golem docs](https://docs.golem.network/docs/creators/ray) to dive right into development.\n\n## Looking for Beta Testers\n\nWe are looking for [Beta Testers](https://ray.golem.network) - sign up to create Ray on Golem with us!\n\n## Quickstart\n\nThis [quickstart](https://docs.golem.network/docs/creators/ray/quickstart) shows you how to set Ray and Ray on Golem up, start your cluster, test it, and then stop it.\nIt limits the explanation to the bare minimum - if you are looking for more details jump to [setup tutorial](https://docs.golem.network/docs/creators/ray/setup-tutorial)\n\n\n### Install software\n\n**Note:** We recommend creating a new directory and a clean Python virtual environment before you proceed. This avoids cluttering your system installation with unnecessary packages.\n\nThe first step is installing Ray on Golem. It will install Ray as a dependency.\n\n```bash\n# install ray-on-golem and ray (recommended within a clean virtual environment)\npip3 install -U ray-on-golem\n```\n\n**Note:** As an added convenience, the installation of `ray-on-golem` ensures that both `ray` and `yagna` are set up for you. With these components in place, you're well-prepared to harness the full potential of Ray on the Golem Network.\n\n### Set the cluster up\n\nWith the packages in place, you can download our sample golem cluster configuration yaml, and use it with `ray up` to start up the cluster.\nIt will give you a cluster of one node (which will expand when you feed it with work) on the Golem test network (free, but not very powerful)\n\n```bash\n# Download the golem-cluster.yaml\nwget https://ray.golem.network/golem-cluster.yaml\n\n# In this command:\n# * yagna starts in the background (if not running)\n# * ray-on-golem cluster manager starts in the background\n# * ray head node is started on a golem provider\nray up golem-cluster.yaml --yes\n\n```\n\nConsult the [troubleshooting](/docs/creators/ray/troubleshooting) guide if anything goes wrong.\n\n### Execute a Ray application\n\nDownload our example Ray app and execute it locally (a Ray instance will be created on your machine)\n\n```bash\n# Download the example Ray app\nwget https://github.com/golemfactory/ray-on-golem/raw/main/examples/simple-task.py\n\n# Execute the app locally by starting a local ray instance on your computer\npython3 simple-task.py\n```\n\nThis particular script shows information about the cluster it is being run on \nand also visualizes the number of tasks run on different nodes (by default it executes 100 tasks).\n\nOnce you ensure the app works, you can feed it to your Ray on Golem cluster:\n\n```bash\n# Submit the app to be executed on your cluster\nray submit golem-cluster.yaml simple-task.py\n```\n\nYou can see the information about the cluster both before and after running the computations.\n\nSubmit the code again, requesting more tasks to see how the autoscaler expands the cluster, as the work progresses (give it up to 5 mins).\n\n```bash\n# Submit the app with 400 tasks\nray submit golem-cluster.yaml simple-task.py -- --count 400 \n```\n\nThe above shows the usual workflow with Ray apps.\n- You develop them, while at the same time testing them, on your local machine.\n- When you are ready to get more power - you send them to a Ray cluster **without changing a single line** of your application's code.\n\n\n### Stop the cluster\n\nFinally, stop your cluster to free the Golem network providers and to avoid spending more than needed (the testnet is free, but good practice is a good practice).\n\n```bash\n# Tear down the cluster.\nray down golem-cluster.yaml --yes\n```\n\nWhen you no longer plan to start new clusters feel free to stop the background Ray on Golem components.\n\n```bash\n# Terminate background Ray on Golem components\nray-on-golem stop\n```\n\n## Summary\n\nBy completing the above quickstart you have successfully:\n\n- Installed ray and ray-on-golem packages\n- Downloaded the example golem cluster yaml and the example ray application\n- Started up the Ray on Golem cluster\n- Run the app on your local computer and then on the cluster\n- Stopped the cluster\n- Terminated the background Ray on Golem components\n\nCongratulations!\n\n## Limitations\n\nThe current version of Ray on Golem is an MVP. We believe it to be sufficiently easy to use and free of errors to allow people interested in running simple Ray applications to be able to use it without too much hassle.\nWe are continually working on enhancing it to ultimately support all features of Ray and to enable all of its use cases.\nIf you find any bugs or issues or would like to discuss missing features\nthat are critical to what you're working on, please let us know\n(on [`#Ray on Golem` discord channel](https://chat.golem.network/)) -\nwe will be happy to assist you.\n\nRay on Golem works on both the Golem test network (free but not very powerful)\nand the [mainnet](https://docs.golem.network/docs/creators/ray/mainnet).\n\nWe have tested Ray on Golem on **Ubuntu** (22.04+) and WSL, but it should work on other Linux distributions. For now, we don't support MacOS or bare Windows.\n\nThe basic Ray on Golem image contains `ray 2.9.3` and `python 3.10.13`.\nIt should work with any combination of local ray and python versions. Please let us know if you have any troubles because of that (on [`#Ray on Golem` discord channel](https://chat.golem.network/))\n\nThe images include only basic libraries, if you need any dependencies, \nyou can use `pip` via [cluster yaml `initialization_commands`](https://docs.golem.network/docs/creators/ray/cluster-yaml-reference#initializationcommands)\n\nThere is also an image supporting Golem GPU Providers - learn more about [image configuration](https://docs.golem.network/docs/creators/ray/cluster-yaml#image-tag-and-image-hash).\n\n\n## Next steps\n\nExplore [Ray on Golem docs](https://docs.golem.network/docs/creators/ray) to learn more about various aspects and usages of our platform.\n\nSign up for [Beta Tests](https://ray.golem.network) to create Ray on Golem with us!\n\nIf you have any questions, comments, insights, praises, or doubts about these docs and Ray on Golem in general please don't hesitate to reach out to us either on\n- [`#Ray on Golem` discord channel](https://chat.golem.network/) \n- [Ray on Golem general feedback form](https://qkjx8blh5hm.typeform.com/to/GtaCVz0b)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgolemfactory%2Fray-on-golem","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgolemfactory%2Fray-on-golem","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgolemfactory%2Fray-on-golem/lists"}