def test_cfunc(self): with self.assertRaises(TypeError): func = CThreadPool.lookupCFunction("WRONG-TYPE", "no-this-does-not-exist") with self.assertRaises(AttributeError): func = CThreadPool.lookupCFunction(TEST_LIB, "no-this-does-not-exist")
def test_context(self): N = 256 arg = ctypes.c_int(0) job = CThreadPool.lookupCFunction(TEST_LIB, "thread_pool_test_func1") with startCThreadPool(16) as tp: for i in range(N): tp.addTask(job, ctypes.byref(arg)) self.assertEqual(arg.value, N)
def test_create(self): pool = CThreadPool(32, start=True) job = CThreadPool.lookupCFunction(TEST_LIB, "thread_pool_test_func1") arg = ctypes.c_int(0) N = 256 for i in range(N): pool.addTask(job, ctypes.byref(arg)) pool.join() self.assertEqual(arg.value, N)
def __init__(self , ert_handle , size , run_fs , run_count): self.ert_handle = ert_handle self.size = size self.runner = ert_handle.getEnkfSimulationRunner() site_config = self.ert_handle.siteConfig() self.queue_manager = JobQueueManager( site_config.getJobQueue() ) self.queue_manager.startQueue( size , verbose = True ) mask = BoolVector( default_value = True ) mask[size - 1] = True self.ert_handle.addDataKW("<ELCO_RUN_COUNT>" , "%s" % run_count) self.ert_run_context = self.ert_handle.getRunContextENSEMPLE_EXPERIMENT( run_fs , mask ) self.thread_pool = CThreadPool( 8 ) self.submit_func = CThreadPool.lookupCFunction( ENKF_LIB , "enkf_main_isubmit_job__" )