Shortcuts

mmengine.dist.collect_results

mmengine.dist.collect_results(results, size, device='cpu', tmpdir=None)[source]

Collected results in distributed environments.

Parameters:
  • results (list[object]) – Result list containing result parts to be collected. Each item of result_part should be a picklable object.

  • size (int) – Size of the results, commonly equal to length of the results.

  • device (str) – Device name. Optional values are ‘cpu’, ‘gpu’ or ‘npu’.

  • tmpdir (str | None) – Temporal directory for collected results to store. If set to None, it will create a temporal directory for it. tmpdir should be None when device is ‘gpu’ or ‘npu’. Defaults to None.

Returns:

The collected results.

Return type:

list or None

Examples

>>> # distributed environment
>>> # We have 2 process groups, 2 ranks.
>>> import mmengine.dist as dist
>>> if dist.get_rank() == 0:
        data = ['foo', {1: 2}]
    else:
        data = [24, {'a': 'b'}]
>>> size = 4
>>> output = dist.collect_results(data, size, device='cpu')
>>> output
['foo', 24, {1: 2}, {'a': 'b'}]  # rank 0
None  # rank 1