Allocation function specifications to be set in the user calling script and passed to main libE() routine:

alloc_specs: [dict, optional]:

    'alloc_f' [func]:
        Default: give_sim_work_first
    'in' [list of strings]:
        Default: None
    'out' [list of tuples]:
        Default: [('allocated',bool)]
    'user' [dict]:
        Default: {'batch_mode': True}


  • The tuples defined in the ‘out’ list are entered into the master history array.

  • libEnsemble uses the following defaults if the user doesn’t provide their own alloc_specs:

from libensemble.alloc_funcs.give_sim_work_first import give_sim_work_first

alloc_specs = {
    "alloc_f": give_sim_work_first,
    "user": {"num_active_gens": 1},
  • Users can import and adjust these defaults using:

from libensemble.alloc_funcs import defaults
alloc_specs = defaults.alloc_specs

See also

    alloc_specs = {
        "alloc_f": give_sim_work_first,  # Allocation function
        "out": [],  # Output fields (included in History)
        "user": {
            "stop_on_NaNs": True,  # Should alloc preempt evals
            "batch_mode": True,  # Wait until all sim evals are done
            "num_active_gens": 1,  # Only allow one active generator
            "stop_partial_fvec_eval": True,  # Should alloc preempt evals