MPI中最重要的两个操作为数据发送(Send)和数据接收(Recv),Send表示将本进程中某块数据发送给其他进程,Recv表示接收其他进程的数据。上图展示了MPI架构在4台服务器上并行计算的示意图。在实际的代码开发过程中,用户需要自行设计分治算法,将复杂问题切分为子问题,手动调用MPI库,将数据发送给指定的进程。MPI能够在很细的粒度上控制数据的通信,这是它的优势,同时也是它的劣势,因为细粒度的控制意味着从分治算法设计到数据通信到结果汇总都需要编程人员手动控制。有经验的程序员可以对程序进行底层优化,取得成倍的速度提升。但如果对计算机和分布式系统没有太多经验,编码、调试和运行MPI程序的时间成本极高,加上数据在不同节点上不均衡和通信延迟等问题,一个节点进程失败将会导致整个程序失败,因此,MPI对于大部分程序员来说简直就是噩梦。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!