phenotypic.sdk_.slurm.calculate_optimal_array_chunks#
- phenotypic.sdk_.slurm.calculate_optimal_array_chunks(num_images: int, array_limit: int) List[Tuple[int, int]][source]#
Split images into array job chunks based on SLURM array size limits.
Calculates the minimum number of array jobs needed to process all images while respecting the cluster’s MaxArraySize limit. Each chunk is represented as a (start, end) tuple of array indices.
- Parameters:
- Returns:
List of (start_idx, end_idx) tuples defining each array job chunk. Indices are 0-based and end is exclusive (Python slice convention).
- Raises:
ValueError – If
array_limitis not positive.- Return type:
Examples
>>> calculate_optimal_array_chunks(500, 1000) [(0, 500)]
>>> calculate_optimal_array_chunks(2500, 1000) [(0, 1000), (1000, 2000), (2000, 2500)]
>>> calculate_optimal_array_chunks(1000, 1000) [(0, 1000)]
>>> calculate_optimal_array_chunks(1001, 1000) [(0, 1000), (1000, 1001)]