polaris.mesh.spherical.SphericalBaseStep

class polaris.mesh.spherical.SphericalBaseStep(component, name, subdir, mesh_name='mesh', cpus_per_task=16, min_cpus_per_task=1)[source]

A base class for steps that create a JIGSAW spherical mesh

Variables:
  • opts (jigsawpy.jigsaw_jig_t) – JIGSAW options for creating the mesh

  • mesh_name (str) – The name of the mesh

__init__(component, name, subdir, mesh_name='mesh', cpus_per_task=16, min_cpus_per_task=1)[source]

Create a new step

Parameters:
  • component (polaris.Component) – The component the step belongs to

  • name (str) – the name of the step

  • subdir ({str, None}) – the subdirectory for the step. The default is name

  • mesh_name (str, optional) – The name of the mesh

  • cpus_per_task (int, optional) – The cores this step would ideally have, which is what JIGSAW is told to use as threads. Measured on Chrysalis over five quasi-uniform resolutions, JIGSAW returns about 2 to 2.8x however many threads it is given, and the point at which it stops improving rises with resolution – 4 threads at 240 km, 8 at 120 km and about 16 from 60 km down. So 16 captures nearly all of what is available at the resolutions Polaris builds, and asking for more would reserve cores no mesh can use. A subclass that knows its mesh is coarse may ask for fewer.

  • min_cpus_per_task (int, optional) – The cores this step requires. JIGSAW runs on one, just more slowly, so a mesh is never blocked for want of cores.

Methods

__init__(component, name, subdir[, ...])

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)

Constrain cpus_per_task and ntasks based on the number of cores available to this step

process_inputs_and_outputs()

Process the inputs to and outputs from a step added with polaris.Step.add_input_file() and polaris.Step.add_output_file().

run()

Finish up the step.

runtime_setup()

Make the JIGSAW file names absolute

save_and_plot_cell_width(lon, lat, cell_width)

Save the cell width field on a lon/lat grid to self.cell_width_filename and plot

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()

Add output files

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

cores

the number of cores this step needs, in total

gpus

the number of GPUs this step needs, in total

may_span_nodes

whether this step's cores and GPUs may come from several nodes

min_cores

the number of cores this step needs in order to run at all

min_gpus

the number of GPUs this step requires, in total