Ejemplo n.º 1
0
    def optVOInoParal(self,i):
	n1=self._n1
	args3=self.getParametersOptVoi(i)
	Xst=self.Obj.sampleFromX(1)
	st=Xst[0:1,:]
	args3['start']=st
	self.optRuns.append(misc.VOIOptWrapper(self,**args3))
	fl.writeNewPointKG(self,self.optRuns[0])
	
        self.optRuns=[]
        self.optPointsArray=[]
Ejemplo n.º 2
0
    def optVOIParal(self,i,nStart,numProcesses=None):
        try:
            n1=self._n1
          #  n2=self._dimW
         #   dim=self.dimension
	    args3=self.getParametersOptVoi(i)
	    Xst=self.Obj.sampleFromX(nStart)
            jobs = []
            pool = mp.Pool(processes=numProcesses)
            for j in range(nStart):
                st=Xst[j:j+1,:]
		args2=args3.copy()
                args2['start']=st
                job = pool.apply_async(misc.VOIOptWrapper, args=(self,), kwds=args2)
                jobs.append(job)
            
            pool.close()  # signal that no more data coming in
            pool.join()  # wait for all the tasks to complete
        except KeyboardInterrupt:
            print "Ctrl+c received, terminating and joining pool."
            pool.terminate()
            pool.join()

        numStarts=nStart
     #   print jobs[0].get()
        for j in range(numStarts):
            try:
                self.optRuns.append(jobs[j].get())
            except Exception as e:
                print "Error optimizing VOI"
                
        if len(self.optRuns):
            j = np.argmax([o.fOpt for o in self.optRuns])
	    fl.writeNewPointKG(self,self.optRuns[j])
        self.optRuns=[]
        self.optPointsArray=[]