小编Fia*_*Lux的帖子

在生成数据时写入数据的最快方法

在我的程序中,我正在模拟大量迭代的N体系统.对于每次迭代,我生成一组6N坐标,我需要将其附加到文件,然后用于执行下一次迭代.代码是用C++编写的,目前使用ofstream的方法write()在每次迭代时以二进制格式写入数据.

我不是这个领域的专家,但我想改进这部分程序,因为我正在优化整个代码.我觉得与在每个周期写入计算结果相关的延迟会显着降低软件的性能.

我很困惑,因为我没有实际并行编程和低级文件I/O的经验.我想到了一些我想象的可以实现的抽象技术,因为我正在使用Unix操作系统编写现代(可能是多核)的机器:

  • 在n次迭代的块中写入文件中的数据(似乎有更好的方法继续......)
  • 使用OpenMP并行化代码(如何实际实现缓冲区以使线程正确同步,并且不重叠?)
  • 使用mmap(文件大小可能很大,按GB的顺序,这种方法足够强大吗?)

但是,我不知道如何最好地实施它们并适当地组合它们.

c++ parallel-processing optimization file-io

7
推荐指数
1
解决办法
4226
查看次数

标签 统计

c++ ×1

file-io ×1

optimization ×1

parallel-processing ×1