imageRecordIter是如何爱分布式的前提下进行数据划分的?

我在跑imag-classifcation模型的时候,用他们自带的imagerecorditer下载 cifar10 数据集。然后,我发现一一个问题,其实每个worker node都下载了完整的数据集。但是,买个node却在不同的划分中进行了训练,而且,返回dataiter 也只包含有部分的数据集。这个到底是怎么做到的呢?我猜想,他们应该是例如kv.number_worker 和rank进行数据的划分。但是我找不到证据。请问有大侠知道他们是怎么做到的吗?