diff --git a/comp.py b/comp.py index 4bc179a680595d30e92ee1dc8fc341a710998302..3131cff16e1d154a3fed704193f098fae56797a3 100755 --- a/comp.py +++ b/comp.py @@ -83,7 +83,7 @@ class CompJob(ParametricJob): TextPRM(self.pars, 'PYTHONEXE', 'Python executable', sys.executable) - TextPRM(self.pars, 'NICE_VALUE', 'nice value', "0") + TextPRM(self.pars, 'PRIORITY', 'priority [1-5]', "3") TextPRM(self.pars, 'NB_TASKS', 'nb of tasks launched in parallel', "1") TextPRM(self.pars, 'NB_THREADS', 'nb of threads by task', "1") @@ -91,6 +91,8 @@ class CompJob(ParametricJob): TextPRM(self.pars, 'GIT_DEPTH', 'git clone depth', '10') TextPRM(self.pars, 'GIT_BRANCH', 'git branch name', 'master') + MultiPRM(self.pars, 'BATTERY_ARG', 'battery argument', ["", "--fpe", "--withWER", "--keep"], "") + MultiPRM(self.pars, 'RUNMETHOD', 'Run Method', ["interactive", "at", "batch"], "batch") TextPRM(self.pars, 'AT_TIME' , 'Delay for at launch (no syntax check, use with care)', "now") @@ -108,10 +110,12 @@ class CompJob(ParametricJob): PRMAction(self.actions, 'g', self.pars['GIT_DEPTH']) PRMAction(self.actions, 'h', self.pars['GIT_BRANCH']) - PRMAction(self.actions, 'i', self.pars['NICE_VALUE']) + PRMAction(self.actions, 'i', self.pars['PRIORITY']) PRMAction(self.actions, 'j', self.pars['NB_TASKS']) PRMAction(self.actions, 'k', self.pars['NB_THREADS']) + PRMAction(self.actions, 'l', self.pars['BATTERY_ARG']) + PRMAction(self.actions, 'm', self.pars['RUNMETHOD']) # AT paramters PRMAction(self.actions, 'n', self.pars['AT_TIME']) @@ -132,11 +136,13 @@ class CompJob(ParametricJob): self.pars['NB_THREADS'].enable(self.pars['COMPILE'].val==True or self.pars['BATTERY'].val!=False) self.pars['CMAKELIST'].enable(self.pars['COMPILE'].val==True) self.pars['DEBUG_MODE'].enable(self.pars['COMPILE'].val==True) - self.pars['NICE_VALUE'].enable(self.pars['BATTERY'].val!=False and self.pars['RUNMETHOD'].val!='sge') + self.pars['PRIORITY'].enable(self.pars['BATTERY'].val!=False and self.pars['RUNMETHOD'].val!='sge') self.pars['GIT_DEPTH'].enable(self.pars['UNZIP'].val=="checkout" and not self.pars['GIT_FULLCLONE'].val) self.pars['GIT_BRANCH'].enable(self.pars['UNZIP'].val=="checkout") # Batch self.pars['AT_TIME'].enable(self.pars['RUNMETHOD'].val=='at') + # battery arg + self.pars['BATTERY_ARG'].enable(self.pars['BATTERY']!=False) def touchFiles(self): for repo in self.repos: @@ -256,9 +262,16 @@ class CompJob(ParametricJob): now = datetime.datetime.now() print("starting battery at %s (come back tomorrow)" % now.ctime()) os.chdir('oo_metaB/bin') - cmd="nice -%s %s battery.py -j %s -k %s >battery.log 2>&1" % \ - (self.pars['NICE_VALUE'].val, self.pars['PYTHONEXE'].val, \ - self.pars['NB_TASKS'].val, self.pars['NB_THREADS'].val) + #cmd="nice -%s %s battery.py %s -j %s -k %s >battery.log 2>&1" % \ + # (self.pars['NICE_VALUE'].val, self.pars['PYTHONEXE'].val, \ + # self.pars['BATTERY_ARG'].val,\ + # self.pars['NB_TASKS'].val, self.pars['NB_THREADS'].val) + cmd="%s battery.py %s -p %s -j %s -k %s >battery.log 2>&1" % \ + (self.pars['PYTHONEXE'].val,\ + self.pars['BATTERY_ARG'].val,\ + self.pars['PRIORITY'].val,\ + self.pars['NB_TASKS'].val,\ + self.pars['NB_THREADS'].val) p = subprocess.Popen(cmd, shell=True) p.wait() # finish script diff --git a/launch.py b/launch.py index 33ba364a357a68ac5db1312315c3928c16070d66..71aa7529cceade66f49951d65badaabb696e83cf 100755 --- a/launch.py +++ b/launch.py @@ -47,7 +47,7 @@ class LaunchJob(ParametricJob): TextPRM(self.pars, 'RESTART_STEP', 'restart step', "-1") - TextPRM(self.pars, 'NICE_VALUE', 'nice value', "0") + TextPRM(self.pars, 'PRIORITY', 'priority [1-5]', "3") TextPRM(self.pars, 'AFFINITY', 'affinity (cores list)', "") TextPRM(self.pars, 'NB_TASKS', 'nb of task launched in parallel', "1") TextPRM(self.pars, 'NB_THREADS', 'nb of threads by task', "1") @@ -88,7 +88,7 @@ class LaunchJob(ParametricJob): PRMAction(self.actions, 'g', self.pars['RESTART_STEP']) PRMAction(self.actions, 'h', self.pars['MULTITEST']) - PRMAction(self.actions, 'i', self.pars['NICE_VALUE']) + PRMAction(self.actions, 'i', self.pars['PRIORITY']) PRMAction(self.actions, 'j', self.pars['AFFINITY']) PRMAction(self.actions, 'k', self.pars['NB_TASKS']) PRMAction(self.actions, 'l', self.pars['NB_THREADS']) @@ -155,8 +155,8 @@ class LaunchJob(ParametricJob): self.pars['FTP_PASS'].enable(self.pars['ENABLE_FTP'].val==True) self.pars['FTP_DIR'].enable(self.pars['ENABLE_FTP'].val==True) - self.pars['NICE_VALUE'].enable(self.pars['RUNMETHOD'].val!='sge' and - self.pars['RUNMETHOD'].val!='slurm') + self.pars['PRIORITY'].enable(self.pars['RUNMETHOD'].val!='sge' and + self.pars['RUNMETHOD'].val!='slurm') self.pars['AFFINITY'].enable(self.pars['RUNMETHOD'].val!='sge' and self.pars['RUNMETHOD'].val!='slurm' and @@ -184,7 +184,6 @@ class LaunchJob(ParametricJob): self.pars['MODEL'].enable(self.pars['RUNMETHOD'].val=='pbs') # cpu model (to choose subqueue) self.pars['PROJECT'].enable(self.pars['RUNMETHOD'].val=='pbs') # project (group access & facturation) - def getJobName(self): if (self.pars['MULTITEST'].val==False): jobname=os.path.basename(os.getcwd())+"."+self.pars['TEST_NAME'].val @@ -382,8 +381,7 @@ class LaunchJob(ParametricJob): if self.pars['RUNMETHOD'].val != 'sge' and self.pars['RUNMETHOD'].val != 'slurm': if self.pars['AFFINITY'].val != '': pin.write(('battery.setAffinity("%s")\n'%self.pars['AFFINITY'].val).encode('utf-8')) - if self.pars['NICE_VALUE'].val != '0': - pin.write(('battery.setNice(%s)\n'%self.pars['NICE_VALUE'].val).encode('utf-8')) + pin.write(('battery.setPriority(%s)\n'%self.pars['PRIORITY'].val).encode('utf-8')) pin.write(('battery.setNumTasks(%s)\n'%self.pars['NB_TASKS'].val).encode('utf-8')) pin.write(('battery.setNumThreads(%s)\n'%self.pars['NB_THREADS'].val).encode('utf-8')) diff --git a/launchGui.pyw b/launchGui.pyw index 2af43e93caee3420fe64323adc927ec53d5c8ce0..4c57d566dae71be25d6761b7e2af3da83015c005 100755 --- a/launchGui.pyw +++ b/launchGui.pyw @@ -135,7 +135,7 @@ class LaunchGui(QWidget): nbProcs = multiprocessing.cpu_count() self.sf['NB_TASKS'] = TextLine(self, grplay2, self.launch.pars['NB_TASKS'], 0, 0, 1, QIntValidator(1,nbProcs)) self.sf['NB_THREADS'] = TextLine(self, grplay2, self.launch.pars['NB_THREADS'], 0, 3, 1, QIntValidator(1,nbProcs)) - self.sf['NICE_VALUE'] = TextLine(self, grplay2, self.launch.pars['NICE_VALUE'], 1, 0, 1, QIntValidator(1,19)) + self.sf['PRIORITY'] = TextLine(self, grplay2, self.launch.pars['PRIORITY'], 1, 0, 1) #, QIntValidator(1,5)) self.sf['AFFINITY'] = TextLine(self, grplay2, self.launch.pars['AFFINITY'], 1, 3, 1) self.sf['RUNMETHOD'] = MultiPMRLine(self, grplay2, self.launch.pars['RUNMETHOD'],2,0) @@ -260,12 +260,7 @@ class LaunchGui(QWidget): mtfdir, mtfexe = os.path.split(self.launch.pars['EXEC_NAME'].val) ldlp = mtfdir+':'+env.value('LD_LIBRARY_PATH','') env.insert('LD_LIBRARY_PATH',ldlp) - self.process.setProcessEnvironment(env) - # gestion du nice sur le QProcess : pas arrive a faire marcher !!! - #self.process.setPriority (self.launch.pars['NICE_VALUE'].val) - #pid = self.process.pid() - #print "QProcess pid : ",self.process.pid() # self.process.readyReadStandardOutput.connect(self.readStdOutput) # launch.go() ... @@ -273,7 +268,6 @@ class LaunchGui(QWidget): except Exception as e: QMessageBox.information(self, 'Error', str(e)) - # re enable the gui modifications self.guiEnable(True)