LUCIstack 1.0

Today's infrastructure for computation is centered on digital computation. For decades, we have gotten used to thinking about computation strictly in terms of stored-program computers: Load an instruction from memory, load data from memory, progress the data, store result back into memory. Rinse and repeat. Even when accelerator cards -- think of GPUs -- come into play, the same abstraction holds. This abstraction is implemented deep into software stacks for today's computing, from the user-facing and library layer, through compilers down to computer's OS' and BIOS.

Anabrid's hybrid analog computers work differently. For once, they do not have persistent memory and operate with a continuous time scale, solving certain problems much more natural than via discrete, digital computing. However, new approaches lead to new abstractions, which in turn requires a thorough redesign of the software stack for computation. anabrid's LUCIstack is the result of this overhaul.

LUCIstack is a set of software components that implement abstractions for analog computing computing in the 21st century. Starting from the firmware, the stack offers the functionality required for lowering mathematical problems to circuits for analog computing. At present, both anabrid's LUCIDAC and REDAC devices are supported. The protocols used are open source, hence third parties may contribute their own components and modify the stack as desired.

Note

This repository does not contain any code. Rather, it documents the general principles behind LUCIstack and forwards readers to the individual components and their documentation.

Structure of the stack

Like in traditional software stacks for digital computing, the LUCIstack combines multiple components that live at different layers of abstractions, each communicating with the layer above and below:

Software stack with input and interaction formats

The following table lists the individual components of the stack, showing which components are currently open resp. closed source and where additional information can be found. Note that this might get updated in the future when licenses or components change.

Component Usage Status License Resources / Docs
REDAC computations library Library of algorithms and solutions of various problems using analog computers Internal use only
lucihub Cloud access to deployments of the LUCIstack, similar to HPC job scheduling systems In production Proprietary https://anabrid.github.io/lucihub/
redacc Intermediate representation base don MLIR/LLVM for analog computing and compiler lowering systems of ordinary differential equations (ODEs) onto anabrid's devices Available for cooperation partners, pyredacc client public https://pypi.org/project/pyredacc/
pybrid-computing pybrid in short, runtime and "assembler level" for analog computers, interfacing directly with anabrid's devices In production, source release in near future MIT license https://anabrid.github.io/pybrid-computing/
hybrid-controller Firmware for LUCIDAC/REDAC line of devices In production Proprietary, binaries available https://github.com/anabrid/lucidac-resources

"Internal use only" in this table refers to projects that have not been made available to third-parties, neither publicly nor under an NDA. Please refer to the abstractions guide for more detailed information on the components.

Deprecated components

Before the integration of LUCIstack, there was an software stack specifically for the LUCIDAC device, fully open sourced. While the development of these components has been ceased and the components archived, they still work with current-gen LUCIDAC devices and might therefor be useful for people interested in exploring their LUCIDAC devices further:

Component Usage Status License Resources / Docs
lucipy Self-contained runtime and mini-compiler for the LUCIDAC in Python Superceded by pybrid, lucipy syntax was integrated into pybrid as optional syntax MIT OR GPL-2.0-or-later https://github.com/anabrid/lucipy
lucidac-firmware Open source firmware for the LUCIDAC device Superceded by firmware binaries MIT OR GPL-2.0-or-later https://github.com/anabrid/lucidac-firmware

Please note that there is no support by anabrid GmbH for any of these deprecated components!