【发布时间】:2021-11-23 16:40:00
【问题描述】:
我用 C++ 编写了一个程序来并行化使用 ~ 运算符转换数组元素的过程。元素是一和零。所以我希望程序将 1 转换为 0,反之亦然。代码正在运行,现在我想将线程 0 的输出与线程 1 的输出进行比较,但我不知道该怎么做。我的代码如下所示:
int main()
{
omp_set_num_threads(2);
char array[6]={1,0,1,0,1,0,};
#pragma omp parallel
{
cout << "Number of available threads: " << omp_get_num_threads() << endl;
cout << "Current thread number is: " << omp_get_thread_num() << endl;
for (int i=0; i<sizeof(array); i++)
{
bitset<M> bitarray(array[i]);
cout << ~bitarray << " ";
} cout<< endl<<endl;
}
}
输出如下:
Number of available threads: 2
Current thread number is: 0
11111110 11111111 11111110 11111111 11111110 11111111
Number of available threads: 2
Current thread number is: 1
11111110 11111111 11111110 11111111 11111110 11111111
如何比较并确认这两个输出是否相同?
【问题讨论】:
-
您可以通过自动格式化程序运行您的代码吗?毕竟,您希望人们阅读它,还是?作为这里的新用户,也可以使用tour 并阅读How to Ask!
标签: c++ multithreading