写点什么

并行编程:并行层次(Parallel Hierarchies)模式

  • 2007-09-03
  • 本文字数:1173 字

    阅读完需:约 4 分钟

多核处理器的降临带来了新的性能潜力。然而, Ina Fried 说,硬件上如此的趋势,对于软件业是一个巨大的挑战,因为“当今的大多数软件并非为利用这个进步而构建的”。Intel 院士(Fellow) Shekhar Borkar 也评论说“软件巨臂们 [……] 走得还不够快”同时已经到了软件也该遵循摩尔定律(Moore’s Law)的时候了,也就是“每两年对并行量的支持能力”翻一番。(摩尔定律的观点指出现实中每过两年芯片的性能大约翻一番)。Borkar 相信软件开发实践必须改组整备工具以利用起提升的性能潜力。

在这个方向上,墨西哥国家自治大学(the National Automonous University of Mexico)数学系的 Jorge L. Ortega-Arjona 教授提出了一个新的并行编程架构模式(pdf 格式)。这个模式尝试对以下情况下的执行性能进行提高:

现有必要对一个有序数据集合重复进行一系列有序操作组成的运算。考虑这样一个程序,它的输出可以只是一个单个复杂运算的结果,此运算为一系列概念上有序、在不同层次上执行的简单操作,其目标不是为了取值,而是为了产生某些影响。一个高层次上的操作需要执行一个或多个更低层次上的操作。如果这样一个程序以串行方式执行,就可以把它看作一个子过程的调用链,一个接一个的进行求值。

他的并行层次(Parallel Hierarchies)模式是“对分层(Layers)模式的扩展”,把问题划分为若干分层组件,负责“向更复杂级别的层次提供操作或功能,同时把更简单的子任务委派给复杂级别次之的层次。”“通过允许‘同一层次上两个以上组件 [……] 同时存在,通常完成相同操作’引出”功能性并行的元素为:

在各层操作的执行过程中,通常高级别的层次只得等待低级别层次的结果。然而,如果每个层次通过多个组件来表示,它们就能够并行执行并且为新请求提供服务。自此,几个有序操作集合就能够被同一个系统,同时负载。几个运算则能够在时间上相重叠。

Ortega 教授提出的这个模式的几个已知用法包括“树形结构操作比如搜索树,其中为每个节点都建立一个搜索进程”。已列出的限制包括“并非每一个系统运算都能被构造出高效的层次结构,”当上方层次对下方层次有过多依赖(例如:典型的基于 Web 的应用)时,这个模式就不太好使了,并且进行正确的层次级别设计会相当复杂。

如果你同意 Jon Erickson所相信的“在所有开发者和架构师的视野中,并发[…] 应该位于最前端”,那关注一下这个领域的新兴研熬究比较好。

查看英文原文: Programming for Parrallelism: The Parallel Hierarchies Pattern - - - - - -

译者简介:岳立东,Ableverse 创始人,技术推广大使。开源项目 WoW (内含 ToB 对象数据库)和 SecureJSH 创建者。目前致力于东道组件接合(Hosting Based Interfacing)理论研究,在此基础上的软件并行分布架构及对象数据库应用,技术博客 http://complystill.javaeye.com/ 。欲参与 InfoQ 中文站内容建设,请邮件至 china-editorial[at]infoq.com

2007-09-03 02:301403

评论

发布
暂无评论
发现更多内容

远程办公如何保持高效协同,实现项目稳定增长 |社区征文

三掌柜

初夏征文 7月月更

云原生到底是什么?它会是未来发展的趋势吗?

Albert Edison

7月月更

HashMap分析-扩容

zarmnosaj

6月月更

Android Studio Arctic Fox | 2020.3.1、Gradle 7.0升级记录

yechaoa

android Android Studio Gradle 6月月更 AGP

8253A寄存器浅析

乌龟哥哥

6月月更

主流实时流处理计算框架Flink初体验

百思不得小赵

大数据 flink 7月月更

密码学进阶(一):浅谈常见的七种加密算法及实现

No Silver Bullet

加密 文本摘要 数字签名 7月月更

手把手带你快速入门Electron

是乃德也是Ned

7月月更

做一个 Scrollbar 的思考

cssghost

CleanMyMac X4.11最新版本号

茶色酒

CleanMyMac X

Ubuntu环境编译OpenJDK11源码

程序员欣宸

Java Openjdk 6月月更

远程办公期间,项目小组微信群打卡 | 社区征文

IT蜗壳-Tango

6月月更 初夏征文

什么是反向代理?Nginx反向代理如何配置?

wljslmz

nginx 反向代理 6月月更

兼容10个浏览器HTML头部配置

写程序的小王叔叔

html 浏览器 浏览器插件 7月月更

数据中台咋就从“小甜甜”变成了“牛夫人”?

雨果

数据中台

激发新动能 多地发力数字经济

CECBC

无需zookeeper安装kafka集群(kakfa3.0版本)

字母哥哥

大数据 kafka 消息队列

面试必答题“聊聊Java中线程的生命周期状态”如何破?

博文视点Broadview

rxjs Observable of 操作符的单步调试分析

汪子熙

typescript 前端开发 angular RXJS 7月月更

“信任机器”为发展赋能

CECBC

这样的商城系统全开源免费商用,还要什么自行车!

CRMEB

投稿开奖丨轻量应用服务器征文活动(5月)奖励公布

阿里云弹性计算

nginx OSS MySQL 数据库 轻量征文

《你的灯亮着吗》开始解决问题前,得先知道“真问题”是什么

图灵教育

Windbg调试工具介绍

dvlinker

c++ windbg 调试工具

电商秒杀系统

Dean.Zhang

架构实战营 模块九:设计电商秒杀系统

热猫

让企业数字化砸锅和IT主管背锅的软件供应链安全风险指北

FN0

安全性 沙箱实验 开源软件供应链

架构实战营 毕业总结

热猫

攻防演练中的防泄露全家福

穿过生命散发芬芳

6月月更 防泄露

一次革命、两股力量、三大环节:《工业能效提升行动计划》背后的“减碳”路线图

脑极体

leetcode 474. Ones and Zeroes 一和零(中等)

okokabcd

LeetCode 动态规划 算法与数据结构

并行编程:并行层次(Parallel Hierarchies)模式_架构_Sadek Drobi_InfoQ精选文章