我有兴趣设置计算以检查是否满足距离标准:即向量之间的距离和花药矢量图应该小于某个值. 我的数据根据正交坐标网格进行分区。由于我的截止值小于最近邻坐标端点之间的距离,我想添加一个“八分圆”变量来检查设置是否正确:
if octant[j] in allowed_list continue
作为“短路”到
if dist(x[i], x[j]) < r_max
我的问题是:相对于浮点运算,布尔查找和比较的计算效率如何?这值得在现代建筑上做吗?
我有兴趣设置计算以检查是否满足距离标准:即向量之间的距离和花药矢量图应该小于某个值. 我的数据根据正交坐标网格进行分区。由于我的截止值小于最近邻坐标端点之间的距离,我想添加一个“八分圆”变量来检查设置是否正确:
if octant[j] in allowed_list continue
作为“短路”到
if dist(x[i], x[j]) < r_max
我的问题是:相对于浮点运算,布尔查找和比较的计算效率如何?这值得在现代建筑上做吗?
我的经验法则是,如果您可以在每个双精度值少于 50 次失败中有效地计算一些数量(充分利用 FPU),那么重新计算比存储要好。几十年来一直保持稳定的趋势是浮点能力比内存性能提高得更快,并且由于物理限制和快速内存的能量需求而不太可能缓和。对于所有流行的计算平台(Intel/AMD、Blue Gene 和 GPU)来说,50 的值是正确的。
[2011/2012 Intel 和 AMD 机器指南]
MPI_Allreduce
大型机器上的小数据(例如范数或点积)