《并行计算的编程模型》一2.3.6 活动消息进程-阿里云开发者社区

开发者社区> 华章计算机> 正文

《并行计算的编程模型》一2.3.6 活动消息进程

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

2.3.6 活动消息进程

前文中讲到,GASNet能够使用内部线程或中断的方式运行AM处理程序。虽然我们重点关注客户端代码编写的正确性,但是大多数代码实现所缺乏的异步进程控制机制不能作为错误的典范。相反,典型的AM驱动的GASNet应用的进程依赖于客户端向GASNet发送的消息数目。尽管客户端能够保证AM初始化调用以轮询的方式处理进入的AM程序,但这远远不够。因此,有以下两种显式轮询方式:

gasnet_AMPoll函数对进入的AM(包括Request和Reply)进行检查,并在函数返回前执行其中的依赖最大数的函数实现部分。所以难以确保在函数返回时没有额外的AM等待时间。该函数通常在客户端自身的进程循环中执行,或在未知轮询时间的客户端操作前后使用。宏GASNET_BLOCKUNTIL用于阻塞操作直到判断条件为真。它将C表达式作为参数进行计算,且GASNet执行的代码在功能上等同于:

然而,GASNET_BLOCKUNTIL用于实现特定的控制机制而不是通用机制。需要注意的是,对于由于使用GASNET_BLOCKUNTIL的AM代码阻塞扩展API调用改变内存的行为,使用GASNET_BLOCKUNTIL是唯一能够阻塞中间等待时间的方法,且可以无限阻塞。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【转】]监听SMS消息/编程实现短信拦截
当设备接收到一条新的SMS消息时,就会广播一个包含了android.provider.Telephony.SMS_RECEIVED动作的Intent。注意,这个动作是一个字符串值,SDK 1.0不再包含对这个字符串的引用,因此,在你的应用程序中,你需要显式的指定它。
771 0
在Windows系统上实现轻量级的线程间及进程间消息队列
Windows没有message queue累世的IPC内核对象,使得在在处理IPC时少了一种传递消息的手段。利用Windows的Naming Object可以实现一套简单的Inter-Thread消息队列。
865 0
Oracle并行计算
【前言】现在CPU的发展已不仅朝着单个性能更好的方向了,而且还朝着多核数多核心的方向发展了。Oracle数据库大部分也都是利用单线程的串行方式在运行。通过并行(Parallel)操作特性,充分应用CPU的多核心特点,提高对数据的操作效率,满足在特定场景下对海量数据操作的需求。
820 0
书接前文,用多进程模式实现fibonnachi并发计算
#coding: utf-8 import logging import os import random import sys import time import re # import requests # import concurrent.
824 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载