Any*_*orn 4 concurrency multithreading hdf5
HDF5能够自己处理多个线程,还是必须进行外部同步?OpenMP示例表明后者.
如果是前者,那么定义要写入的数据空间的正确方法是什么?
Anycorn,
HDF5可以处理多个线程而无需外部同步,但写入仍然是串行的.您应该编译最新版本(截至2011年4月5日的1.8.6)并./configure使用--enable-threadsafe和-with-pthreads=/pthreads-include-path/,/pthreads-lib-path/标志运行.
例如:
./configure --enable-threadsafe -with-pthreads=/usr/include,/usr/lib
Run Code Online (Sandbox Code Playgroud)
关于定义用于写入的数据空间,最简单的方法是使用多维数组,秩值和H5Screate_simple函数来构造基本矩形超平面.我通常遵循相同的步骤:
//NUM = Number of spaces in this dimension
//Create a 1 dimensional array
hsize_t dsDim[1] = {NUM};
//Create the 1x1xNUM data space (rank param = 1).
hid_t dSpace = H5Screate_simple(1, dsDim, NULL);
...
Create datasets using the dataspace
...
//Release the data space
H5Sclose(dSpace);
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
1842 次 |
| 最近记录: |