Example #1
0
    def manipulator(self):
        m = manipulator.ConfigurationManipulator()

        if 'tomcat_jvm' in self.tune:
            print "Adding Tomcat JVM flags to the tuning configurations"
            for flag_set in self.bool_flags:
                for flag in flag_set:
                    m.add_parameter(
                        manipulator.EnumParameter(flag, ['on', 'off']))
            for flag_set in self.param_flags:
                for flag in flag_set:
                    value = flag_set[flag]
                    if (value['min'] >= value['max']):
                        m.add_parameter(
                            manipulator.IntegerParameter(
                                value['flagname'], value['max'], value['min']))
                    else:
                        m.add_parameter(
                            manipulator.IntegerParameter(
                                value['flagname'], value['min'], value['max']))
            for flag in self.apache_bool_flags:
                m.add_parameter(manipulator.EnumParameter(flag, ['on', 'off']))

        # print self.apache_param_flags
        if 'apache' in self.tune:
            print "Adding Apache flags to the tuning configurations"
            for index, value in self.apache_param_flags.iterrows():
                m.add_parameter(
                    manipulator.IntegerParameter(value['name'], value['min'],
                                                 value['max']))

        if 'mysql' in self.tune:
            print "Adding MySQL flags to the tuning configurations"
            for flag in self.mysql_bool_flags:
                m.add_parameter(manipulator.EnumParameter(flag, ['on', 'off']))
            for index, value in self.mysql_param_flags.iterrows():
                m.add_parameter(
                    manipulator.IntegerParameter(value['name'], value['min'],
                                                 value['max']))

        if 'tomcat' in self.tune:
            print "Adding Tomcat AJP Connector flags to the tuning configurations"
            for flag in self.ajp_bool_flags:
                m.add_parameter(manipulator.EnumParameter(flag, ['on', 'off']))
            for index, value in self.ajp_param_flags.iterrows():
                m.add_parameter(
                    manipulator.IntegerParameter(value['name'], value['min'],
                                                 value['max']))

        # print "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
        # print "Dumping the manipulator to a file"
        # pickle.dump( m, open( "manipulator.p", "wb" ) )

        return m
Example #2
0
    def manipulator(self):
        m = manipulator.ConfigurationManipulator()
        m.add_parameter(manipulator.IntegerParameter('-O', 0, 3))
        for flag in self.cc_flags:
            m.add_parameter(
                manipulator.EnumParameter(flag, ['on', 'off', 'default']))
        for param in self.cc_params:
            defaults = self.cc_param_defaults[param]
            if defaults['max'] <= defaults['min']:
                defaults['max'] = float('inf')
            defaults['max'] = min(defaults['max'],
                                  max(1, defaults['default']) * args.scaler)
            defaults['min'] = max(defaults['min'],
                                  max(1, defaults['default']) / args.scaler)

            if param == 'l1-cache-line-size':
                # gcc requires this to be a power of two or it internal errors
                m.add_parameter(manipulator.PowerOfTwoParameter(param, 4, 256))
            elif defaults['max'] > 128:
                m.add_parameter(
                    manipulator.LogIntegerParameter(param, defaults['min'],
                                                    defaults['max']))
            else:
                m.add_parameter(
                    manipulator.IntegerParameter(param, defaults['min'],
                                                 defaults['max']))

        return m
Example #3
0
 def manipulator(self):
   """
   Define the search space by creating a
   ConfigurationManipulator
   """
   m = manipulator.ConfigurationManipulator()
   self.goals={}
   self.trace = {}
   self.weight = {}
   weightTotal = 0
   for n in range(self.args.num_params):
     pname = 'P%03d' % (n)
     randbool = random.randint(0,1) == 0
     if self.args.use_enum_param:
       m.add_parameter(manipulator.EnumParameter(pname, ['on', 'off']))
       self.goals[pname] = 'off' if randbool else 'on'
     elif self.args.use_int_param:
       m.add_parameter(manipulator.IntegerParameter(pname, 256, 257))
       self.goals[pname] = 256 if randbool else 257
     else:
       m.add_parameter(manipulator.BooleanParameter(pname))
       self.goals[pname] = randbool 
     self.trace[pname] = {}
     weight = n*n + 1
     self.weight[pname] = weight
     weightTotal += weight
     
   self.maxscore = weightTotal + 1
   self.best = self.maxscore
   self.bestcfg = None
   if False:
     print 'goals = ',
     pprint(self.goals)
   
   return m
Example #4
0
 def manipulator(self):
     m = manipulator.ConfigurationManipulator()
     for flag_set in self.bool_flags:
         for flag in flag_set:
             m.add_parameter(manipulator.EnumParameter(flag, ['on', 'off']))
     for flag_set in self.param_flags:
         for flag in flag_set:
             value = flag_set[flag]
             if(value['min'] >= value['max']):
                 m.add_parameter(manipulator.IntegerParameter(value['flagname'],value['max'],value['min']))
             else:
                 m.add_parameter(manipulator.IntegerParameter(value['flagname'],value['min'],value['max']))
     return m
    def manipulator(self):
        #      print 'manipulator started'
        m = manipulator.ConfigurationManipulator()
        for flag_set in self.all_bool_flags:
            for flag in flag_set:
                m.add_parameter(
                    manipulator.EnumParameter(flag, ['on', 'off', 'default']))
        for flag_set in self.all_param_flags:
            #         print flag_set
            for flag in flag_set:
                value = flag_set[flag]
                #                print value
                if (value['min'] >= value['max']):
                    m.add_parameter(
                        manipulator.IntegerParameter(value['flagname'],
                                                     value['max'],
                                                     value['min']))
                else:
                    m.add_parameter(
                        manipulator.IntegerParameter(value['flagname'],
                                                     value['min'],
                                                     value['max']))

        return m