SCI-VM:实现集群共享内存编程的新突破
1. 体积渲染代码实验结果
在评估SCI-VM的全面影响时,除了使用小型数值内核进行实验,还需要使用复杂应用程序进行实验。为此,采用了SPLASH-II套件中的体积渲染代码,并将其移植到SPMD编程模型中,实际的体积渲染代码本身未作修改。
实验结果总结如下表:
| 执行方式 | 渲染时间 |
| — | — |
| 顺序执行(本地内存) | 3522 ms |
| 顺序执行(全局内存) | 4136 ms |
| 并行执行(全局内存) | 2381 ms |
| 加速比 | 1.48 |
| 开销 | 17.43 % |
该复杂应用程序在透明虚拟地址空间上表现出良好的性能,由于使用透明内存导致的开销较低(约18%),可以实现约1.5的加速比。大部分阻碍更大加速比的开销是由中央工作队列的管理和锁定开销造成的,这在任何共享内存环境中都是常见的瓶颈。此实验表明,相关概念可以直接且高效地应用于现有的大型共享内存代码,而无需大量的移植工作。
2. 使用SCI-VM进行透明多线程编程
除了基于SCI-VM实现的第一个编程模型——SPMD模型外,还可以实现其他具有不同功能和目标领域的编程模型。其中,在SCI-VM之上实现一个完全透明的分布式线程库是一个非常有趣的选择。
2.1 透明线程分布
这些线程库的实现基础是SCI-VM提供的全局虚拟内存。它为系统内的任何节点创建了对完整虚拟内存的一致视图,并保证任何数据在任何节点上都可以使用相同的地址访问。
在这个全局内存抽象之上,可以