def METHOD_NAME(args):
    torch.distributed.init_process_group(backend='gloo', init_method='env://', timeout=datetime.timedelta(seconds=300))
    dataset = LocalDataset(size=args.number_of_files, filelist=args.file_name_list, prefix=args.path_prefix)
    sampler = DistributedSampler(dataset, shuffle=True)
    data_loader = torch.utils.data.DataLoader(
        dataset,
        batch_size=args.batch_size,
        sampler=sampler,
        num_workers=args.workers,
        drop_last=True,
        persistent_workers=True)
    count = 0
    st = time.time()
    for _ in data_loader:
        if count % 100 == 0 and args.local_rank == 0:
            print("processing ", count)
        count += 1
    total_ts = time.time() - st
    print("time cost for {} batches:".format(count), total_ts)
    if count > 0:
        print("Overall Avg. Training Latency {:.2f} ms".format(total_ts * 1000.0 / count / args.batch_size))
        for metric in registry.collect():
            name = metric.name
            num = 0
            total = 0
            for item in metric.samples:
                if item.name == name + "_sum":
                    total = item.value
                elif item.name == name + "_count":
                    num = item.value
            print("{}: {:.2f} ms".format(name, total * 1000.0/num))