《并行计算的编程模型》一1.1 引言

简介: 本节书摘来华章计算机《并行计算的编程模型》一书中的第1章 ,第1.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第1章

Programming Models for Parallel Computing
消息传递接口
William D. Gropp,伊利诺伊大学厄巴纳–香槟分校
Rajeev Thakur,阿贡国家实验室

1.1 引言

在使用分布式内存编程模型的并行程序中,MPI是一个标准和可移植的通信接口。MPI既为并行通信提供丰富的函数接口,也为并行文件I/O访问等提供函数接口。同时,MPI也支持多程序多数据(MPMD)编程模型。MPI是一种基于库的系统,而非编译器或者编程语言。MPI库函数通过C和Fortran语言实现。MPI指由函数名、参数、语义构成的专门的函数接口,而非特定的函数实现。MPI论坛负责定义和制定MPI,该论坛由大量来自工业、学术、研究实验室等机构的专家和用户组成。目前,高性能MPI库已在各种计算平台(例如笔记本、台式机、服务器、集群、商业化的高性能计算机)和操作系统上得到应用,从而更加方便地在各种计算平台上实现高性能和可移植的并行程序。因此,在并行科学应用领域,MPI成为应用最广泛的编程接口。
MPI背景
1992年,人们开始尝试为消息传递定义一种独立和标准化的接口。当时,许多应用程序编程接口是不同且无法移植的,例如计算机厂商提供的编程接口(Intel NX [232]、IBM EUI [119]、Thinking Machines CMMD [272]、nCUBE [207])和其他研究库(PVM [121]、p4 [51]、Chameleon [130]、Zipcode [254])。采用上述编程接口开发的应用程序无法在不同的机器上运行或者高效运行。如果一家计算机厂家倒闭,基于该厂家提供的编程接口开发的应用程序将无法运行。应用程序编程接口的多样性阻碍了应用程序开发。因此,需要人们为应用程序开发定义一种独立和标准化的接口。
1994年,MPI发布了第一个版本(MPI-1)。它包含基本的消息传递特性,例如点对点通信、聚合通信、数据类型和非阻塞式通信。1997年,MPI论坛发布了MPI的第二个主要版本(MPI-2)。MPI-2对MPI-1进行了扩展,增加了单边通信、并行I/O和动态进程等特性。2012年,发布了MPI的第三个主要版本(MPI-3)。MPI-3包含非阻塞聚合通信、相邻聚合通信等新特性,并对单边通信接口进行了大量扩展。在本章中,我们将介绍这些新的特性。

相关文章
|
机器学习/深度学习 算法 数据挖掘
机器学习的基本概念与核心功能
机器学习的基本概念与核心功能
|
21天前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
45 8
|
6月前
|
分布式计算 大数据 数据处理
浅谈几个经典大数据处理框架
【6月更文挑战第15天】本文介绍企业如何在数据洪流中保持竞争力需借助可扩展平台和数据策略。数据管道整合多元数据源,便于分析和流转。Kappa架构专注于实时处理(如通过Kafka、Spark Streaming),适合实时响应场景;Lambda架构结合批处理与实时处理(如Spark、Hadoop与Flink),平衡实时性和批处理,易于开发和维护。Apache Beam提供统一模型,适用于流处理和批处理,提升代码复用和效率。这两种架构满足现代应用对数据一致、性能和灵活性的需求。
478 3
浅谈几个经典大数据处理框架
|
7月前
|
存储 SQL 人工智能
从 CodeGemma 到 CodeQwen1.5:开源编程大模型百家争鸣
笔者最近刚刚试用完 CodeGemma ,准备分享我的心得时,通义千问的 CodeQwen1.5 就也悄然发布。本文主要介绍 CodeQwen1.5 这款开源编程大模型,并展示如何在 VSCode 中使用它帮你提升编程体验。
959 0
从 CodeGemma 到 CodeQwen1.5:开源编程大模型百家争鸣
|
机器学习/深度学习 并行计算 Go
探索Go语言在机器学习领域的应用局限与前景
探索Go语言在机器学习领域的应用局限与前景
156 1
|
机器学习/深度学习 人工智能 自然语言处理
机器学习入门:概念原理及常用算法
机器学习入门:概念原理及常用算法
187 0
机器学习入门:概念原理及常用算法
|
并行计算 API
《并行计算的编程模型》一2.5.1 GASNet工具
本节书摘来华章计算机《并行计算的编程模型》一书中的第2章 ,第2.5.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1020 1
|
机器学习/深度学习 人工智能 Python
《深入浅出深度学习:原理剖析与Python实践》| 每日读本书
通俗易懂讲解深度学习核心要素,快速炼成AI工程师!杨强教授、邓侃博士力荐!入门+工具+思维+实践=深度学习速成宝典!每日搜罗最具权威专业书籍,更多图书请关注“每日读本书”。
1443 0
|
并行计算 API
《并行计算的编程模型》一3.1 引言
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
932 0
《OpenACC并行程序设计:性能优化实践指南》一 第1章 从串行编程到并行编程
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第1章,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1220 0