高性能计算与边缘计算优化
1. 3D 立方体元素计算与同步
在某些计算场景中,每个进程会通过使用 26 个相邻立方体的值来计算一个立方体中的元素。由于每个立方体中的元素是连续的,所以可以将立方体视为一个巨大的点。若沿着 x、y 和 z 轴从 0 开始对立方体进行编号,那么中心的立方体就是第 13 个。
这里应用了之前提到的波算法,具体步骤如下:
- 第一波 :将第 13 个立方体复制到沿 x 轴的相邻立方体。
- 第二波 :将从第 12 个开始的 3 个连续立方体复制到沿 y 轴的相邻立方体。
- 第三波 :将中间层的全部 9 个立方体复制到沿 z 轴的相邻立方体。
3D 情况下的更新代码如下:
1 //there are N elements in a cube, the size of element is elem size
2 dim D = data(27,1);
3 dim Px = proc(p,1);
4 dim Py = proc(p,p);
5 dim Pz = proc(p,p∗p);
6 dim P = Pz ∗Py ∗Px;
7 dim Point = P ∗get low(cyclic(D,13),1);
8 dim Left = Pz ∗Py ∗cyclic(Px, 1) ∗get low(cyclic(D,12),1);
9 dim Right = Pz ∗Py ∗cyclic(Px,−1) ∗get low(cycli
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



