我正在研究一个C++项目,通过一些已知的力场来跟踪粒子。该代码以粒子位置和动量的形式生成大量数据。我已经在粒子跟踪例程中使用了openmp指令。但是,总体性能最终取决于编写输出文件所需的时间。我明白,使用线程写入数据到输出文件不建议(我已经尝试过)。我很好奇,是否有任何方法可以使用多个线程将数据写入多个文件(比如我有4个线程,每个线程同时写入4个文件)。你能告诉我如何着手吗?关于如何有效地将数据流传输到文件的任何提示? 在此先感谢是否有可能:使用多线程将流输出到不同的文件/
0
A
回答
0
这里是并发I/O的话题一篇有趣的文章: http://www.drdobbs.com/parallel/multithreaded-file-io/220300055
有限制这种方法增益的一些基本障碍。第一是硬件能力。 HDD和SSD的读取和写入速度有限,试图同时读取/写入多个文件可能无法大幅提高速度。事实上,在试图同时完成多项任务的硬盘上,实际上可能会在很多情况下损害性能,这可以在我提供的链接的基准测试中看到。看起来2-4线程可以在阅读中获得明显的收益,但写作规格令人失望。多线程技术绝对有助于加速数据的序列化。
相关问题
- 1. 是否可以使用ABCpdf将数据流输出到PDF?
- 2. 是否有可能从不同的线程调用JS函数?
- 3. 使用grunt,是否有可能编译并输出一个更改的文件到不同的目录?
- 4. 是否有可能有多个STDIN流?
- 5. 是否有可能为不同的文件夹有不同的.gitconfig文件
- 6. 是否有可能通过文件将循环拆分成多个线程?
- 7. 是否可以将C++输出流绑定到另一个输出流?
- 8. 是否可以从多个线程写入同一文件的不同部分?
- 9. 是否有可能输出到监视流而不是标准输入,标准输出和标准错误? (python)
- 10. 使用子流程将脚本输出定向到文件?
- 11. 是否有可能以编程方式将文件推送到无线SD卡?
- 12. 使用多线程控制台输出到文件
- 13. 是否可以使用jQuery将附件复制到不同的输入中?
- 14. 是否有可能使用python将文件复制到Windows启动文件夹?
- 15. 记录输出到输出文件是否影响mongoDB性能?
- 16. 如何知道是否有流水线输入到perl程序
- 17. 是否有可能不释放流?
- 18. 是否有可能在ASP.NET中使用XSLT输出.XLSX文件响应
- 19. 是否有可能与多线程执行JavaScript功能
- 20. 是否有可能使用不同的线程在同一页面上填充两个DropDown控件?
- 21. 有序多线程输出
- 22. 是否有可能将所有流量转发到IP地址?
- 23. 将HTML文件加载到输出流
- 24. 如果它有多个线程,就不能使用.jar文件
- 25. 是否有可能使用蟾蜍从表中导出多个excel文件?
- 26. Hadoop的流:写输出到不同的文件
- 27. 是否有可能将DateTimeKind.Utc中的Timestamp作为输出模板?
- 28. 是否有可能检测到应用程序的退出?
- 29. 是否有可能以及如何让Scala使用线程池中的线程?
- 30. 是否有可能使用操作系统线程创建自己的线程?
您有权访问并行文件系统吗?如果没有,那么就不要试图平行你的IO ... – Gilles
@Gilles我会停止打扰它然后:D –