def renormalize_beliefs_multiproc(belief_space, normalization_factor): belief_space.num_idxs_with_belief_above_threshold = 0 slicing_indices = generate_slicing_indices(belief_space.beliefs) with Parallel(n_jobs=multiprocessing.cpu_count(), verbose=5, max_nbytes=PARALLEL_MAX_NBYTES) as parallel: max_belief = -1 max_eles = [] num_idxs_with_belief_above_threshold = 0 return_tuples = parallel( delayed(belief_space.renormalize_beliefs_common) (normalization_factor, slicing_indices[i - 1], slicing_indices[i]) for i in range(1, len(slicing_indices))) for return_tuple in return_tuples: returned_max_eles, returned_max_belief, returned_beliefs, returned_num_idxs_with_belief_above_threshold, starting_index, ending_index = ( return_tuple) # copy beliefs from results belief_space.beliefs[ starting_index:ending_index] = returned_beliefs num_idxs_with_belief_above_threshold += ( returned_num_idxs_with_belief_above_threshold) # find max chains if returned_max_belief > max_belief: max_eles = returned_max_eles max_belief = returned_max_belief # find actual max in tuple returned return max_eles, max_belief, num_idxs_with_belief_above_threshold
def update_bottom_up_beliefs_multiproc( top_down_bottom_up_structure_belief_space_wrapper, attribute_order, trial_name, ): slicing_indices = generate_slicing_indices( top_down_bottom_up_structure_belief_space_wrapper.bottom_up_belief_space.beliefs ) with Parallel( n_jobs=multiprocessing.cpu_count(), verbose=5, max_nbytes=PARALLEL_MAX_NBYTES ) as parallel: return_tuples = parallel( delayed( top_down_bottom_up_structure_belief_space_wrapper.update_bottom_up_beliefs_common )(attribute_order, trial_name, slicing_indices[i - 1], slicing_indices[i]) for i in range(1, len(slicing_indices)) ) for return_tuple in return_tuples: returned_beliefs, starting_index, ending_index = return_tuple # copy beliefs from results top_down_bottom_up_structure_belief_space_wrapper.bottom_up_belief_space.beliefs[ starting_index:ending_index ] = returned_beliefs return ( top_down_bottom_up_structure_belief_space_wrapper.bottom_up_belief_space.beliefs )
def instantiate_schemas_multiproc( abstract_schema_space, causal_chain_structure_space, instantiation_index_mappings, solutions_executed, excluded_chain_idxs, n_chains_in_schema, ): slicing_indices = generate_slicing_indices( abstract_schema_space.structure_space) instantiated_schemas = [] instantiated_schema_beliefs = [] with Parallel(n_jobs=multiprocessing.cpu_count(), verbose=5, max_nbytes=PARALLEL_MAX_NBYTES) as parallel: return_tuples = parallel( delayed(abstract_schema_space.instantiate_schemas_common)( causal_chain_structure_space, instantiation_index_mappings, solutions_executed, excluded_chain_idxs, n_chains_in_schema, slicing_indices[i - 1], slicing_indices[i], ) for i in range(1, len(slicing_indices))) for return_tuple in return_tuples: returned_schemas, returned_beliefs, starting_index, ending_index = ( return_tuple) # copy beliefs from results instantiated_schemas.extend(returned_schemas) instantiated_schema_beliefs.extend(returned_beliefs) return instantiated_schemas, instantiated_schema_beliefs
def prune_chains_from_initial_observation_multiproc(chain_pruner, causal_chain_space, position_dict, trial_count, attempt_count): slicing_indices = generate_slicing_indices( causal_chain_space.structure_space.causal_chains) chain_idxs_pruned = set() with Parallel(n_jobs=multiprocessing.cpu_count(), verbose=5, max_nbytes=PARALLEL_MAX_NBYTES) as parallel: chain_space_tuples = parallel( delayed(chain_pruner.prune_chains_from_initial_observation_common)( causal_chain_space, position_dict, trial_count, attempt_count, slicing_indices[i - 1], slicing_indices[i], ) for i in range(1, len(slicing_indices))) for chain_space_tuple in chain_space_tuples: returned_beliefs, returned_chain_idxs_pruned, starting_index, ending_index = ( chain_space_tuple) causal_chain_space.bottom_up_belief_space.beliefs[ starting_index:ending_index] = returned_beliefs chain_idxs_pruned.update(returned_chain_idxs_pruned) return causal_chain_space.bottom_up_belief_space.beliefs, chain_idxs_pruned
def sum_beliefs_multiproc(belief_space): slicing_indices = generate_slicing_indices(belief_space.beliefs) with Parallel(n_jobs=multiprocessing.cpu_count(), verbose=5, max_nbytes=PARALLEL_MAX_NBYTES) as parallel: sums = parallel( delayed(belief_space.sum_beliefs_common)(slicing_indices[i - 1], slicing_indices[i]) for i in range(1, len(slicing_indices))) return sum(sums)
def set_num_idxs_with_belief_above_threshold_multiproc(belief_space): slicing_indices = generate_slicing_indices(belief_space) with Parallel(n_jobs=multiprocessing.cpu_count(), verbose=5, max_nbytes=PARALLEL_MAX_NBYTES) as parallel: summations = parallel( delayed(belief_space. compute_num_idxs_with_belief_above_threshold_common)( slicing_indices[i - 1], slicing_indices[i]) for i in range(1, len(slicing_indices))) summation = sum(summations) return summation
def set_uniform_belief_for_idx_with_belief_above_threshold_multiproc( belief_space, threshold, ): slicing_indices = generate_slicing_indices(belief_space.beliefs) with Parallel(n_jobs=multiprocessing.cpu_count(), verbose=5, max_nbytes=PARALLEL_MAX_NBYTES) as parallel: returned_tuples = parallel( delayed( belief_space. set_uniform_belief_for_idx_with_belief_above_threshold_common)( slicing_indices[i - 1], slicing_indices[i], threshold, ) for i in range(1, len(slicing_indices))) for returned_tuple in returned_tuples: returned_beliefs, starting_index, ending_index = returned_tuple belief_space.beliefs[ starting_index:ending_index] = returned_beliefs return belief_space.beliefs