Tom Tracy II

PhD Candidate
Department of Computer Engineering
University of Virginia


I am a Ph.D candidate in the Department of Computer Engineering at the University of Virginia. My advisor is Mircea Stan, and I am a member of the High Performance Low Power (HPLP) group. I am also a researcher in the Center for Automata Processing.

I earned my B.S in Computer Engineering from UVa in 2010. I then worked for General Electric for two years as a validation engineer. I returned to UVa in 2012, and have since obtained an M.E in Computer Engineering as I continued to work towards the Ph.D.

My research is focused on accelerated machine learning and bioinformatics applications using a novel processor called the Automata Processor (AP).

Tutorial Resources

To get started with the Automata Processor, use the below links:

  • Example DFA Questions 1
  • Example DFA Questions 2
  • Kevin Angstadt's Getting Started with the Micron Automata Processor SDK
  • Random Forest

    The Random Forest algorithm is an ensemble machine learning technique created by Leo Breiman and Adele Cutler in 2001. It is a classifier that is composed of several constituent decision tree predictors. An input is evaluated by all of the decision trees in the Random Forest, and the majority vote of the resulting classifications is the net classification of the Random Forest.

    While interning at Micron Technology Inc. we developed an automata-based accelerated Random Forest model that runs on the Automata Processor. This new model is unique in several ways:

  • Our model requires one, uniformly-sequential access of the feature vector.
  • The classification for all of the constituent decision trees are computed simultaneously.
  • Accelerating Random Forests PDF

    Levenshtein Automaton

    The Levenshtein Automaton is a Finite State Automaton (FSA) that recognizes the set of all strings that are within Levenshtein Distance (also known as edit distance) k from a pattern P. It does so in linear time with the input string.

    Whereby past implementations of this algorithms did so by converting the NFA into a much larger DFA or using bit vector NFA simulation techniques, the Automata Processor is specifically designed to execute many parallel Non-deterministic Finite Automata (NFAs) in hardware. We wanted to explore the advantages of this new architecture on fuzzy-string matching applications, especially in Bioinformatics.

    Levenshtein Automata on the Automata Processor

    I can be reached by email at: