{"id":48027917,"url":"https://github.com/neirth/pathwalker","last_synced_at":"2026-04-04T13:52:52.621Z","repository":{"id":159282454,"uuid":"631062155","full_name":"Neirth/PathWalker","owner":"Neirth","description":"Experiment for learning about OpenCL and Parallelism and how to apply correctly into Rust High Performance Server.","archived":false,"fork":false,"pushed_at":"2024-04-05T15:58:20.000Z","size":151,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-05-01T14:26:14.353Z","etag":null,"topics":["docker","helm","opencl","parallel-computing","parallel-programming","rest-api","rust"],"latest_commit_sha":null,"homepage":"https://neirth.github.io/2023/04/28/exploring-opencl-for-accelerate-processes.html","language":"Rust","has_issues":false,"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/Neirth.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}},"created_at":"2023-04-21T20:39:56.000Z","updated_at":"2024-05-01T14:26:14.354Z","dependencies_parsed_at":"2023-06-11T15:30:54.740Z","dependency_job_id":null,"html_url":"https://github.com/Neirth/PathWalker","commit_stats":{"total_commits":37,"total_committers":1,"mean_commits":37.0,"dds":0.0,"last_synced_commit":"94bc9829a840139e5b973976ded2302d3da5a790"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Neirth/PathWalker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neirth%2FPathWalker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neirth%2FPathWalker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neirth%2FPathWalker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neirth%2FPathWalker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Neirth","download_url":"https://codeload.github.com/Neirth/PathWalker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neirth%2FPathWalker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31402276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: 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":["docker","helm","opencl","parallel-computing","parallel-programming","rest-api","rust"],"created_at":"2026-04-04T13:52:52.130Z","updated_at":"2026-04-04T13:52:52.611Z","avatar_url":"https://github.com/Neirth.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/Neirth/PathWalker/blob/master/assets/logo.png?raw=true\"\u003e\n\u003c/p\u003e\n\nPathWalker is a Rust project that aims to explore the effective parallelism of heavy operations and how to leverage them in a demanding environment like a data center, through the use of OpenCL.\n\n## Problem\n\nThe main issue that PathWalker addresses is how to speed up certain processes that might otherwise be quite costly on the wrong device. In most servers, all computing power is derived to the processor, which is shared by different cores that must access shared time with other cores of other operating systems. The services that make this interaction possible can take up CPU time, and queries to external computer services can cause additional delays, which in turn wastes the capacity of the machine.\n\nThe GPGPU concept has been introduced to relieve devices of the responsibility of having to manage an operating system, or in the worst case, a Type 1 Hypervisor running different operating systems, to launch workflows waiting for an answer quickly.\n\n## OpenCL and CPU Coordination\n\nOpenCL is a heterogeneous computing framework that works with a queuing system, allowing the CPU to delegate the workload to the intensive processing unit effectively. This frees up the CPU to take care of other tasks without having to worry about processing requests full-time. OpenCL also allows memory regions that the processing unit will have available to be managed from the application, either by transferring complete memory arrays to it or exploiting those of the host itself.\n\nOpenCL's programming language is based on the C language, but it has no access to libraries and external libraries such as Boost. This is done to make code compatible with the largest amount of hardware that has certified drivers.\n\n## Building and Running\n\nTo build PathWalker, beforehand, we must installed the OpenCL Headers and their driver for you accelerator device, after this, use the following command:\n\n```bash\ncargo build --release\n```\n\nTo run PathWalker, use the following command:\n\n```bash\ncargo run --release\n```\n\n## Deploying with Docker\n\nPathWalker has a Dockerfile available to deploy it, and we recommend this option as the primary one. To deploy it, use the following command:\n\n```bash\ndocker build -t pathwalker -f tools/docker/Dockerfile .\n```\n\nThis dockerfile also install a Portable Computing Language (PoCL) driver for OpenCL, so you can run PathWalker on any device with a CPU.\n\n## API Documentation\n\nThe endpoints available are:\n\n* `POST /sortest`: Returns the shortest path between two points in a graph. Example\n\n    Request Example:\n    ```json\n    {\n      \"data\": [8, 2, 3, 4, 5, 6, 7, 1, 9, 10, 11, 12, 13, 14, 15, 16],\n      \"width\": 4,\n      \"height\": 4\n    }\n    ```\n    \n    Response Example:\n    ```json\n    {\n      \"path\": [[8, 1], [7, 1], [6, 1], [5, 1]],\n      \"status\": \"ok\"\n    }\n    ```\n\n\n## License\n\nPathWalker is licensed under the MIT License. See [LICENSE](LICENSE) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneirth%2Fpathwalker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneirth%2Fpathwalker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneirth%2Fpathwalker/lists"}