'stop_partial_fvec_eval': True } # Should alloc preempt evals } # end_alloc_specs_rst_tag persis_info = add_unique_random_streams(persis_info, nworkers + 1) persis_info_safe = deepcopy(persis_info) exit_criteria = {'sim_max': budget, 'elapsed_wallclock_time': 300} # Perform the run H, persis_info, flag = libE(sim_specs, gen_specs, exit_criteria, persis_info, alloc_specs, libE_specs) if is_master: assert flag == 0 save_libE_output(H, persis_info, __file__, nworkers) # Perform the run but not stopping on NaNs alloc_specs['user'].pop('stop_on_NaNs') persis_info = deepcopy(persis_info_safe) H, persis_info, flag = libE(sim_specs, gen_specs, exit_criteria, persis_info, alloc_specs, libE_specs) if is_master: assert flag == 0 # Perform the run also not stopping on partial fvec evals alloc_specs['user'].pop('stop_partial_fvec_eval') persis_info = deepcopy(persis_info_safe) H, persis_info, flag = libE(sim_specs, gen_specs, exit_criteria, persis_info, alloc_specs, libE_specs) if is_master:
gen_specs['user'].update({ 'grtol': 1e-4, 'gatol': 1e-4, 'frtol': 1e-15, 'fatol': 1e-15 }) persis_info = add_unique_random_streams(persis_info, nworkers + 1) exit_criteria = {'sim_max': budget, 'elapsed_wallclock_time': 300} # Perform the run H, persis_info, flag = libE(sim_specs, gen_specs, exit_criteria, persis_info, libE_specs=libE_specs) if is_master: assert flag == 0 assert len(H) >= budget # Calculating the Jacobian at the best point (though this information was not used by pounders) from libensemble.sim_funcs.chwirut1 import EvaluateJacobian J = EvaluateJacobian(H['x'][np.argmin(H['f'])]) assert np.linalg.norm(J) < 2000 outname = os.path.splitext(__file__)[0] + '_sub_comm' + str( sub_comm_number) save_libE_output(H, persis_info, outname, nworkers)