写点什么

多核处理器趋势对软件架构的影响

  • 2007-09-27
  • 本文字数:1171 字

    阅读完需:约 4 分钟

“Java 开发者”杂志上刊载了一篇精彩的文章,作者在文中讲述了软件开发者将会受到业内日益趋向多核处理器与大量并行处理器这股潮流的影响。以下是来自原文的内容:

作为软件开发者,我们在处理器技术所带来的性能持续增长潮流里乐在其中。实际上,在过去的 20 年中,处理器的性能几乎以每两年翻倍的速度持续增长着。如果 这样的性能提升突然戏剧性的减缓甚至停滞了,这个世界将会变成什么样子?我们还能继续搭建更大、更重和功能丰富的软件吗?……事实是——单线程性能的提升即将在一至三年内大规模减速。在某些情况下,单线程性能甚至会降低。长期持续不变的攀升会戏剧性的变缓。

尽管杂志的名字很专业化,但即使你不是一个 Java 工程师,这篇文章本身也是很值得一读的。你也许能猜到,作者并不会只让你感到上述段落所带来的失望。文章将解释我们将需要怎样做,来使我们的软件架构去适应持续不变的性能提升。

……业内已经开始关注为延续性能提升潮流所进行的多核、多线程处理器的设计。这些设计所关注的不是执行单个线程的性能提升,而是多个,有时甚至是巨量线程数的并行运行……作为一个开发人员而言,学习如何开发可以在数量持续增长的并行处理器上面高效运行的应用程序就变得很重要了。由于单线程的性能提升不会象 过去那么快,开发人员将会不得不关注并发来提高某个给定任务的性能。

文章接下来给出了一个关于并行编程策略的概述,以 Amdahl 法则开始:

当你开始并行编程时,所熟悉的第一条准则是 Amdahl 法则。Amdahl 法则说,限制你的程序加速运行的将是程序中不能并行执行的部分。比如说,如果性能监控显示,程序中那些只能在一个处理器上串行执行的代码需要花费 20%的运行时间,那么即使余下的代码都做了最佳并行化,也不管你扔给它多少处理器,你最多也只能获得 5 倍的速度提升。负载不平衡是一个类似的问题。如果你将你的代码分成 N 个子任务,执行它们所需的时间不是 1/N。所需的时间是执行子任务所 需时间的最大值。

文章之后讲述了并发问题和线程的设计,特别是在并行程序设计方面的 Java 语言模型。全文以宣布了一个由IBM 开发的称为X10 的新语言收尾。该语言 为Java 语言添加加了更高层次的模型,尤其是并行应用开发方面。它通过提供管理并行操作的简化语义和与这些操作相关的数据分布,试图简化并发设计。 X10 并不是一个真正的内部领域专用语言(DSL),因为它的语法不符合Java 的语法。它使用Java 语言作为基础并由此构造了一个新的、严格的语言,从这一点上来看和AspectJ(之前的5.0 版本)很相似。

查看英文原文 The Software Architecture Impact of the Multi-Core Processor Trend


译者简介: 曹云飞,西安交通大学计算机软件硕士。现就职于 Ethos ,热衷于新技术的钻研,软件架构与敏捷开发,目前从事流媒体方面的工作。参与 InfoQ 中文站内容建设,请邮件至 china-editorial[at]infoq.com

2007-09-27 21:091233
用户头像

发布了 47 篇内容, 共 12.0 次阅读, 收获喜欢 3 次。

关注

评论

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

MySQL性能监控与调优

Sakura

4月日更

我们真的可以使世界成为无密码的地方吗?

龙归科技

网络 安全性

13年Java开发经验精华总结!29大核心知识模块,带你直达架构师!

Java架构追梦

Java 阿里巴巴 架构 全栈知识点

Java 常见 bean mapper 的性能及原理分析

Java小咖秀

Java bean Copier

一周信创舆情观察(4.5~4.11)

统小信uos

征服耶鲁教授的算法大神程序媛,是如何践行“以人为本”开发智慧社区大脑的?

华为云开发者联盟

算法 音视频 智慧社区 华为智慧园区数字平台 数字平台

构建智慧金融新引擎|DataPipeline与巨杉数据库完成产品兼容互认证

DataPipeline数见科技

聪明人的训练(十六)

Changing Lin

4月日更

HTTPS双向认证

上海派拉基础研发

https HTTP ssl SSL 连接

维度数据模型建模过程(Kimball)

大数据技术指南

数据仓库 维度建模 4月日更

很坑的Could not transfer artifact报错

01Running

maven Mac IDEA

使用transform制作书本翻页效果

空城机

JavaScript 大前端 4月日更 书本翻页

合约量化交易APP开发|合约量化交易系统软件开发

系统开发

借助 Serverless 容器服务Cube,筷子科技轻松打造 10 万+ 爆款短视频

UCloud技术

在有道 | L同学:一位十五年有道人的成长故事

有道技术团队

分享 访谈录 阅读 网易有道

如何利用ipad随时随地开发代码

程序员石磊

ipad 编程 远程

Python基础之:struct和格式化字符

程序那些事

Python 数据分析 程序那些事

使用Python映射,过滤和缩减函数:所有您需要知道的

华为云开发者联盟

Python 函数 映射 内置函数

5分钟教你学会GaussDB数据分布策略设计

华为云开发者联盟

数据库 分布式数据库 GaussDB GaussDB(for openGauss) 数据分布

Linux df 命令

一个大红包

linux命令 4月日更

中国SaaS的终局:神仙打架,小鬼遭殃

ToB行业头条

拍乐云入选 2021 爱分析·产业数字化厂商全景报告

拍乐云Pano

RTC

web简易视频聊天室+媒体流插入

anyRTC开发者

大前端 音视频 WebRTC RTC

合约跟单系统开发|合约跟单APP软件开发

合约量化机器人系统开发|合约量化机器人软件APP开发

系统开发

vue2的$refs在vue3组合式API中的替代方法

devpoint

Vue3 $refs vue2 this.$refs

深入浅出带你掌握线程、多线程和线程池

华为云开发者联盟

Java 线程 多线程 线程池 操作系统

合约量化交易机器人系统开发|合约量化交易机器人APP软件开发

LeetCode题解:17. 电话号码的字母组合,回溯,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

【有奖征文】WEB前端大作战,走在技术最前端!

华为云开发者联盟

node.js Vue 大前端 Web Web框架

磁盘快照服务USnap:公有云连续数据保护(CDP)系统升级改造实践

UCloud技术

多核处理器趋势对软件架构的影响_Java_Mark Figley_InfoQ精选文章