On 11/2/12 4:22 PM, Ben Elliston wrote:
> My reading of the PyTables FAQ is that concurrent read access should
> be safe with PyTables. However, when using a pool of worker processes
> to read different parts of a large blosc-compressed CArray, I see:
>
> HDF5-DIAG: Error detected in HDF5 (1.8.8) thread 140476163647232:
>    #000: ../../../src/H5Dio.c line 174 in H5Dread(): can't read data
>      major: Dataset
>      minor: Read failed
>    #001: ../../../src/H5Dio.c line 448 in H5D_read(): can't read data
>      major: Dataset
>      minor: Read failed
>    etc.

Hmm, now that I think, Blosc is not thread safe, and that can bring 
these sort of problems if you use it from several threads (but it should 
be safe when using several *processes*).  In case your worker processes 
are threads, then it might help to deactivate threading in Blosc by 
setting the MAX_BLOSC_THREADS parameter:

http://pytables.github.com/usersguide/parameter_files.html?#tables.parameters.MAX_BLOSC_THREADS

to 1.

HTH,

-- 
Francesc Alted


------------------------------------------------------------------------------
LogMeIn Central: Instant, anywhere, Remote PC access and management.
Stay in control, update software, and manage PCs from one command center
Diagnose problems and improve visibility into emerging IT issues
Automate, monitor and manage. Do more in less time with Central
http://p.sf.net/sfu/logmein12331_d2d
_______________________________________________
Pytables-users mailing list
Pytables-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pytables-users

Reply via email to