ExperimentsManager.Args
— TypeParameter space for positional arguments, with indexing symbol (for readability only, useless in practice).
ExperimentsManager.Exp
— MethodExp(; name = nothing, iterations = 1, workflow = [], datadeps = [])
ExperimentsManager.KwArgs
— TypeParameter space for keywords arguments.
ExperimentsManager.PrmSet
— TypeRepresentation of a set of function parameters (positional arguments args
and keyword arguments kwargs
).
ExperimentsManager.PrmSpace
— TypeShort representation of a parameter space.
ExperimentsManager.ReducedWorkflow
— TypeA workflow with contains only one PrmSet for each function.
Base.run
— Methodrun(ue; remaining_iterations)
Runs an UnitExp
for remaining_iterations
, and returns .
ExperimentsManager.addvar
— Methodaddvar(e, init; save_output=true)
Creates an experiment variable, which will be initialized at init
at each run.
ExperimentsManager.expand_args
— MethodExample: [:a => [a1,a2], :b => [b1,b2,b3]] will produce: [[:a=>a1,:b=>b1],[:a=>a1,:b=>b2],[:a=>a1,:b=>b3], [:a=>a2,:b=>b1],[:a=>a2,:b=>b2],[:a=>a2,:b=>b3]]
ExperimentsManager.expand_kwargs
— MethodprmSpace = Dict(Sympols=>Arrays) => expanded prm space = [Dict(…) …]
ExperimentsManager.expand_pair
— MethodExpands a pair :fun=>prmspace
to an array of elements FunCall(fun, prmsᵢ)
.
ExperimentsManager.expand_prmspace
— MethodExpands a PrmSpace to an array of PrmSet.
ExperimentsManager.expand_value
— Methodexpand_value(k) returns a function f such that:
- f(v=>p::KwArgs) returns the union of k=>v and p (expanded)
- f(v) = Dict(k=>v) otherwise
ExperimentsManager.expand_workflow_element
— MethodExpands (Symbol, Array{FunCall}) to Array{Tuple{Symbol, FunCall}}
ExperimentsManager.expand_workflow_element_onefunction
— MethodReturns an array of FunCall
s, or [ds]
if ds
does not refer to a function (e.g. is already an array).
ExperimentsManager.get_num_threads
— Methodgetnumthreads() Returns the number of threads used by BLAS.
ExperimentsManager.merge_expanded_prmspaces
— MethodMerge two expanded parameter spaces, i.e. arrays of dicts, and throws an error if they have at least one key in common.
ExperimentsManager.merge_secure
— MethodMerge two dictionaries, and throws an error if they have a key in common that would be overwritten otherwise.
ExperimentsManager.newpath
— Methodnewpath(resultsdir, basename)
Creates file name of the form basename
_X.csv that does not exists in resultsdir
.
ExperimentsManager.prun
— Methodprun(e, backend_kwargs; use_threads)
WIP Iterates over the parameter space similarly to run
, but using several processes (or 1 process and multiple threads if use_threads
is true
). This function does not returns anything, and thus results should be stored to disk.
ExperimentsManager.update_outputs!
— Methodupdate_outputs!(outputs, out)
Adds the new output out
to outputs
. More precisely, as both out
and outputs
are dictionaries with keys corresponding to variable names, each pair :var => data
in out
yields data
being added to outputs[:var]
.
ExperimentsManager.vcat_addmissing
— Methodvcat_addmissing(tables)
Concatenates vertically all DataFrames in tables, adding missing
values if necessary.