我想通过调用
并行执行计算 !$OMP PARALLEL
call sub
!$OMP END PARALLEL
根据需要,此n(=线程数)的激活调用sub
。
在sub中,我正在从单独的数据文件中读取文件和no。从线程号确定的读取数。如果我将sub
中的所有内容都包含在!$OMP ORDERED
... !$OMP END ORDERED
中,则此方法有效。
但是,这也会导致所有线程严格按顺序运行,即线程0先运行,所有读取都在线程1启动之前完成,等等。
我想要实现的是,所有n个线程并发运行,并且只在线程内进行顺序处理(因为读取来自不同的数据文件)。任何想法怎么样?将ORDERED
替换为TASK
无济于事。