C++ 使用openmp的异步缓冲IO

C++ 使用openmp的异步缓冲IO,c++,multithreading,io,openmp,C++,Multithreading,Io,Openmp,我有n个由OpenMP创建的线程,每个线程都必须顺序写入一个单独的文件。 线程0在计算结束时将文件合并到单个文件中。 我认为将其更改为异步缓冲IO可能更有用(请参见插图)。 在这个解决方案中,所有n个线程只与一个线程通信,该线程异步写入一个文件 我想知道这种方法是否有意义,如果有,是否有一个与OpenMP一起工作并支持这种方法的框架 +----------+ +---------+ +----------+ | | | | |

我有n个由OpenMP创建的线程,每个线程都必须顺序写入一个单独的文件。 线程0在计算结束时将文件合并到单个文件中。 我认为将其更改为异步缓冲IO可能更有用(请参见插图)。 在这个解决方案中,所有n个线程只与一个线程通信,该线程异步写入一个文件

我想知道这种方法是否有意义,如果有,是否有一个与OpenMP一起工作并支持这种方法的框架

         +----------+ +---------+ +----------+
         |          | |         | |          |
         | thread 1 | |  . . .  | | thread n |
         |          | |         | |          |
         +----+-----+ +----+----+ +-----+----+
              |            |            |
              |            | d          |
              |            | a          |
              |            | t          |
              |            | a          |
             +---------------------------+
             |     One thread writes     |
             |   async. buffered IO to   |  
             |       a single File       |
             +---------------------------+

这看起来像是一个简单的多生产者单消费者问题。如果你只是搜索,应该有很多解决方案。@JoachimPileborg感谢你提供了正确的术语。我试图寻找一个框架,但就是找不到一个适合这个问题的框架。