def __init__(self, partition): grinder.logger.output('Selected dataset %s' % dataset_url) self.test = Test(Instrumented.next_test, 'Partition into %d slices' % partition) self.test_tot = Test(100 + Instrumented.next_test, 'Total for %d slices' % partition) Instrumented.next_test += 1 self.requests = generate_subset_requests(variable, {'time': partition}) # Create a fresh callable to instrument def f(req): return req() self.test.record(f) self.f = f def f2(): for req in self.requests: grinder.logger.output('Requesting %s' % req) data = self.f(req) grinder.logger.output('Data returned of shape %s' % data.shape) self.test_tot.record(f2) self.f2 = f2
def __init__(self, partition): self.test = Test(Instrumented.next_test, 'Partition into %d slices' % partition) Instrumented.next_test += 1 self.requests = generate_subset_requests(variable, {'time': partition}) # Create a fresh callable to instrument def f(req): return req() self.test.record(f) self.f = f
def __init__(self): self.thread = grinder.getThreadNumber() # Select random dataset #!TODO: select dataset by Thread number? self.dataset_url = random.choice(dataset_list) self.ds = Dataset(self.dataset_url) self.variable = self.ds.variables[variable] self.requests = generate_subset_requests(self.variable, partition_dict) grinder.logger.output('Thread %d selecting %s' % (self.thread, self.dataset_url)) grinder.logger.output('Thread %d has partitions %s' % (self.thread, partition_dict)) grinder.logger.output('Thread %d has variable of shape %s' % (self.thread, self.variable.shape))
tests = [] i = 1 for server in data_urls.DAP_BASES: url = data_urls.make_dataset_list(server).next() test = Test(i, server) i += 1 print test def f(req): return req() test.record(f) ds = Dataset(url) var = ds.variables[variable] requests = generate_subset_requests(var, partition_dict) tests.append((url, test, f, requests)) class TestRunner(object): def __call__(self): for url, test, f, requests in tests: grinder.logger.output('Scanning dataset %s' % url) # Each invocation of f is recorded for req in requests: grinder.logger.output('Requesting %s' % req) data = f(req) grinder.logger.output('Data returned of shape %s' % data.shape)
for server in data_urls.DAP_BASES: url = data_urls.make_dataset_list(server).next() test = Test(i, server) i += 1 print test def f(req): return req() test.record(f) ds = Dataset(url) var = ds.variables[variable] requests = generate_subset_requests(var, partition_dict) tests.append((url, test, f, requests)) class TestRunner(object): def __call__(self): for url, test, f, requests in tests: grinder.logger.output('Scanning dataset %s' % url) # Each invocation of f is recorded for req in requests: grinder.logger.output('Requesting %s' % req) data = f(req) grinder.logger.output('Data returned of shape %s' % data.shape)