2. Getting started

REDAC is a fully software-reconfigurable analog-digital hybrid computer made by Anabrid. The computer is intended to be used for datacenters, research and industry. It is specifically designed for solving differential equations, simulating complex models, and forecasting dynamic systems with exceptional speed and throughput—all while operating with minimal or no cooling requirements.

This system excels in a wide range of demanding applications, including realistic simulations of turbulent fluid dynamics, structural and flight dynamics, control systems, route optimization, big data analytics, real-time sensor processing, and much more.

REDAC is built on a groundbreaking analog dataflow architecture that delivers unparalleled performance, achieving at least 1,000 times the speed of traditional computing systems while consuming 10,000 times less power. It comes fully integrated with a comprehensive suite of software tools from Anabrid, including a powerful compiler, bindings for popular programming languages and libraries, and robust cloud system administration features.

REDAC is one of the first commercially available modern analog-digital hybrid computers and allows to solve up to about one thousand coupled differential equations (DEQs) of \(1^\text{st}\) order or five hundred DEQs \(2^\text{nd}\) order, etc. Thanks to analog multipliers, non-linear equations can also be easily implemented.

The REDAC system contains a complex hierarchy of analog elements and digital processors (see Architecture Reference). Despite other modes of operation exist, this makes it very convenient to use the system as a remote user via the internet.

2.1. Requirements

REDAC is a modern analog-digital hybrid computer primarily meant to be used in a datacenter or “cloud” context. That means you will access it similar to cloud computing services from Google or Amazon, straight from your computer over the internet. This reduces the demand on your local computer to a bare minimum. In fact, this guide promotes our python reference client implementation which has little dependencies and will run on virtually any modern operating system.

Therefore, as a regular user of REDAC, this is the requirement list:

  • A notebook or desktop computer with internet access or at least some sort of direct/company network access to REDAC. Most likely your operator provides you access to REDAC over conventional IPv4 TCP/IP networking.

  • The operating systems Apple Mac OS X (macOS 10.9 Mavericks or later), Microsoft Windows (Windows 7 or later) or GNU/Linux are supported. Administrator rights are typically not required.

  • At least Python 3.10 is required for the reference client software.

  • As access is limited and precious, you first need to get a user account. Depending on the structure of your organization, you will be able to apply/register on a website or you have to manually contact the operators to have them creating a user account for you.

Please note that the REDAC’s software may be operated in different states (see reconfigurable) which virtualizes the device such that multiple users may operate on _partitions_ of the device independently and in parallel. The mode is set by the operator and may be queried using the provided CLI tool (see below).

2.2. Installing the Python client

The REDAC programming interface can be used from a variety of programming languages. However, we first and foremost support the python scientific programming ecosystem, consisting of a standard set of tools such as Scipy and its components such as Numpy.

In order to proceed with REDAC, you need the python client available at your computer. If you prefer, you can also choose some hosted Jupyter Notebook environment such as Google Colab or Binder (or the hosted one by Anabrid, see List of provided services). The python client very little dependencies. Virtually any computer running a modern python version should do it. You can run the client even on a Raspberry Pi if you prefer.

The software package anabrid-redac-client is released on public python package index (in short pip). In order to install it, you need the python-pip or pip command available on your computer. Installation is then as easy as typing

pip install anabrid-redac-client

from a regular python installation, i.e. a system shell with a working python and pip executable on the PATH. It is suggested to run this within a Virtual Environment. It is generally not suggested to install this system-wide with sudo.

A typical terminal session during installation looks like this:

you@yournotebook $ python -m venv venv
you@yournotebook $ source venv/bin/activate
(venv) you@yournotebook $ pip install anabrid-redac-client
Collecting anabrid-redac-client
  Downloading anabrid_redac_client-0.1.0-py3-none-any.whl.metadata (892 bytes)
[...]
Installing collected packages: urllib3, typing-extensions, termcolor, six, shellingham, setuptools, python-dotenv, pygments, propcache, multidict, mdurl, lucipy, idna, frozenlist, click, charset-normalizer, certifi, attrs, annotated-types, aiohappyeyeballs, yaspin, yarl, requests, python-dateutil, pydantic-core, markdown-it-py, aiosignal, rich, pydantic, aiohttp, typer, anabrid-redac-core, anabrid-redac-client
Successfully installed aiohappyeyeballs-2.4.6 aiohttp-3.11.12 aiosignal-1.3.2 anabrid-redac-client-0.1.0 anabrid-redac-core-0.1.0 annotated-types-0.7.0 attrs-25.1.0 certifi-2025.1.31 charset-normalizer-3.4.1 click-8.1.8 frozenlist-1.5.0 idna-3.10 lucipy-1.6.0 markdown-it-py-3.0.0 mdurl-0.1.2 multidict-6.1.0 propcache-0.2.1 pydantic-2.10.6 pydantic-core-2.27.2 pygments-2.19.1 python-dateutil-2.9.0.post0 python-dotenv-1.0.1 requests-2.32.3 rich-13.9.4 setuptools-75.8.0 shellingham-1.5.4 six-1.17.0 termcolor-2.3.0 typer-0.15.1 typing-extensions-4.12.2 urllib3-2.3.0 yarl-1.18.3 yaspin-3.1.0

