| | 476 | ==== Plotting execution time and memory usage ==== |
| | 477 | |
| | 478 | Once the last in the series of [wiki://Workshops/JobCheckpointing/Examples#checkpoint_submitter.sh checkpoint_submitter.sh] jobs has detected the end of the computational workflow, it will call on the [wiki:///Workshops/JobCheckpointing/Examples#Pythonscripts Python scripts] listed below to perform a post-worflow analysis in order to plot execution time and memory usage (see output fields '''Elapsed''' and '''MaxRSS''' in '''man sacct''') and identify possible anomalies from among all of the [wiki://Workshops/JobCheckpointing/Examples#checkpoint_runner.sh checkpoint_runner] jobs that have participated in the workflow. |
| | 479 | |
| | 480 | The types of anomalies determined, if any are the following. |
| | 481 | |
| | 482 | * | Z | > 3.5 for execution time, where |
| | 483 | |
| | 484 | {{{ |
| | 485 | Z = (value - mean) / (standard deviation) |
| | 486 | }}} |
| | 487 | |
| | 488 | * modZ > 3.5 for '''MaxRSS''' (SLURM max job memory usage), where |
| | 489 | |
| | 490 | {{{ |
| | 491 | modZ = 0.6745 * | x - median | / (Median Absolute Deviation) |
| | 492 | }}} |
| | 493 | |
| | 494 | See also [https://www.itl.nist.gov/div898/handbook/eda/section3/eda35h.htm NIST - Detection of Outliers]. |
| | 495 | |
| | 496 | ==== Python scripts ==== |
| | 497 | |