MapReduce(MR)与MPI各有优劣。
与MPI相比,MR的优点如下:
1.MR job可以起很多instance,各个instance在计算的过程中互不干扰。比如,用户起了10000个instance,如果集群资源不足,Job不需要等待,可以先执行1000个instance,剩余的等到集群有资源的时候再计算。
2.MR job没有instance间通信开销。
3.如果MR Job的某个instance计算failed,调度系统会自动重试,再次计算,并不影响其他结果,也不需要所有instance重新计算。
与MPI相比,MR的缺点是:MR job的计算的中间结果是以文件形式存储,效率较低。
与MR相比,MPI的优点如下:
1.MPI job在计算的数据都在内存中,不需要存储中间文件,因此效率高。
2.如果集群资源充足,MPI job启动所有instance进行计算,速度快。
但与MR相较,MPI的缺点也比较明显:
1.如果集群资源不够起所有instance,则MPI的job一直等待。
2.如果MPI Job的某个instance计算failed,则所有instance都需要重新计算。
3.MPI的Job instance不能起太多,因为会增加进程间通信的开销。