Testing Balanced Partition Algorithm Implementation in DeepSpeed
This test suite evaluates DeepSpeed’s partition balancing utility functionality, focusing on the balanced distribution of weights across multiple partitions. The tests verify that the partition_balanced function correctly divides weight arrays while maintaining specified difference constraints between partition sums.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
microsoft/deepspeed
tests/unit/utils/test_partition_balanced.py
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: Apache-2.0
# DeepSpeed Team
from deepspeed.runtime import utils as ds_utils
def check_partition(weights, num_parts, target_diff):
result = ds_utils.partition_balanced(weights=weights, num_parts=num_parts)
parts_sum = []
for b, e in zip(result[:-1], result[1:]):
parts_sum.append(sum(weights[b:e]))
assert max(parts_sum) - min(
parts_sum
) == target_diff, f"ds_utils.partition_balanced(weights={weights}, num_parts={num_parts}) return {result}"
def test_partition_balanced():
check_partition([1, 2, 1], 4, target_diff=2)
check_partition([1, 1, 1, 1], 4, target_diff=0)
check_partition([1, 1, 1, 1, 1], 4, target_diff=1)
check_partition([1, 1, 1, 1, 0, 1], 4, target_diff=1)