code: def send_to_targets(
      self, msg, original_msg_id, targets, idents, is_coalescing
  ):
      if is_coalescing:
          self.accumulated_replies[original_msg_id] = {
              target.encode("utf8"): None for target in targets
          }
          self.accumulated_targets[original_msg_id] = targets
  
      for target in targets:
          new_msg = self.append_new_msg_id_to_msg(
              self.get_new_msg_id(original_msg_id, target),
              target,
              idents,
              msg,
          )
          self.engine_stream.send_multipart(new_msg, copy=False)
  
file_path: ipyparallel/ipyparallel/controller/broadcast_scheduler.py
imports: import logging
  import zmq
  from traitlets import Bool, Bytes, Integer, List, Unicode
  from ipyparallel import util
  from ipyparallel.controller.scheduler import Scheduler, ZMQStream, get_common_scheduler_streams
label_desc: Use image node_id 2 for calling the BroadcastScheduler obj's underlying member method code with example usage: obj.send_to_targets(msg, original_msg_id, targets, idents, is_coalescing) without return types