四核和VM上的并行编程?

Leg*_*end 2 parallel-processing virtualization openmpi

我想慢慢收起并行编程.我见过人们使用安装了OpenMPI的集群来学习这些东西.我无法访问群集但拥有四核机器.我能在这里体验到任何好处吗?另外,如果我在虚拟机中运行linux,那么在VM中使用OpenMPI是否有意义?

Edu*_*Edu 5

如果要学习目标,则根本不需要群集.您的四核(或任何双核甚至单核)计算机将绰绰有余.重点是学习如何"并行"思考以及如何设计应用程序.

一些重要的观点是:

  • 利用不同的并行模式,如分而治之,主工,SPMD,......取决于您想要做的事情的数据和任务依赖性.
  • 选择不同的数据分区粒度以检查计算/通信比率(在消息传递的情况下),或检查由于互斥到内存区域而导致的串行执行量.

拥有四核,您可以测量您的接近加速(由于并行化而获得的性能增益),这通常由非并行执行的时间和并行执行的时间之间的划分给出.越接近4(四个核心意味着执行时间的1/4),并行化策略就越好(一旦你可以均匀地分配工作和数据).