From 336849201239bba6e7f94b968c60dfad88612f90 Mon Sep 17 00:00:00 2001
From: Daniel Brown <ddb@star.sr.bham.ac.uk>
Date: Sat, 9 May 2015 18:46:17 +0100
Subject: [PATCH] changing driver for ROM hdf5 reading

---
 pykat/optics/romhom.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pykat/optics/romhom.py b/pykat/optics/romhom.py
index 4048910..b125dd3 100644
--- a/pykat/optics/romhom.py
+++ b/pykat/optics/romhom.py
@@ -608,11 +608,11 @@ def CreateTrainingSetHDF5(filename, maxOrder, z, w0, R, halfMapSamples, newtonCo
     print("Data written to %s.h5" % filename)
     
     
-def _worker_ROM(hdf5Filename, job_queue, result_err, result_idx, event):
+def _worker_ROM(hdf5Filename, job_queue, result_err, result_idx, event, driver='core'):
     # h5py drivers: 'core', 'sec2', 'stdio', 'mpio'
     # Need to use something ot her than sec2, the default on OSX,
     # as it doesn't play nice with multiple processes reading files
-    with h5py.File("%s.h5" % hdf5Filename, driver="core", mode='r') as file:
+    with h5py.File("%s.h5" % hdf5Filename, driver=driver, mode='r') as file:
     
         TS = file["TS"]
         
@@ -640,7 +640,7 @@ def _worker_ROM(hdf5Filename, job_queue, result_err, result_idx, event):
                 
                 event.set()
 
-def MakeROMFromHDF5(hdf5Filename, greedyFilename=None, EIFilename=None, tol=1e-10, NProcesses=1, maxRBsize=50):
+def MakeROMFromHDF5(hdf5Filename, greedyFilename=None, EIFilename=None, tol=1e-10, NProcesses=1, maxRBsize=50, driver="core"):
     start = time.time()
     
     #### Start reading TS file ####
@@ -686,7 +686,7 @@ def MakeROMFromHDF5(hdf5Filename, greedyFilename=None, EIFilename=None, tol=1e-1
         
         Names = range(NProcesses)
         procs = [Process(name="process_%i" % l[0], target=_worker_ROM, 
-                         args=(hdf5Filename, queue, l[1], l[2], l[3])) for l in zip(Names, result_err, result_idx, locks)]
+                         args=(hdf5Filename, queue, l[1], l[2], l[3], driver)) for l in zip(Names, result_err, result_idx, locks)]
 
         max_res = np.zeros((NProcesses), dtype='d')
         max_idx = np.zeros((NProcesses), dtype='i')
-- 
GitLab