首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HDF5写入线程并发

HDF5写入线程并发
EN

Stack Overflow用户
提问于 2010-06-26 07:39:05
回答 1查看 1.9K关注 0票数 4

HDF5是否能够单独处理多个线程,或者它是否必须进行外部同步?OpenMP示例建议使用后者。

如果是前者,那么定义要写入的数据空间的正确方式是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-06 05:37:09

任何玉米,

HDF5可以在没有外部同步的情况下处理多个线程,尽管写入仍然是串行的。您应该编译最新版本(自2011年4月5日起为1.8.6),并使用--enable-threadsafe-with-pthreads=/pthreads-include-path/,/pthreads-lib-path/标志运行./configure

例如:

代码语言:javascript
复制
./configure --enable-threadsafe -with-pthreads=/usr/include,/usr/lib

关于定义用于写入的数据空间,最简单的方法是使用多维数组、排名值和H5Screate_simple函数构造一个基本的矩形超平面。我的通常遵循相同的步骤:

代码语言:javascript
复制
    //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);

希望这能有所帮助!

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3122091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档