code: def mpi_worker_multi_learner(
      trainer, working_dir, checkpoint_dir, mb_source
  ):
      comm_rank = cntk.distributed.Communicator.rank()
      np.random.seed(comm_rank)
  
      num_paritions = cntk.Communicator.num_workers()
      partition_index = cntk.Communicator.rank()
      checkpoint_performed = False
      for i, data in enumerate(
          get_minibatch(
              trainer,
              working_dir,
              mb_source,
              num_paritions,
              partition_index,
          )
      ):
          trainer.trainer.train_minibatch(data)
          if i % 50 == 0:
              trainer.trainer.summarize_training_progress()
              if not checkpoint_performed and not checkpoint_dir == "":
                  trainer.trainer.save_checkpoint(checkpoint_dir)
                  trainer.trainer.restore_from_checkpoint(
                      checkpoint_dir
                  )
                  checkpoint_performed = True
  
imports: import pytest
  import cntk
  import numpy
  import sys, os
  import argparse
  import re
  import platform
  from distributed_learner_test import mpiexec_execute
  from bmuf_metrics_aggregation_test import get_minibatch
label_desc: Use image node_id 1 for calling a global function with example usage: mpi_worker_multi_learner(trainer, working_dir, checkpoint_dir, mb_source) without return types