code: def make_push_benchmark(get_view):
      class PushMessageSuite:
          param_names = ["Number of engines", "Number of bytes"]
          timer = timeit.default_timer
          timeout = 120
          params = [engines, byte_param]
  
          view = None
          client = None
  
          def setup(self, number_of_engines, number_of_bytes):
              self.client = ipp.Client(profile="asv")
              self.view = get_view(self)
              self.view.targets = list(range(number_of_engines))
              wait_for(lambda: len(self.client) >= number_of_engines)
  
          def time_broadcast(self, engines, number_of_bytes):
              reply = self.view.apply_sync(
                  lambda x: None,
                  np.array([0] * number_of_bytes, dtype=np.int8),
              )
  
          def teardown(self, *args):
              if self.client:
                  self.client.close()
  
      return PushMessageSuite
  
imports: import os
  import time
  import timeit
  import numpy
  import ipyparallel
label_desc: Use image node_id 5 for calling a global function with example usage: make_push_benchmark(get_view) and returns: PushMessageSuite