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:
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!