Skip to content

Commit

Permalink
Adjusting forces to use 'user' fields
Browse files Browse the repository at this point in the history
  • Loading branch information
jmlarson1 committed Oct 31, 2019
1 parent c81ad46 commit 559f795
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 25 deletions.
2 changes: 1 addition & 1 deletion libensemble/libE.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
# To change logging level for just this module
# logger.setLevel(logging.DEBUG)

allowed_sim_spec_keys = ['sim_f', 'in', 'out', 'sim_dir', 'sim_dir_prefix', 'clean_jobs', 'save_every_k', 'user']
allowed_sim_spec_keys = ['sim_f', 'in', 'out', 'sim_dir', 'sim_dir_prefix', 'clean_jobs', 'save_every_k', 'profile', 'user']
allowed_gen_spec_keys = ['gen_f', 'in', 'out', 'save_every_k', 'user']
allowed_alloc_spec_keys = ['alloc_f', 'in', 'out', 'user']

Expand Down
18 changes: 9 additions & 9 deletions libensemble/tests/scaling_tests/forces/forces_simf.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,17 @@ def run_forces(x, persis_info, sim_specs, libE_info):

calc_status = 0 # Returns to worker

simdir_basename = sim_specs['simdir_basename']
# cores = sim_specs['cores']
keys = sim_specs['keys']
sim_particles = sim_specs['sim_particles']
sim_timesteps = sim_specs['sim_timesteps']
time_limit = sim_specs['sim_kill_minutes'] * 60.0
simdir_basename = sim_specs['user']['simdir_basename']
# cores = sim_specs['user']['cores']
keys = sim_specs['user']['keys']
sim_particles = sim_specs['user']['sim_particles']
sim_timesteps = sim_specs['user']['sim_timesteps']
time_limit = sim_specs['user']['sim_kill_minutes'] * 60.0

# Get from dictionary if key exists, else return default (e.g. 0)
cores = sim_specs.get('cores', None)
kill_rate = sim_specs.get('kill_rate', 0)
particle_variance = sim_specs.get('particle_variance', 0)
cores = sim_specs['user'].get('cores', None)
kill_rate = sim_specs['user'].get('kill_rate', 0)
particle_variance = sim_specs['user'].get('particle_variance', 0)

# Composing variable names and x values to set up simulation
# arguments = []
Expand Down
32 changes: 17 additions & 15 deletions libensemble/tests/scaling_tests/forces/run_libe_forces.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,30 +69,32 @@
sim_specs = {'sim_f': run_forces, # Function whose output is being minimized
'in': ['x'], # Name of input data structure for sim func
'out': [('energy', float)], # Output from sim func
'keys': ['seed'], # Key/keys for input data
'sim_dir': './sim', # Sim dir to be copied for each worker
'sim_dir_suffix': 'test', # Suffix for copied sim dirs (to ID run)
'profile': False, # Don't have libE profile run
'simdir_basename': 'force', # Used by sim_f to name sim directories
'cores': 2, # Used by sim_f to set number of cores used
'sim_particles': 1e3, # Used by sim_f for number of particles
'sim_timesteps': 5, # Used by sim_f for number of timesteps
'sim_kill_minutes': 10.0, # Used by sim_f to set max run time
'particle_variance': 0.2, # Used by sim_f to vary load imbalance
'kill_rate': 0.5, # Fraction of bad sim_f evals (tests kills)
'user': {'sim_dir_suffix': 'test', # Suffix for copied sim dirs (to ID run)
'simdir_basename': 'force', # Used by sim_f to name sim directories
'keys': ['seed'], # Key/keys for input data
'cores': 2, # Used by sim_f to set number of cores used
'sim_particles': 1e3, # Used by sim_f for number of particles
'sim_timesteps': 5, # Used by sim_f for number of timesteps
'sim_kill_minutes': 10.0, # Used by sim_f to set max run time
'particle_variance': 0.2, # Used by sim_f to vary load imbalance
'kill_rate': 0.5, # Fraction of bad sim_f evals (tests kills)
}
}
# end_sim_specs_rst_tag

# State the generating function, its arguments, output, and necessary parameters.
gen_specs = {'gen_f': uniform_random_sample, # Generator function
'in': ['sim_id'], # Generator input
'out': [('x', float, (1,))], # Name, type and size of data produced (must match sim_specs 'in')
'lb': np.array([0]), # Lower bound for random sample array (1D)
'ub': np.array([32767]), # Upper bound for random sample array (1D)
'gen_batch_size': 1000, # How many random samples to generate in one call
'batch_mode': True, # If true wait for sims to process before generate more
'num_active_gens': 1, # Only one active generator at a time.
'save_every_k': 1000 # Save every K steps
'save_every_k': 1000, # Save every K steps
'user': {'lb': np.array([0]), # Lower bound for random sample array (1D)
'ub': np.array([32767]), # Upper bound for random sample array (1D)
'gen_batch_size': 1000, # How many random samples to generate in one call
'batch_mode': True, # If true wait for sims to process before generate more
'num_active_gens': 1, # Only one active generator at a time.
}
}

# Maximum number of simulations
Expand Down

0 comments on commit 559f795

Please sign in to comment.