写点什么

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

  • 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:09932
用户头像

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

关注

评论

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

90后,要有多少存款才正常?答案太扎心了,阿里P8大佬整理

程序媛可鸥

Python 程序员 面试

Girlfriend含苞待笑——一次性处理上百份文档,Python开发实战讲解

程序媛可鸥

Python 程序员 面试

Python 命令行参数详解,Pythonui基础

程序媛可鸥

Python 程序员 面试

图文详解:阿里宠儿【小兔】RabbitMQ的养成攻略

浅羽技术

Java RabbitMQ 中间件 消息队列 RabbitMQ延时队列

即时通讯(IM)开源项目OpenIM每周迭代版本发布-音视频实时通话-v2.0.4

Geek_1ef48b

架构实战营 毕业设计项目

樰巳-堕~Horry

架构实战营 「架构实战营」

36,Python基础开发与实践

程序媛可鸥

Python 程序员 面试

Apple任意代码执行漏洞,为了跳槽强刷1000道Python真题

程序媛可鸥

Python 程序员 面试

一个配件、一块面料,制造企业流水线因为AI变了新模样

百度大脑

Python 深度集成的神器级 IDE,从此告别Excel!,成为阿里P7Python架构师到底有多难

程序媛可鸥

Python 程序员 面试

模块 6 作业 拆分电商系统为微服务

王大胖

Python 使用 PyQt5 开发的关机小工具分享,为什么阿里的程序员成长如此之快

程序媛可鸥

Python 程序员 面试

国内外最好用的18个协同办公系统盘点

爱吃小舅的鱼

30余种加密编码类型的密文特征分析,差点挂在第四面

程序媛可鸥

Python 程序员 面试

CSDN终于破2万粉了,几百块钱的课程可白嫖,就是宠粉,Python笔试面试题

程序媛可鸥

Python 程序员 面试

kudu参数优化设置,让集群飞起来~,2021年Python开发陷入饱和

程序媛可鸥

Python 程序员 面试

Python GUI编程:关于 tkinter 怎么才能写出更好看的界面

程序媛可鸥

Python 程序员 面试

Python 基础教程:动态类型模型,超通俗解析

程序媛可鸥

Python 程序员 面试

k8s组件的梳理(1),Python篇

程序媛可鸥

Python 程序员 面试

百度希壤元宇宙平台上线首个汽车数字展厅,领克探索汽车营销新方式

百度大脑

python pandas库统计分析基础必备知识汇总,2021Python网络编程总结篇

程序媛可鸥

Python 程序员 面试

Python 三十个实践、建议和技巧,各种风格的Python面试题进来了解一下

程序媛可鸥

Python 程序员 面试

Redis的数据类型实践

javaadu

Redis 核心技术与实战 Redis 数据结构

4万字【Python高级编程】保姆式教学,330页PDF10万字的知识点总结

程序媛可鸥

Python 程序员 面试

Python 基础教程:动态类型模型(1),阿里巴巴Python面试题答案

程序媛可鸥

Python 程序员 面试

k8s组件的梳理,Glide的缓存机制

程序媛可鸥

Python 程序员 面试

Kafka server,Python面试

程序媛可鸥

Python 程序员 面试

Kafka 常用命令总结,给Python程序员的一些面试建议

程序媛可鸥

Python 程序员 面试

python DataFrame数据格式化(设置小数位数,百分比,Python常用面试题

程序媛可鸥

Python 程序员 面试

Python 实现七大排序算法,Python中高级面试必知必会

程序媛可鸥

Python 程序员 面试

【C语言】 扫雷游戏(保姆级的实现过程)

謓泽

3月月更

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