并行计算是未来的发展趋势,如何选择并行的架构是个重要的问题。
首先要发挥集群计算的能力,用MPI是个不二的选择。
其次为了充分利用cpu和gpu的多核计算能力,有一系列的库可以选择,openMP openACC CUDA OpenCL ,openMP openACC是同一层次的接口,是share memory并行,openACC比openMP有所扩展,主要是在GPU的方面,这一层的实现比较简单,如果这一层已经足够了,不要刻意把问题复杂化使用更复杂的调用接口,CUDA OpenCL差不多是一层,openCL的优势在于扩展行强,他只是一个通用的标准,和MPI一样有很多实现,所以对于不同的多核硬件都可以很好的支持,但是Cuda是Nvidia的特别实现,效率上会比openCL略胜一筹,然后还有一个参考是基于前面架构有没有一些现成的库可以使用,比如fft blas等等。