在 Visual Studio 2013 中创建了两个项目,第一个项目用于一个内核,第二个项目使用 OpenMP 指令用于四个内核。正在解决相同的问题(所有输入数据都相同)。结果是不同的。检查时发现,乘法结果的准确性因项目而异。将两个变量传递给要相乘的代码的非并行部分。
print*,CT1,TA(I,J,K),(CT1 * TA(I,J,K))
результат на одном ядре: -3,5е-6 12,89648 -4,5137684е-5
результат на 4-х ядрах: -3,5е-6 12,89648 -4,5137665е-5
Python中的乘法
a=-3.5e-6
b=12.89648
c=a*b
print("{:.10e}".format(c))
-4.5137680000e-05
变量声明相同,工作室设置相同。浮点模型设置为精确。更改这些设置无济于事。请告诉我可能是什么问题。
