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
namemesh_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_taskandntasksbased on the number of cores available to this stepprocess_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()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_filenameand plotset_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
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