{"id":21594168,"url":"https://github.com/ornl/sagesim","last_synced_at":"2025-03-18T10:42:15.349Z","repository":{"id":230057614,"uuid":"776080659","full_name":"ORNL/SAGESim","owner":"ORNL","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-13T19:50:54.000Z","size":98,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-13T20:36:50.459Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ORNL.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":"2024-03-22T16:35:16.000Z","updated_at":"2025-03-13T19:50:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"241e1fc4-2666-4aa3-9585-412e03740083","html_url":"https://github.com/ORNL/SAGESim","commit_stats":null,"previous_names":["ornl/sagesim"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ORNL%2FSAGESim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ORNL%2FSAGESim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ORNL%2FSAGESim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ORNL%2FSAGESim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ORNL","download_url":"https://codeload.github.com/ORNL/SAGESim/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244206901,"owners_count":20416091,"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":[],"created_at":"2024-11-24T17:16:23.138Z","updated_at":"2025-03-18T10:42:15.343Z","avatar_url":"https://github.com/ORNL.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SAGESim\n\nScalable Agent-based GPU Enabled Simulator\n\n# Requirements\n\n - Python 3.7+\n - `conda create -n sagesimenv python=3.9`\n - `conda activate sagesimenv`\n - Install CUDA toolkit\n - - https://developer.nvidia.com/cuda-toolkit\n - - https://rocm.docs.amd.com/projects/install-on-linux/en/docs-6.0.2/\n - - [Install using Anaconda](`conda install -c anaconda cudatoolkit`)\n - install mpi4py (Recommend using conda): https://mpi4py.readthedocs.io/en/stable/install.html#using-conda\n - [Follow the instructions here to install CuPy](https://docs.cupy.dev/en/stable/install.html)\n - `pip install -r requirements.txt`\n \n# Run Example\n\n - `git clone https://code.ornl.gov/sagesim/sagesim`\n - `export PYTHONPATH=/path/to/clone_repo`\n - `cd /path/to/clone_repo/examples/sir`\n - `mpiexec -n 4 python run.py`\n\n\n# There are some unfortunate quirks to using CuPyx `jit.rawkernel`:\n - nan checked by inequality to self. Unfortunate limitation of cupyx.\n - Dicts and objects are unsupported.\n - *args and **kwargs are unsupported.\n - nested functions are unsupported.\n - Be sure to use `cupy` data types and array routines in favor of `numpy`: [https://docs.cupy.dev/en/stable/reference/routines.html]\n - `for` loops must use range iterator only. No 'for each' style loops.\n - `return` does not seem to work well either\n - `break` and `continue` are unsupported!\n - Cannot reassign variables within `if` or `for` statements. Must be assigned at top level of function or new variable declared under subscope.\n -  `-1` indexing does not necessarily work as expected, as it will access the last element of the memory block of the array instead of the logical array. Use `len(my_array) - 1` instead\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fornl%2Fsagesim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fornl%2Fsagesim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fornl%2Fsagesim/lists"}