《并行计算的编程模型》一2.4.3 阻塞与非阻塞

2.4.3 阻塞与非阻塞

阻塞操作在返回时包括本地与远程完成。因此相对于其他阻塞操作而言,阻塞操作序列进行了简单排序。非阻塞操作有两种格式:“显式句柄”和“隐式句柄”。显式句柄操作有一个“_nb”后缀并返回一个不透明句柄——gasnet_handle_t,其能够轮询或阻塞单个操作与句柄数组(称为“同步”句柄)完成。隐式句柄非阻塞操作具有“_nbi”后缀,并将一系列的RMA操作看作一个组。客户端可以同步所有未处理的隐式句柄Put、Get或两者。虽然不能同步单个隐式句柄操作,但是可以在不追踪显式句柄集合时对这些操作的顺序进行管理。此外还可以创建“nbi访问区域”,其在单个句柄下收集函数调用开始与结束之间动态发生的所有隐式句柄操作,并将其与显式句柄同步操作共同使用。

时间: 2024-10-03 13:12:20

《并行计算的编程模型》一2.4.3 阻塞与非阻塞的相关文章

《并行计算的编程模型》一3.7.3 非全局同步屏障

3.7.3 非全局同步屏障 类似全局同步屏障,非全局同步屏障保证在全部参与PE到达之前没有参与PE的屏障调用返回.非全局同步屏障允许程序员通过指定开始PE.PE跨步(描述为log2(PE跨步)而不是实际的跨步).参与PE的数目和对称同步数组的长度_SHMEM_BARRIER_SYNC_SIZE来选择PE的参与子集.所有PE上的同步数组在使用之前必须初始化为0,因此在初始化和使用之间需要同步,例如全局同步屏障.当且仅当PE主动集保持不变时同步数组可在随后的同步屏障中重用.

《并行计算的编程模型》一导读

前 言 对于正在编程的程序员,编程模型可被看作一台虚拟机,并可通过编程语言和函数库实现.如果某个编程模型成为计算机科学研究中的热点,需要具有以下特性:高效性(易于描述各种抽象算法).移植性(兼容各种硬件计算平台).高性能(高效均衡地利用硬件平台的计算能力).通用性(广泛地描述各种算法).针对特定的编程模型,同时具有上述四种特性中的一种或两种相对容易,但同时具备这四种特性几乎是不可能的.特定的编程模型无法同时具备四种特性的主要原因在于编程模型的多样性,因此需要根据具体的科学应用,选择不同的编程模型

《并行计算的编程模型》一1.6 聚合通信

1.6 聚合通信 除了进程间点对点的消息通信,MPI还提供大量针对一组进程间通信的函数,基于一组进程的通信称之为聚合通信.聚合通信的进程都需要调用相同的聚合通信函数.通过大量的聚合通信算法研究,聚合通信采用具有高性能的聚合通信实现算法[73,270,284],因此该通信方式在并行编程中广泛应用. 聚合通信有以下三种类型: (1)同步.MPI_Barrier函数用于同步通信域内的所有进程,执行到MPI_Barrier函数的进程必须等待,直到所有进程均执行到MPI_Barrier函数,所有进程才会进

浅谈socket同步和异步、阻塞和非阻塞、I/O模型_php技巧

在进行网络编程时,常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式 同步/异步主要针对C端: 同步:c端发出一个功能调用时,在没有得到结果之前,c端死等结果 例如:普通B/S模式(同步):提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事 异步:c端一个异步过程调用发出后,调用者不会立刻得到结果.实际处理这个调用的部件在完成后,通过状态.通知和回调来通知调用者. 例如:ajax请求(异步): 事件触发->服务

浅析云计算分布式并行计算:编程模型

MapReduce 是由Google公司开发的一个针对大规模群组中的海量数据处理的分布式编程模型.它实现了两个功能:Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集.而Reduce是把从两个或更多个Map中,通过多个线程,进程或者独立系统并行执行处理的结果集进行分类和归纳.Map() 和 Reduce() 两个函数可能会并行运行,即使不是在同一的系统的同一时刻. 微软于2010年12月21日发布了分布式并行计算基础平台--Dryad测试版,成为谷歌MapReduce分布式

《并行计算的编程模型》一1.7 单边通信

1.7 单边通信 在点对点通信和聚合通信方式中,发送进程和接收进程共同参与通信过程.MPI提供另外一种通信方式,即单边通信方式.在单边通信方式中,单个进程便可指定发送和接收的数据.单边通信主要用于ARMCI/GA(见第5章).UPC(见第4章)和OpenSHMEM(见第3章)等函数库中,单边通信也可称之为远程内存访问(RMA). 单边通信模型主要分为三部分.第一部分是创建MPI_Win窗口对象,用于可被其他进程访问的内存区域.第二部分是进程间数据移动方式,包含从远程进程上读.写.更新等数据移动方

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

第1章 Programming Models for Parallel Computing 消息传递接口 William D. Gropp,伊利诺伊大学厄巴纳–香槟分校 Rajeev Thakur,阿贡国家实验室 1.1 引言 在使用分布式内存编程模型的并行程序中,MPI是一个标准和可移植的通信接口.MPI既为并行通信提供丰富的函数接口,也为并行文件I/O访问等提供函数接口.同时,MPI也支持多程序多数据(MPMD)编程模型.MPI是一种基于库的系统,而非编译器或者编程语言.MPI库函数通过C和

《并行计算的编程模型》一3.3 OpenSHMEM存储模型

3.3 OpenSHMEM存储模型 OpenSHMEM是单程序.多数据(single program multiple data,SPMD)编程模型,特点是强调单边通信以及数据移动与同步解藕,是提供高性能.高可扩展性通信和同步程序的库.OpenSHMEM程序由松散同步的进程组成,这些进程也叫作处理单元(Processing Element,PE).所有PE同时开始并执行相同的程序,通常在各自集合问题的子域上执行操作,并周期性地与其他PE通信. OpenSHMEM内存模型是PGAS,类似于其他PG

《并行计算的编程模型》一3.2 设计理念和根据

3.2 设计理念和根据 SHMEM和OpenSHMEM的构思和发展都假设它们和底层硬件系统体系结构有密不可分的关系.由克雷研究公司开发和出售的克雷T3D和T3E计算机系统在其网络架构中包含几个高级的硬件加速特征,是与SHMEM合作设计的,用以最大化可用的带宽及最小化系统的3D Torus网络延迟[85].克雷公司,即原来克雷研究公司的现代同名,在其最新的Gemini网络架构[86,90]中也延续了相同的设计理念.当1996年SGI收购了克雷研究公司,也同时获得了SHMEM的知识产权,SGI设计了

《并行计算的编程模型》一3.5.1 RMA函数语义

3.5.1 RMA函数语义 OpenSHMEM编程模型为提高可扩展性将数据传输和同步解藕,解藕的语义比较容易理解.调用RMA函数(put或get)的PE被称为传输的"主动端",另一个PE(很可能不知道该传输)被称为"被动端".OpenSHMEM仅有的隐式一致性确保put和get操作在主动端发生,被动端如果需要的话也可以通过给程序增加同步来执行一致性.主动端完成准则:当单个RMA调用(put或get)在主动端返回时,程序可以认为主动端的内存状态与该操作的完成一致.被动