code: def step(self):
      self.chunk_grad()
      self.local_optim.step()
      self.restore()
  
file_path: tutel/tutel/net.py
imports: import logging
  from .impls.communicate import get_world_size, get_world_rank, create_groups_from_world, barrier
  from .impls.communicate import simple_all_reduce, simple_all_to_all, simple_split, simple_reduce_scatter, simple_all_gather
  from .impls.communicate import all_to_all, all_to_all_single, all_gather, zero_gather, zero_scatter, spatial_split, reduce_scatter, allreduce_forward, allreduce_backward
  from .impls.communicate import batch_all_to_all_v, batch_all_gather_v
label_desc: Use image node_id 7 for calling the TutelDistributedOptimizer obj's underlying member method code with example usage: obj.step() without return types