Skip to content

Lazily evaluated arrays in Python (super duper alpha for now)

License

Notifications You must be signed in to change notification settings

illinois-ceesd/pytato

 
 

Repository files navigation

Pytato: Get Descriptions of Array Computations via Lazy Evaluation

Gitlab Build Status Github Build Status Python Package Index Release Page

Imagine TensorFlow, but aimed at HPC. Produces a data flow graph, where the edges carry arrays and the nodes are (give or take) static-control programs that compute array outputs from inputs, possibly (but not necessarily) expressed in Loopy. A core assumption is that the graph represents a computation that's being repeated often enough that it is worthwhile to do expensive processing on it (code generation, fusion, OpenCL compilation, etc).

  • Documentation (read how things work, see an example)
  • Github (get latest source code, file bugs)

Pytato is licensed to you under the MIT/X Consortium license. See the documentation for further details.

Numpy compatibility

Pytato is written to pose no particular restrictions on the version of numpy used for execution. To use mypy-based type checking on Pytato itself or packages using Pytato, numpy 1.20 or newer is required, due to the typing-based changes to numpy in that release.

Furthermore, pytato now uses type promotion rules based on those in numpy that should result in the same data types as the currently installed version of numpy.

About

Lazily evaluated arrays in Python (super duper alpha for now)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • Shell 0.1%