@@ -25,7 +25,7 @@ def only_persistent_gens(W, H, sim_specs, gen_specs, alloc_specs, persis_info, l
2525
2626 To be provided in calling script: E.g., ``alloc_specs["user"]["async_return"] = True``
2727
28- init_sample_size : int, optional
28+ initial_batch_size : int, optional
2929 Initial sample size - always return in batch. Default: 0
3030
3131 num_active_gens: int, optional
@@ -59,16 +59,18 @@ def only_persistent_gens(W, H, sim_specs, gen_specs, alloc_specs, persis_info, l
5959 user = alloc_specs .get ("user" , {})
6060 manage_resources = libE_info ["use_resource_sets" ]
6161
62- active_recv_gen = user .get ("active_recv_gen" , False ) # Persistent gen can handle irregular communications
63- init_sample_size = user .get ("init_sample_size " , 0 ) # Always batch return until this many evals complete
64- batch_give = user .get ("give_all_with_same_priority" , False )
62+ active_recv_gen = gen_specs . get ( "active_recv_gen" , user .get ("active_recv_gen" , False ))
63+ initial_batch_size = gen_specs . get ( "initial_batch_size" , user .get ("initial_batch_size " , 0 ))
64+ batch_give = gen_specs . get ( "give_all_with_same_priority" , user .get ("give_all_with_same_priority" , False ) )
6565
6666 support = AllocSupport (W , manage_resources , persis_info , libE_info )
6767 gen_count = support .count_persis_gens ()
6868 Work = {}
6969
7070 # Asynchronous return to generator
71- async_return = user .get ("async_return" , False ) and sum (H ["sim_ended" ]) >= init_sample_size
71+ async_return = (
72+ gen_specs .get ("async_return" , user .get ("async_return" , False )) and sum (H ["sim_ended" ]) >= initial_batch_size
73+ )
7274
7375 if gen_count < persis_info .get ("num_gens_started" , 0 ):
7476 # When a persistent worker is done, trigger a shutdown (returning exit condition of 1)
@@ -94,7 +96,7 @@ def only_persistent_gens(W, H, sim_specs, gen_specs, alloc_specs, persis_info, l
9496 # Now the give_sim_work_first part
9597 points_to_evaluate = ~ H ["sim_started" ] & ~ H ["cancel_requested" ]
9698 avail_workers = support .avail_worker_ids (persistent = False , zero_resource_workers = False , gen_workers = False )
97- if user .get ("alt_type" ):
99+ if gen_specs . get ( "alt_type" , user .get ("alt_type" ) ):
98100 avail_workers = list (
99101 set (support .avail_worker_ids (persistent = False , zero_resource_workers = False ))
100102 | set (support .avail_worker_ids (persistent = EVAL_SIM_TAG , zero_resource_workers = False ))
@@ -106,7 +108,7 @@ def only_persistent_gens(W, H, sim_specs, gen_specs, alloc_specs, persis_info, l
106108 sim_ids_to_send = support .points_by_priority (H , points_avail = points_to_evaluate , batch = batch_give )
107109
108110 try :
109- if user .get ("alt_type" ):
111+ if gen_specs . get ( "alt_type" , user .get ("alt_type" ) ):
110112 Work [wid ] = support .sim_work (
111113 wid , H , sim_specs ["in" ], sim_ids_to_send , persis_info .get (wid ), persistent = True
112114 )
@@ -122,7 +124,7 @@ def only_persistent_gens(W, H, sim_specs, gen_specs, alloc_specs, persis_info, l
122124 avail_workers = support .avail_worker_ids (persistent = False , zero_resource_workers = True , gen_workers = True )
123125
124126 for wid in avail_workers :
125- if gen_count < user .get ("num_active_gens" , 1 ):
127+ if gen_count < gen_specs . get ( "num_active_gens" , user .get ("num_active_gens" , 1 ) ):
126128 # Finally, start a persistent generator as there is nothing else to do.
127129 try :
128130 Work [wid ] = support .gen_work (
0 commit comments