Skip to content

Running EACirc_eac3

Karel Kubicek edited this page Feb 13, 2017 · 1 revision

To run EACirc, place the configuration file in the same directory as the linked binary and run the binary. Name of the configuration file is specified in the EACirc constants for files (currently config.xml). For available command line arguments, see below.

Outputs

The program logs notable events, warnings and errors to console and logfile. Results are generated into separate files into this directory. For details see program files description.

The amount of detail and debug info is determined by EACIRC/OUTPUTS directives in the main config file details here. The verbosity levels are described below:

  • Level 0 (Minimal) Produce as few outputs as reasonably possible, intended only for basic tests. Created files: main log, BOINC fraction file, saved state and population, fitness progress
  • Level 1 (Production) Level for most experiments, produces files we want to keep. Created files: level 0 files, exported final circuits
  • Level 2 (Development) Used during most development phases. Created files: level 1 files, more details in main log, GAlib score file
  • Level 3 (Test vector debugging) Outputs handy for basic test vector debugging. Created files: level 2 files, final test vector sets (human readable), evaluator histograms
  • Level 4 (Deep debugging) All outputs suitable for more complex debugging. Created files: level 3 files, more details from test vector creation

Command-line arguments

Supported command line parameters for EACirc.

  • -log2file <filename>
    Saves log to a file with given name. If not provided, default name is used (eacirc.log). Regardless of the setting, logs are sent also to console (clog).
  • -c <filename>
    Load configuration from file provided instead of default config filename (config.xml).
  • -test
    Run the set of internal self-tests. All following arguments are passed to the testing framework. More details to be found on page about testing. Note: Enabling logging during testing might be helpful.

EACirc performance

If you use EACirc, you can expect these runtimes for experiments (measured on laboratory's Core2Duo processors).

  • 1 execution on CPU with 1k test vectors and 30k generations: 0.5-1 minute.
  • 1 execution on GPU with 32k test vectors and 30k generations: 1 minute.

Running time is linearly dependent on generations count (so change from 30k to 300k means 10 times more time). But GPU version is not linearly dependent on test vectors count (128k TV is just 3 times slower than 32k TV). Also GPU version is not much affected to individuals count (10 individuals needs just 10 % more time than 1 individual). CPU version is linearly dependent on each settings.

Our laboratory computers can execute 600 to 1000 CPU minutes in hour.

Clone this wiki locally