Example #1
0
 def findCachedDomain(self, var_cache_id, region, dataset=None ):
     cached_var = self.cachedVariables.get( var_cache_id, None )
     if cached_var == None:
         cached_var =  CachedVariable( id=var_cache_id, dataset=dataset)
         self.cachedVariables[ var_cache_id ] = cached_var
     overlap,domain = cached_var.findDomain( region )
     if overlap == Domain.CONTAINED: return cached_var, domain
     return cached_var, None
Example #2
0
 def loadStats( self ):
     worker_stats = self.getWorkerCacheStats()
     for worker_stat in worker_stats:
         wid = worker_stat['wid']
         cache_stats = worker_stat['stats']
         for var_stats in cache_stats:
             cache_id = var_stats.get('cid',None)
             cached_cvar = self.cachedVariables.get( cache_id, None )
             if cached_cvar is None:
                 cached_cvar = CachedVariable(  id=cache_id, variable_spec=var_stats )
                 self.cachedVariables[ cache_id ] = cached_cvar
             domain_stats = var_stats['domains']
             for domain_stat in domain_stats:
                 cached_cvar.addCachedDomain( domain_stat['region'], region_spec=domain_stat, variable_spec=var_stats )
Example #3
0
 def getKernelInputs( self, operation, op_index, request ):
     read_start_time = time.time()
     use_cache =  request['cache']
     embedded = request.getBoolRequestArg('embedded')
     result_names = request['result_names']
     regions = request.region
     cache_type = CachedVariable.getCacheType( use_cache, operation )
     variables = []
     data_specs = []
     if operation is not None:
         input_dataset = []
         input_ids = operation["inputs"]
         for inputID in input_ids:
             if inputID[0] == "$":
                 try:
                     inputIndex = int(inputID[1:])
                     input_dataset.append( request.data.values[inputIndex] )
                 except Exception, err:
                     raise Exception( "Input ID '%s' syntax error: %s" % ( inputID, str(err) ) )
             elif inputID == "*":
                 for input_dset in request.data.values:
                     input_dataset.append( input_dset )
             else:
                 input_dataset.append( request.data.getValue( inputID ) )