Intrepydd Guide

This site contains documentation for v0.2 of the Intrepydd programming system being developed in the DDARING research project with contributors from Georgia Tech, UIUC, U.Michigan, and USC. Intrepydd is a Python-based domain-specific programming language for data analytics kernels, suitable for ahead-of-time compilation on current and future hardware platforms and accelerators. Intrepydd is not intended for writing complete/main programs. This release (v0.2) contains an implementation of an early version of the Intrepydd language. We welcome feedback from testers of this release; your feedback will influence future enhancements to the Intrepydd language, its implementation, and its documentation.

View the Project on GitHub hpcgarage/intrepyddguide

Intrepydd’s built-in functions and libraries

Intrepydd v0.2 supports the following classes of built-in functions and library wrappers for the convenience of the programmer. When an entry below corresponds to a standard Python function or library, we include a link to the Python documentation and also summarize limitations in the Intrepydd version relative to the Python version. We also use Intrepydd-style type declarations for function prototypes to summarize the acceptable parameters and types. For convenience, we use T, T1, T2, etc. as type parameters below to represent any Intrepydd numeric type: int32, int64, float32, or float64, and use BT, BT1, BT2 etc. as type parameters to represent any numeric type or bool.

Finally, note that all standard Python functions and libraries can be used without limitations in the Python main program that invokes Intrepydd functions.

Functions Reference. For a Jupyter-based summary and demo of many of the Intrepydd-supported functions, refer to the functions reference or its preview. The complete list of functions and libraries available in Intrepydd is included below. Many of the entries also include a link to a standard library API that is equivalent, or closely related, to the Intrepydd API.

Subset of Python built-in functions

Intrepydd supports the following subset of Python built-in functions:

Subset of NumPy libraries

Intrepydd supports the following subset of NumPy libraries. Each function name points to the Numpy reference page for the function, and can have some bullets to note its prototype in Intrepydd (often only supports a subset of parameters) and other differences from the Numpy version.

Subset of CombBLAS sparse matrix libraries

Intrepydd supports interfaces to the following subset of CombBLAS libraries for sparse matrices. Currently, only float64 is supported as an element type for sparse matrices in Intrepydd. The Triangle Counting Jupyter notebook illustrates the use of Intrepydd to implement a sparse matrix application, especially in the sections titled “An Intrepydd version: Domain-specific wrappers” and “Another Intrepydd version: “lowering” the implementation”.

Note that the data types of arguments spm, spm1, and spm2 are SparseMat(float64) while the data type of arr is Array(float64).