写点什么

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

2007 年 9 月 03 日

多核处理器的降临带来了新的性能潜力。然而, 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 年 9 月 03 日 02:30511

评论

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

谈谈程序链接及分段那些事

程序喵大人

c++

Java 诊断利器 Arthas 优雅排查生产环境

ytao

Websocket直播间聊天室教程 - GoEasy快速实现聊天室

GoEasy消息推送

直播 websocket 即时通讯 聊天室 弹幕

LinkedList竟然比ArrayList慢了1000多倍?(动图+性能评测)

王磊

Java 数据结构 性能优化 性能 链表

Spring 容器的初始化

CoderLi

Java spring 程序员 源码分析 后端

Spring 获取单例流程(一)

CoderLi

Java spring 程序员 源码分析 后端

Spring 获取单例流程(二)

CoderLi

Java spring 程序员 源码分析 后端

别教我女儿该怎么穿,教你儿子别去强奸

小天同学

教育 日常思考 个人感悟 自我保护

CDN百科第四讲 | 如何优雅地在云上“摆摊”——做直播带货,你不得不关注的技术

巨侠说

CDN 边缘计算 直播 直播带货

架构师训练营第二周 - 作业

Eric

极客大学架构师训练营

Easy-Monitor 3.0 开源 - 基于 Egg 的 Node.js 性能监控解决方案

hyj1991

node.js 开源 前端监控

ARTS 第 2 周

乌拉里

【大厂面试05期】说一说你对MySQL中锁的理解?

NotFound9

Java MySQL 后端

618 将至,融云通信云技术如何助力电商销售

Geek_116789

Spring-AliasRegistry

CoderLi

Java spring 程序员 源码分析 后端

后疫情时代给技术经济发展带来的挑战和机遇

CECBC区块链专委会

区块链技术 林左鸣 机遇与挑战

重学 Java 设计模式:实战享元模式「基于Redis秒杀,提供活动与库存信息查询场景」

小傅哥

设计模式 小傅哥 重构 代码坏味道 代码优化

编译Spring5.2.0源码

CoderLi

Java spring 程序员 后端 Java 25 周年

以太坊颠覆了以太坊:引入密码学实现2.0性能突破

安比实验室SECBIT

以太坊 分布式系统 节点 密码学

程序一定要从main函数开始运行吗?

程序喵大人

c++

iOS Universal link 30分钟入门指南

行者

蚂蚁金服部门面试题解析:MySQL+Redis+MongoDB+Zookeeper+Ngnix

周老师

Java spring 编程 程序员 面试

架构师训练营第 2 周——学习总结

在野

极客大学架构师训练营

数字产品开发那些事

涛哥

产品开发 数字化

ARTS-Week Four

shepherd

Java algorithm

Spring-资源加载

CoderLi

Java spring 程序员 后端 Java 25 周年

Spring 获取单例流程(三)

CoderLi

Java spring 程序员 源码分析 后端

架构师训练营第二周总结

一剑

软件开发:软件设计的基本原则

NORTH

极客大学架构师训练营

架构师训练营-课后作业-Week-2

Chasedreamer

架构师训练营第二周 - 学习总结

Eric

架构是训练营

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

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