MPI: old learning
- 高性能计算
- 2025-05-16
- 40热度
- 0评论
其实这个问题背后很有意思。mpi属于hpc领域,和现在的hadoop生态本来就不属于一块。
个人觉得一个技术能否流行起来,主要取决于三点:自身性能,易用性,环境。
性能上,mpi适用于计算密集型,在对计算要求比较高的地方,确实比hadoop/spark用的广,比如机器学习,生物计算。但是属于io密集型就不会有优势,很多大数据任务属于这种情况。
易用性上,mpi无论是编写和运行环境都比hadoop生态圈要求高,这点应该是mpi的短板。
环境上,hadoop生态圈更加完整,从文件系统,sql,流式处理等等,mpi也有,但是不够丰富。环境上,最重要的一点就是需要有大公司推动,有小公司创新的地方。这点上hadoop背靠java生态圈,加上各种应用多,可以讲故事的地方多,容易获得资本市场的关注。
综上看出mpi只有计算密集任务上有优势,其他都是劣势。
不过随着今天计算,存储,网络三者的性价比在变化,他们所代表的两个领域正在发生融合
/* Initialize and Finalize */
int MPI_Init(int *argc, char ***argv)
int MPI_Finalize()
/* MPI comm size and rank */
int MPI_Comm_size(MPI_Comm comm, int *size)
int MPI_Comm_rank(MPI_Comm comm, int *rank)
/* MPI send and recv */
int MPI_Send(const void *buf, int count, MPI_Datatype datatype, int dest,
int tag, MPI_Comm comm)
int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag,
MPI_Comm comm, MPI_Status *status)