Vipera is a compact, efficient and high-performance framework for delivering dynamic languages, such as Python, on micro-core architectures.

Olympus compiler framework components

The framework includes support for running dynamic languages in a custom virtual machine and compilation to a native code abstract machine, both specifically designed for the tiny amounts of on-chip memory (32 – 64KB) found on micro-core devices. The Olympus native code generation framework includes a compiler toolset, with a plug-in architecture, and a compact runtime that supports dynamic code loading on micro-core accelerators.

Example vPython scripts

The vPython programming language, included with Vipera, leverages the framework to provide an easy to use, productive, parallel version of the Python programming language, specifically designed for micro-cores. vPython programs can either be run standalone on micro-core devices, or functions within CPython applications running on the host can be offloaded as kernels.

Key features:

Portable Trolley

The Vipera framework is supported on a number of micro-core architectures, including: RISC-V, Xilinx MicroBlaze and Adapteva Epiphany-III. Written entirely in C99, Vipera can be ported to other architectures that support a standard C compiler such as GCC or Clang.

Compact Paking box

The Vipera native code abstract machine and virtual machine only require between 4KB and 43KB of code memory and 1-2KB of data memory.

Powerful Strong arm

Vipera provides a rich set of support functions and communication primitives (point-to-point, broadcast, reductions, synchronisation etc.) to support parallel programming on micro-core devices. Vipera also provides simple integration between vPython applications and C frameworks e.g. Open MPI.

Fast Stopwatch

The Olympus native code abstract machine approaches (>90%) native C performance for scientific kernels, greatly closing the performance gap between kernels written in dynamic languages and those hand-crafted in C.

Free and Open Source OSI logo

The Vipera framework, including compiler, abstract and virtual machines, and runtime libraries are available for use under the BSD 3-clause license. The BSD Open Source license allows you to use and modify Vipera for personal, commercial and educational use. The Vipera source code is available on GitHub.