user_bin_args_user_defined
- user-defined arguments that may be passed to the simulation.log_level
- specifies the logging level that will be used by Simulate. Acceptable values are trace, debug, info, warn, error and fatal. Messages at the specified level or above will be logged.argument_parse
is used to process the contents of argv
(which should not be accessed directly) into the aether::arguments
type.build_entity_simulation_manager
function after the first two parameters, provides the argument to Simulate workers. Any number of additional parameters can be provided, and will be forwarded to the constructor of the user-defined state class (user_cell_state_impl
in this example). Note that the first argument to the constructor of the user-defined state class will be an instance of aether::cell_state
. Similarly, parameters can also be forwarded to the constructor of the global state process (example_global_state
in this example):aether/feature_flags.hh
. We document the most important ones here:FAST_MODE
. Enable a number of options that benefit simulation performance. We recommend that customers always use this option, since leaving it off will degrade simulation performance and only has benefit for Hadean's internal Simulate development.PHASE_BARRIERS
. Enables barrier operations between each of Simulate's phases. This may incur some performance degradation, but enables time to be more accurately attributed to phase times collected using the metrics functionality.DISABLE_MERGE
- If this flag is set, Simulate will make a best-effort attempt to avoid merging cells. This should only be set if the simulation use-case requires it, since it will negatively impact Simulate's ability to load balance.DISABLE_SPLIT
- If this flag is set, Simulate will make a best-effort attempt to avoid splitting cells. This should only be set if the simulation use-case requires it, since it will negatively impact Simulate's ability to load balance.