MNRL Network Computation and Research Testbed
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
ANMLZoo @ 0245521
Automata-to-Routing @ c060b98
AutomataLab @ 966ffc2
DFAGE @ 579e151
HSCompile @ a032a0a
MNRL @ ea5bcdd
RAPID @ 5e3fe4e
REAPR @ 51d6677
VASim @ 0561688
iNFAnt2 @ 6d8de62


The MNRL Network Computation and Research Testbed (MNCaRT) is an open-source, multi-architecture automata processing ecosystem. MNCaRT collects a diverse set of automata processing tools and algorithms into a central location and will grow as new tools are developed. Central to the ecosystem is MNRL (the MNRL Network Representation Language), a JSON-based language for storing state machines.

Software in the MNCaRT repository is pinned at a stable revision and may therefore lag behind the individual repositories. If you would like to add new functionality or update the revision of an included tool, please consider contributing (see below)!

When cloning MNCaRT, don't forget to initialize and update the submodules:

git submodule update --init

Tools Provided with MNCaRT

The following tools are included in the current release of MNCaRT:

*Requires an Nvidia graphics card with compute capability >= 3.5.
+Requires an Nvidia graphics card with compute capability >= 6.1.
^Requires an SDAccel-compatible FPGA and the SDAccel software stack.

Docker Image

For ease of use, we provide a Docker image ( with all software tools configured; the image may be downloaded here.

Basic usage

To use the Docker image, you much launch an interactive docker container:

$ docker run -i -t kevinaangstadt/mncart

Usage of Automata Lab requires port 9090 of the container to be forwarded to the main system:

$ docker run -p 9090:9090 -i -t kevinaangstadt/mncart

It is also possible to mount a local directory inside of the the docker container for experiments:

$ docker run -v /full/path/on/local/system:/full/path/in/container -i -t kevinaangstadt/mncart

Further information regarding usage of docker may be found in the official documentation.

NOTE: Usage of GPU engines requires the installation of nvidia-docker, which exposes the GPU to the Docker container. Be sure to start the container using nvidia-docker rather than docker. Details on installing the required packages may be found here.

Building from scratch

A Dockerfile is provided in the the docker directly. You may build the Docker image from within this directory:

$ cd docker/
$ docker build <name of image> .

You may provide command line arguments for hs_build_threads and vtr_build_threads to specify the number of jobs used by make for building Hyperscan and Verilog-to-Routing. The default for both is 8.


If you have developed a tool for the MNCaRT ecosystem (or would like to update one of the existing repositories to a more recent commit), please submit a pull request. Your pull request should include:

  • the new git submodule containing the project or an updated commit of an existing submodule
  • new documentation in this file ( describing the tool
  • modifications to docker/Dockerfile to include building of your tool for the Docker image


Each tool is licensed separately; please refer to the individual project for their respective licenses.


The following publications are associated with the MNCaRT repository:

  • Kevin Angstadt, Jack Wadden, Vinh Dang, Tex Xie, Dan Kramp, Westley Weimer, Mircea Stan, and Kevin Skadron, "MNCaRT: An Open-Source, Multi-Architecture Automata-Processing Research and Execution Ecosystem," in IEEE Computer Architecture Letters, vol. 17, no. 1, pp. 84-87, 2018.


        author={K. Angstadt and J. Wadden and V. Dang and T. Xie and D. Kramp and W. Weimer and M. Stan and K. Skadron}, 
        journal={IEEE Computer Architecture Letters}, 
        title={{MNCaRT}: An Open-Source, Multi-Architecture Automata-Processing Research and Execution Ecosystem}, 
  • Kevin Angstadt, Jack Wadden, Westley Weimer, and Kevin Skadron, "MNRL and MNCaRT: An open-source, multi-architecture state machine research and execution ecosystem," University of Virginia, Tech. Rep. CS2017-01, 2017.


        Author = {Angstadt, Kevin and Wadden, Jack and Weimer, Westley and Skadron, Kevin},
        Title = {{MNRL} and {MNCaRT}: An Open-Source, Multi-Architecture State Machine Research and Execution Ecosystem},
        Institution = {University of Virginia},
        Number = {CS2017-01},
        Year = {2017}


This work was supported in part by grants from the NSF (CCF-1116673, CCF-1629450, CCF-1629450, CCF-1619123, CNS-1619098), Air Force (FA8750-15-2-0075), Jefferson Scholars Foundation, Achievement Rewards for College Scientists (ARCS) Foundation, a grant from Xilinx, and support from C-FAR one of six centers of STARnet, a Semiconductor Research Corporation program sponsored by MARCO and DARPA.