# 3-sigma target yield yt=YieldTargeting( designParams, statParams, opParams, heads, analyses, measures, variables=variables, beta=3.0, wcSpecs=wcList, # Comment out to use default initial point (lo+hi)/2 # initial=atDesign, initialNominalDesign=True, # Norms for measures with zero goal norms={ 'area': 100e-12, 'vgs_drv': 1e-3, 'vds_drv':1e-3 }, tradeoffs=1e-6, # Tradeoff optimization weight, can be overridden in *CbdOptions stopWhenAllSatisfied=True, # Initial nominal optimization initialCbdOptions={ 'debug': 1, 'method': 'global', 'stepTol': 1e-5, }, # Main optimization cbdOptions={ 'debug': 1, 'method': 'global', 'stepTol': 1e-5, }, wcOptions={ 'debug': 0 }, debug=2, spawnerLevel=1 ) atDesign, agg, wc, anCount = yt() print(formatParameters(atDesign)) print(wc.formatResults()) print(agg.formatResults()) print(anCount) # Finalize cOS parallel environment cOS.finalize()
# Go to next job atJob += 1 # Join jobs tid, result = cOS.Join(block=True).popitem() print "Received", result, "from", tid # Get status and remove it from the dictionarz of running jobs status = running[tid] del running[tid] index = status['index'] # Make space for the result if index >= len(results): results.extend([None] * (index + 1 - len(results))) # Store result results[index] = result # Check if we need to stop if result >= stopAtResult and not stop: stop = True print "Spawning no more tasks" print("Results: " + str(results)) # Finish, need to do this if MPI is used cOS.finalize()