C++ 使用openmp的异步缓冲IO
我有n个由OpenMP创建的线程,每个线程都必须顺序写入一个单独的文件。 线程0在计算结束时将文件合并到单个文件中。 我认为将其更改为异步缓冲IO可能更有用(请参见插图)。 在这个解决方案中,所有n个线程只与一个线程通信,该线程异步写入一个文件 我想知道这种方法是否有意义,如果有,是否有一个与OpenMP一起工作并支持这种方法的框架C++ 使用openmp的异步缓冲IO,c++,multithreading,io,openmp,C++,Multithreading,Io,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感谢你提供了正确的术语。我试图寻找一个框架,但就是找不到一个适合这个问题的框架。