Jump to: navigation, search

The database is the backend portion of MAGEEC, storing all of the feature data, passes ran, and resultant energy data.

A diagram of what the database may initially look like is shown below:

The database backend.

The raw data table is included so that the machine learner does not need to cope with platform specific details, such as the number of energy measurement points. Additionally, there may be multiple runs in this table, corresponding to repeat runs on the hardware. Each column in the test table will be filled in by a different stage of the data gather process:

  • Compilation options. Initially specified according to the platform and benchmark being run, the command line is kept for reference. Also the compiler will insert a list of passes that have been run.
  • Features. The compiler plugin runs the feature extractor which enters data into these set of columns.
  • Summary data. These columns contain the metrics to be used in training by the machine learner. This data is entered by the data gather once the program has been run on hardware.


The ML plugin implements an interface, exposed as C++ and python allowing access to the database. This allows the data gather to insert new data points, and the machine learning training phase to pull out the data inserted into the database. Finally when the training phase is complete, it can be used by the compiler to generate the predictions of which passes to run on the program from the features given.