作者Tiberius (渴望平凡的幸福)
看板C_and_CPP
标题Re: [问题] openmp语法的问题
时间Wed Mar 11 00:34:54 2009
※ 引述《nicholas1119 (尼可拉斯)》之铭言:
: 想问一个很简单的openmp的语法问题
: 目的:想利用多核心平行处理的优势 缩短产生乱数矩阵的时间
: 下列是小范例 10*10 二维矩阵
: ----------------------------------------------------------------
: #include <omp.h>
: #include <stdio.h>
: #include <stdlib.h>
: int main(int argc, char* argv[])
: {
#pragma omp parallel for
for(
int i = 0; i <= 10; i++ )
{
for(
int j = 0; j <= 10; j++)
{
a[i][j] = RAND();
}
}
这样内圈的 j 应该会自动 private 才对 ...
j 宣告在外面这个 for 回圈 "里面" 就可以了
: system( "pause" );
: return 0;
: }
: ------------------------------------------------------------------
: 问题出在这个写法 会造成
: 假设CPU1 与 CPU2 同时以i=1 与 i=6 进入回圈
: CPU1 i=1 j=1 那麽CPU2 i=6 j=2
: 所以 我就无法产生a[1][2]的乱数了
: 简单来说 这个语法会造成无法所有的组合都能产生乱数
: 我想要的是 CPU1 i=1 进入回圈 能够单独跑j回圈(且依序)
: CPU2 i=6 进入回圈 也能单独跑j回圈(且依序)
: 不知道有哪些高手有这方面的经验 可以指导一下
: 感激不尽
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.117.40.88