Skip to content

Architecture Description

Mikko Kotila edited this page Mar 8, 2019 · 3 revisions

NOTE: this information is valid from v.0.6.0 (not released yet) onwards.

package structure

Inside the /talos folder there are several other folders.

  • /talos
    • /commands || all end-user facing commands
    • /logging || everything to do with logging and storing results
    • /metrics || anything to do with measurement
    • /model || anything to do with the input model
    • /parameter || everything to do with parameter space
    • /reducer || everything to do with reductions
    • /scan || the mainline program codes
    • /templates || datasets, models, params, and pipelines
    • /utils || everything else

Procedural Flow (minimal case)

Once user starts an experiment with minimal settings talos.Scan(x, y, params, model) the following takes place:

/scan/scan_prepare.py handles the preparation for the experiment. Here scan_object is created, which is the self in the mainline program.

The most notable of these procedures is invoking /parameters/ParamSpace.py which creates an object that is accessed throughout the program in self.param_object. self.param_object contains three important features:

  • yield the next permutation
  • remove permutations from the index
  • yield False when no permutation remain in the index

Upon completion, /scan/scan_prepare.py yields back to /scan/scan_run.py. Each iteration in the program is handled in /scan/scan_round.py which is invoked in a loop from /scan/scan_run.py. This continues as long as self.param_object yields permutations.

Once self.param_object no longer yields permutations, /scan/scan_run.py invokes final logging, which is handled by /scan/scan_finish.py