小编R. *_*der的帖子

并行计算 - 输出混乱?

我正在尝试学习并行计算的基础知识,但我在计算机上遇到了一个问题.看看下面的代码.基本上,我想打印出"Hello World!"这一行.我的电脑拥有的每一个核心.我的电脑有四个核心,因此它应打印出该行四次.如果我使用注释掉的'cout'行而不是'printf'行,输出将全部混乱.这是因为'\n'转义命令与"Hello World!"分开执行,因此新行输出将随机发生.'printf'行是这个问题的解决方案,因为该行是一次性执行的(不会分成像'cout'行这样的部分).但是,当我使用'printf'时,我的输出仍然混乱,好像我使用'cout'.我不知道为什么会这样做.我在另一台计算机上尝试了完全相同的代码,它完美无缺.只有我的电脑继续用'printf'混淆输出.我已经通过电子邮件向我的CS教授发了电子邮件,他不知道为什么要在我的电脑上这样做.我知道我在计算机上正确设置了OpenMP.有并行计算经验的人是否知道为什么这会弄乱我的电脑?

#include <omp.h>
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
using namespace std;

int main()
{
    #pragma omp parallel
    {
        printf("Hello World!\n");
        //cout << "Hello World!\n" << endl;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为了显示我正在谈论的内容,这是我在计算机上运行上述代码时的输出:

你好禾

你好,世界!

RLD!

你好,世界!

c c++ parallel-processing openmp

6
推荐指数
2
解决办法
878
查看次数

标签 统计

c ×1

c++ ×1

openmp ×1

parallel-processing ×1