7
如果我希望将来的代码在petascale机器上运行,我应该投资哪种编程范例?
从对Top500的调查中可以很明显地看出,该行业正朝着处理核心呈指数增长的趋势发展。最大的超级计算机都使用MPI进行节点之间的通信,尽管似乎没有明显的节点上并行性趋势,并且使用最简单(但不一定是最有效)的方法将单个MPI进程映射到每个核心,自动来自编译器,OpenMP,pthreads,CUDA,Cilk和OpenCL的并行化。 我是维护和开发有潜力在世界上一些最大的超级计算机上使用的代码的一组科学家之一。假设开发人员时间有限,那么我该如何适应未来的发展,以便可以利用世界上功能最强大的计算机的性能?我应该对流程互连体系结构做出哪些假设?当我们进入众核时代时,将遭受哪些范式?在Petascale机器上是否可以在生产中使用分区的全球地址空间语言?