class_docstr: Creates common worlds (up to max_concurrent_context) and manage the
  sequential execution of collectives that shares the same context with
  cyclic control inputs.
class_docstr_tok: ["Creates","common","worlds","(","up","to","max_concurrent_context",")","and","manage","the","sequential","execution","of","collectives","that","shares","the","same","context","with","cyclic","control","inputs","."]
code: def get_control_and_context(self, control_output_blob):
      common_world, control_input = [None, None]
      current_slot = self.counter % self.max_concurrent_context
      if len(self.common_worlds) < self.max_concurrent_context:
          common_world = _CreateOrCloneCommonWorld(
              self.param_init_net,
              "{}_{}_cw".format(self.name, current_slot),
              rendezvous=self.rendezvous,
          )
          self.common_worlds.append(common_world)
          self.control_inputs.append(control_output_blob)
      else:
          common_world = self.common_worlds[current_slot]
          control_input = self.control_inputs[current_slot]
          self.control_inputs[current_slot] = control_output_blob
      self.counter += 1
      return common_world, control_input
  
imports: from collections import OrderedDict
  import logging
  import copy
  from multiprocessing import cpu_count
  from caffe2.python import model_helper, dyndep, scope, workspace, core, memonger, utils
  from caffe2.proto import caffe2_pb2
  import numpy
  import warnings
label_desc: Use image node_id 2 for calling the CollectivesConcurrencyControl obj's underlying member method code with example usage: obj.get_control_and_context(control_output_blob) and returns: common_world,  control_input