Skip to content

ORNL/SAGESim

Repository files navigation

SAGESim

Scalable Agent-based GPU Enabled Simulator

Requirements

  • Python 3.11+
  • NVIDIA GPU with CUDA drivers or AMD GPU with ROCm 5.7.1+

Installation

The most straightforward way is to use conda to install SAGESim and all dependencies:

Add to your current env:

conda env update --name myenv --file sagesim_all_deps.yml --prune

or, create a new env:

conda env create --name sagesimenv --file sagesim_all_deps.yml

However, your system might require specific steps to installing mpi4py and/or cupy depending on your hardware. In that case use your systems recommended instructions to install mpi4py and cupy and execute:

pip install sagesim

Run Example

  • git clone https://code.ornl.gov/sagesim/sagesim
  • cd /path/to/clone_repo/examples/sir
  • mpiexec -n 4 python run.py

There are some unfortunate quirks to using CuPyx jit.rawkernel:

  • nan checked by inequality to self. Unfortunate limitation of cupyx.
  • Dicts and objects are unsupported.
  • *args and **kwargs are unsupported.
  • nested functions are unsupported.
  • Be sure to use cupy data types and array routines in favor of numpy: [https://docs.cupy.dev/en/stable/reference/routines.html]
  • for loops must use range iterator only. No 'for each' style loops.
  • return does not seem to work well either
  • break and continue are unsupported!
  • Cannot reassign variables within if or for statements. Must be assigned at top level of function or new variable declared under subscope.
  • -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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages