使用OpenMp进行指令并行

时间:2017-01-22 14:54:12

标签: parallel-processing openmp

我正在尝试使用OpenMp并行化以下代码。此代码属于加密算法,其中每次迭代的输出都输入到下一次迭代。因此我认为由于轮次的依赖性,我无法并行化这个for循环。但我想并行化指令的每个部分 y + = ((z <&lt;&lt; 4)+ k [0]) ^ (z + sum) ^ ((z&gt;&gt; 5)+ k [1])使用单独的线程并最终得到XOR。我试图在循环中插入openMp指令,但需要更长的时间。请纠正我在哪里做错了。

for(n=0;n<32;n++)
{
sum += delta;

#pragma omp parallel
y += ((z<<4)+k[0]) ^ (z+sum) ^ ((z>>5)+k[1]);

z += ((y<<4)+k[2]) ^ (y+sum) ^ ((y>>5)+k[3]);

}

0 个答案:

没有答案