code: def split_input_files_per_worker(args):
      """Set the input files per each training worker."""
      global INPUT_FILES_PER_WORKER
      import numpy as np
      from torchdata.datapipes.iter import IterableWrapper
  
      data_root_iter = args.data_root
      if isinstance(data_root_iter, str):
          data_root_iter = [data_root_iter]
  
      file_url_dp = IterableWrapper(data_root_iter).list_files_by_s3()
      all_files = list(file_url_dp)
      INPUT_FILES_PER_WORKER = [
          f.tolist()
          for f in np.array_split(all_files, args.num_workers)
      ]
  
imports: import ray
  from ray import train
  from ray.train import DataConfig, ScalingConfig, RunConfig, Checkpoint
  from ray.train.torch import TorchTrainer
  from ray.data.datasource.partitioning import Partitioning
  import tempfile
  import itertools
  import os
  import time
  from benchmark import Benchmark, BenchmarkMetric
  from image_loader_microbenchmark import get_transform, crop_and_flip_image, decode_image_crop_and_flip, center_crop_image
  from image_loader_microbenchmark import get_mosaic_dataloader
  import torch
  import torch.distributed
  from torchvision.models import resnet50
  from torchvision.transforms.functional import pil_to_tensor
  import torch.nn
  import torch.optim
  from dataset_benchmark_util import get_prop_parquet_paths, IMG_S3_ROOT, get_mosaic_epoch_size, IMAGENET_WNID_TO_ID
label_desc: Use image node_id 5 for calling a global function with example usage: split_input_files_per_worker(args) without return types