-
Notifications
You must be signed in to change notification settings - Fork 8
Configuration file (JSON)
Karel Kubicek edited this page Feb 13, 2017
·
9 revisions
root element: EACIRC
Project-specific settings are added separate subtrees linked to the root element. Their structure is described in project documentation.
Back-end specific settings are added as separate subtrees linked to the root element (GATE_CIRCUIT, POLYNOMIAL_CIRCUIT). Their structure is described in back-end documentation.
- NOTES developer notes (descriptive only)
-
MAIN
-
CIRCUIT_REPRESENTATION
determines which back-end will be used
1: using gate circuits
2: using polynomially represented circuit -
PROJECT
determines which project will be used to generate test vectors
Note: Particular project constatns can be found in project documentation. -
EVALUATOR
determines the algorithm to use when evaluating circuits
Note: Evaluator constants and description can be found in evaluator description. -
EVALUATOR_PRECISION
value used by evaluator (typically a precision value, e.g. number of categories) -
RECOMMENCE_COMPUTATION
1: program recommences computation from saved state (=> implies load_initial_population)
0: program starts from clean initial state -
LOAD_INITIAL_POPULATION
1: program load initial population from file
0: program randomly creates initial population -
NUM_GENERATIONS
number of generation to compute in evolution -
SAVE_STATE_FREQ
how often to save state of the computaion (immediately after saving the state, GAlib is reseeded to retain determinism and repeatability) -
CIRCUIT_SIZE_INPUT
number of circuit input bytes (for all backend representations) -
CIRCUIT_SIZE_OUTPUT
number of circuit output bytes (for all backend representations)
-
CIRCUIT_REPRESENTATION
-
OUTPUTS
-
VERBOSITY
0-4: How detailed should the debugging info be (logs, output files, ...). Detailed information about verbosity levels in outputs specification -
INTERMEDIATE_CIRCUITS
1: save best circuits from intermediate generations
0: do not save intermediate circuits -
ALLOW_PRUNNING
1: when saving circuits, save also prunned version of each (version without useless functions and connectors)
0: only save full circuits, do not prune -
SAVE_TEST_VECTORS
1: save all the generated test vectors to a binary file for further processing
0: do not save test vectors to file
-
VERBOSITY
-
RANDOM
-
USE_FIXED_SEED
1: fixed seed loaded from these settings should be used
0: initial system should be system-generated at the beginning of the computation -
SEED
numerical value of seed to use equal or less then ULONG_MAX (~4 294 967 295)
seed value is ignored if 0 (even if USE_FIXED_SEED = 1) -
BIAS_RNDGEN_FACTOR
probability of generating 1 over 0 in bias RNG (number 0%-100%) -
USE_NET_SHARE
1: tries to invoke external commands mapping network share with random data (used on Metacentrum machines)
0: do not try to map network share -
QRNG_PATH
path to files with random data, relative from the executed binary or absolute
Note: Path must end with a directory separator.
only first 10 MB of each file are used (or less if file is smaller)
file names follow pattern Random.bin where 0 <= <= maxIndex and has left zeroes up to width of maxIndex
more than one path can be entered, separated by semicolon (in this case, they are considered as alternatives) -
QRNG_MAX_INDEX
maximal index of random data file (not total number of files!)
-
USE_FIXED_SEED
-
CUDA
-
ENABLED
1: CUDA support enabled
0: CUDA support disabled - TBD
-
ENABLED
-
GA
-
EVOLUTION_OFF
1: evolution is off, test vector generation and evolution is done every generation (=> implies load_initial_population)
0: evolution on -
POPULATION_SIZE
number of genomes in a population -
REPLACEMENT_SIZE
number of individuals to replace each generation (use ~2/3 POPULATION_SIZE) -
PROB_MUTATION
probability of genome mutation (number between 0.0 and 1.0) -
PROB_CROSSING
probability of genome crossing (number between 0.0 and 1.0) -
MUTATE_FUNCTIONS
1: allow changing functions when performing mutation
0: forbid changing functions -
MUTATE_CONNECTORS
1: allow changing connectors when performing mutation
0: forbid changing connectors
-
EVOLUTION_OFF
-
TEST_VECTORS
-
INPUT_LENGTH
length of the test vectors in bytes -
OUTPUT_LENGTH
length of the expected outputs in bytes
Note: This may be different than circuit output size. -
SET_SIZE
number of test vectors in a test set -
SET_CHANGE_FREQ
number of generations to wait to regenerate test vectors -
SET_CHANGE_PROGRESSIVE
1: change test vectors progressively, more often in the beginning and less often in the end
0: change test vectors periodically as set by TEST_VECTOR_CHANGE_FREQ
Note: Progressive test vector changing does not support state saving. -
EVALUATE_BEFORE_TEST_VECTOR_CHANGE
1: fitness data is written to file just before test vector change
0: fitness data is written to file after changing test vectors -
EVALUATE_EVERY_STEP
evaluate population after every evolution step
Note: By default, population is evaluated only when test vectors are regenerated.
-
INPUT_LENGTH