[notice] A new release of pip is available: 24.2 -> 25.0.1
[notice] To update, run: pip install --upgrade pip

After successful installation, you should have the exectuable redacli available. Call redacli --help to test it:

(venv) you@yournotebook $ redacli --help

Usage: redacli [OPTIONS] COMMAND [ARGS]...

+---------------------------- Options ----------------------------+
| --install-completion   Install completion for the current shell |
| --show-completion      Show completion for the current shell,   |
|                        to copy it or customize the installation |
| --help                 Show this message and exit               |
+-----------------------------------------------------------------+

+---------------------------- Commands ---------------------------+
| run    submit    logs    status   results   partitions   health |
+-----------------------------------------------------------------+

If you system cannot find the executable, you most likely did not work within a virtual environment and do not have the python default binary path as part of your PATH variable. On UNIX-like systems, this goes typially into ~/.local/bin, for instance you can type export PATH="$PATH:$HOME/.local/bin" to enable this location. You can also check the output of python -m site --user-site to find out where your python installation currently installs packages to.

2.3. Logging in

This first access happens in your webbrowser. Visit the website https://redac.anabrid.com and hit the log in button in the upper right. You should be then provided a page where you can register a user account or login with your useraccount. In order to connect to REDAC from the client, you currently have to store your username and password as environment variables. You can do this, for instance, by typing

you@yournotebook $ export REDAC_USERNAME="your-name@example.com"
you@yournotebook $ export REDAC_PASSWORD="yourHopefullyComplicatedPasswordGoesHere"

When connecting, you also might need a hostname. This is, in the moment, just https://redac.anabrid.com and this option is already configured as the default and can be omitted.

Note

For further details about the registration procedure for the REDAC computer operated for DLR by anabrid, contact your local system administrator or see Anabrid Operations. For technical information about the authentification procedure, see also Authentification in the operators manual.

2.4. Using the CLI

The REDAC may be operated in a partitioned setup where multiple parts of the system are isolated against each other through the software stack. For each of these partitions, there is a seperate job queue which contains jobs for this partition. Jobs in these queues may be submitted by diffeent users and each job is identified through an unique ID. Currently, there are two options to access the system:

  1. Through the Python class REDACClient as demonstrated in Example Applications.

  2. Through the CLI executable redacli.

This section covers the latter. Please first login to the system according to the instructions above. Given a netlist with filename config.json, one run of the netlist with default parameters on partition PART is submitted by

you@yournotebook $  redacli --host https://redac.anabrid.com --partition PART config.json

Note that https://redac.anabrid.com is the current default and thus may be omitted. The client then continues to update the status until the job has been completed (with either the results or an error):

>>> redacli run test/data/config.json
✅ Job submitted with ID: 56bcc72f-aaa8-4c04-96f6-4eb6425372f6
✅ Job 56bcc72f-aaa8-4c04-96f6-4eb6425372f6 completed with status: COMPLETED

In this example, we submitted a job that is saved under its ID 56bcc72f-aaa8-4c04-96f6-4eb6425372f6. With this ID, we can subsequently retrieve the results:

>>> redacli results 56bcc72f-aaa8-4c04-96f6-4eb6425372f6
{
  "/0/0": [(omitted)],
  "/1/0": [(omitted)]
}

Note that each item of the results contains data for one adc_channel from the netlist, by the scheme /carrier/adc_channel, where both carrier and adc_channels are indexed starting with 0. Furthermore, we may download the job’s log using the logs command:

>>> redacli logs 56bcc72f-aaa8-4c04-96f6-4eb6425372f6
[/forwarder/0/56bcc72f-aaa8-4c04-96f6-4eb6425372f6] 2025-02-16 20:51:39: Starting task processing...
[/forwarder/0/56bcc72f-aaa8-4c04-96f6-4eb6425372f6] 2025-02-16 20:51:40: New run state: JobSequenceEnum.RECEIVED_SET_CIRCUIT
[/forwarder/0/56bcc72f-aaa8-4c04-96f6-4eb6425372f6] 2025-02-16 20:51:40: New run state: JobSequenceEnum.RECEIVED_STATUS_TAKE_OFF
[/forwarder/0/56bcc72f-aaa8-4c04-96f6-4eb6425372f6] 2025-02-16 20:51:40: New run state: JobSequenceEnum.RECEIVED_STATUS_DONE
[/forwarder/0/56bcc72f-aaa8-4c04-96f6-4eb6425372f6] 2025-02-16 20:51:40: Finished processing (reason: TASK_FINISH)

These logs are fairly specific to the structure of the software stck, but may serve as the first indicator when dealing with issues in the software stack.

Last but not least, redacli enables users to receive information about the system, namely the partitioning scheme:

>>> redacli partitions
# Partition 0
        - Job queue length: 1
        - Carriers:
          - 00-00-00-00-00-00
# Partition 1
        - Job queue length: 2
        - Carriers:
          - 00-00-00-00-00-01

showing the carriers (mREDACs) per partition and the number of jobs waiting for processing in each queue as well as the temperatures in the system:

>>> redacli health

which prints a list of individual components in the system as well as their temperatures.