NAME

HPCD::SLURM::Stage

SYNOPSIS

use HPCD::SLURM::Stage;

DESCRIPTION

This module defines SLURM-specific stage attributes and contains the method
that decides if the program has failed due to memory shortage, and if so if
the program can be retried with a larger memory limit.

BUILDERS

_build_cluster_specific_valid_resources

The only two resources user can define via user_input are (hard) time and
(hard) memory.

_build_cluster_specific_default_resources

The default memory limit is 2G, and default time limit is there is no limit.

_build_cluster_specific_default_retry_resources

A list of possible retry memory limits (when a program fails because of lack
of memory it will look through this list to find and retry with the next biggest
memory available). Should be in ascending order. Default is qw(2G 4G 16G 32G).

ATTRIBUTES

METHODS

_analyse_completion_state

Analyzes and returns the completion state.
Exit status 0 => pass, otherwise, if the program fails due to lack of memory and
the program can be retried with the next biggest memory, then returns retry, else
returns fail.

_can_retry_from_vmem

Searches for the next biggest memory in _use_retry_resources_required for retry.

_res_to_num

Takes in a memory size (units: KMG or none(no unit means the unit is byte already))
and converts it to a number representing the original size in bytes.

Example:
&_res_to_num('1024') returns 1024 (because 1024 bytes = 1024 bytes)
&_res_to_num('2K') returns 2048 (because 2KB = 2048 bytes)
&_res_to_num('1M') returns 1048576 (because 1MB = 1048576 bytes)

_num_to_res

Takes in a number in bytes and converts it into designated units (K/M/G).

Example:
&_num_to_res(2048) returns '2K'
&_num_to_res(1048576) returns '1M'

_vmem_usage

Gives out warning based on memory usage account information and decides if the program
fails because of lack of memory. If so, invoke _can_retry_from_vmem and return the memory
limit for retry, otherwise return 0.

AUTHOR

John Macdonald - Boutros Lab

Anqi (Joyce) Yang - Boutros Lab

ACKNOWLEDGEMENTS

Paul Boutros, Phd, PI - Boutros Lab

The Ontario Institute for Cancer Research