polaris.e3sm.init.graph_partition.GraphPartitionStep
- class polaris.e3sm.init.graph_partition.GraphPartitionStep(component, name, subdir, basename, section, graph_target=None)[source]
A step for partitioning an MPAS graph into the core counts E3SM runs use.
By default the graph is linked in as
graph.infoandgpmetisis run over it once per core count, several at a time. A subclass that builds its own graphs, as sea ice does for its regions, overridesrun()and usesget_core_counts()andcpus_per_taskfrom here.The core counts depend on the mesh’s cell count, which is not known until the graph exists, so the partition files cannot be declared as outputs at setup. A step that stages them has to find them at run time.
The step reads four options from its config section:
max_cells_per_coreandmin_cells_per_corebound the core counts, andpartition_cpus_per_taskandpartition_min_cpus_per_taskset how many partitions are built at once.- Variables:
- __init__(component, name, subdir, basename, section, graph_target=None)[source]
Create a new step.
- Parameters:
component (polaris.Component) – The component the step belongs to.
name (str) – The name of the step.
subdir (str) – The subdirectory for the step.
basename (str) – The stem of every partition file.
section (str) – The config section the step’s options are read from.
graph_target (str, optional) – The path, relative to the base work directory, of the graph to partition. It is linked in as
graph.info. A subclass that builds its own graphs leaves this out.
Methods
__init__(component, name, subdir, basename, ...)Create a new step.
add_cf_check([filename])Check an output file for CF compliance after the step runs.
add_dependency(step[, name])Add step as a dependency of this step (i.e. this step can't run until the dependency has finished).
add_input_file([filename, target, database, ...])Add an input file to the step (but not necessarily to the MPAS model).
add_output_file(filename[, validate_vars, ...])Add the output file to the step
add_property_check(filename, check_properties)Add a single conservation comparison for an output file
check_cf()Check the files added with
add_cf_check()for CF compliance.check_properties()Check conservation properties of the output files of this step.
constrain_resources(available_resources)Take the number of partitions to build at once from the config.
get_core_counts(ncells)The core counts to partition a mesh into, from the config's bounds.
process_inputs_and_outputs()Process the inputs to and outputs from a step added with
polaris.Step.add_input_file()andpolaris.Step.add_output_file().run()Partition
graph.infointo each core count.runtime_setup()Update attributes of the step at runtime before calling the
run()method.set_resources([cpus_per_task, ...])Update the resources for the subtask.
set_shared_config(config[, link])Replace the step's config parser with the shared config parser
setup()Take the number of partitions to build at once from the config.
validate_baselines()Compare variables between output files in this step and in the same step from a baseline run if one was provided.
work_path(*filenames)Get the absolute path to a file or directory in the step's work directory
Attributes
coresthe number of cores this step needs, in total
gpusthe number of GPUs this step needs, in total
may_span_nodeswhether this step's cores and GPUs may come from several nodes
min_coresthe number of cores this step needs in order to run at all
min_gpusthe number of GPUs this step requires, in total