parameters: (self, model)
docstring: scaling test on multinodes
docstring_summary: scaling test on multinodes
docstring_tokens: scaling test on multinodes
function: def run_scal_test(self, model):
          '''scaling test on multinodes'''
          num_nodes = self.calculate_numnodes()
          if num_nodes <= 1 or ((num_nodes & (num_nodes - 1))) != 0:
              logging.exception("nodes number: {} is not a power of 2.".format(num_nodes))
          self.manipulate_host_file()
          origin_hostfile = self.host_file
          fps_table = {}
          while num_nodes > 0:
              self.host_file = self.gen_host_file(num_nodes)
              self.run_specific_model(model)
              fps_table[num_nodes] = self.speed
              num_nodes /= 2
          # roll back actual num_nodes for possible topology 'all'
          os.remove(self.host_file)
          self.host_file = origin_hostfile
          self.print_scal_test_results(fps_table)
function_tokens: def run_scal_test ( self , model ) : num_nodes = self . calculate_numnodes ( ) if num_nodes <= 1 or ( ( num_nodes & ( num_nodes - 1 ) ) ) != 0 : logging . exception ( "nodes number: {} is not a power of 2." . format ( num_nodes ) ) self . manipulate_host_file ( ) origin_hostfile = self . host_file fps_table = { } while num_nodes > 0 : self . host_file = self . gen_host_file ( num_nodes ) self . run_specific_model ( model ) fps_table [ num_nodes ] = self . speed num_nodes /= 2 # roll back actual num_nodes for possible topology 'all' os . remove ( self . host_file ) self . host_file = origin_hostfile self . print_scal_test_results ( fps_table )