Allocation Module

pipeline.allocate.assemble_allocations(args)

Function for assembling all allocations and bands for packing. Allocations contain multiple processes within a single SLURM job such that the estimates for time sum to less than the time allowed for that SLURM job. Bands are single process per job, based on a default time plus any previous attempts (use –allow-band-increase flag to enable band increases with successive attempts if previous jobs timed out)

Returns:

A list of tuple objects such that each tuple represents an array to submit to slurm with the attributes (label, time, number_of_datasets). Note: The list of datasets to apply in each array job is typcially saved under proj_codes/<repeat_id>/<label>.txt (allocations use allocations/<x>.txt in place of the label)

pipeline.allocate.create_allocations(groupID: str, workdir: str, bins: list, repeat_id: str, dryrun=False) None

Create allocation files (N project codes to each file) for later job runs.

Returns:

None

pipeline.allocate.create_array_bands(groupID, workdir, bands, repeat_id, dryrun=False)

Create band-files (under repeat_id) for this set of datasets.

Returns:

None

pipeline.allocate.has_required_timings(detail) bool

Check if the contents of this projects ‘detail’ dict has required timing estimates for allocation.

Returns:

True or False depending on the above condition.