Maze for Linux

  • Increase font size
  • Default font size
  • Decrease font size


The behavior of a concurrent application is often unpredictable due to the non-deterministic nature of CPU sharing in a multitasking operating system. The operating system interleaves the execution of all existing processes. A user's program in general has no control over the process scheduling, which is done wholly by the system.

3D computer bugs crawling across motherboardThe schedule is affected by many different asynchronous events occurring in the system. As a result, the flow of a multithreaded application may vary from run to run. Because some inevitable bugs in such an application manifest themselves intermittently and are hard to reproduce, they remain undetected for a long time.

Maze is a simulator of the operating system scheduler. It creates a “layer” between the running application and the OS, taking full control over the scheduling of all threads and processes in the application.

Running a user application repeatedly, maze generates various thread scheduling scenarios, similar to scenarios that might happen in the “real world”. If a bug is detected during a run, maze can reproduce the application behavior exactly at any time.

For more information about maze see user manual and the article in EETimes Design Magazine.



This site is currently maintained for reference only. Maze development and user subscriptions have been discontinued.


System Requirements

    • Linux kernel 2.6.9 or later

    Tip: shell command: uname -r

    • Architecture: i686 or x86_64

    Shell command: arch

    • Binary: ELF 32 or 64 bit

    Shell command: file full_path_to_your_binary







Watch the video of Maze presentation at Stanford High-Performance Computing Conference on Dec 6, 2011 at Stanford University in Stanford, CA.

Link to the video at insideHPC