NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

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

关注

评论

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

华为云时习知&成都大学附属医院,打造“互联网+医疗”标杆

华为云PaaS服务小智

云计算 软件开发 华为云

SnapMotion for Mac(mac视频截图工具)v5.2.1中文激活版

影影绰绰一往直前

Feeder 4 for Mac(RSS编辑阅读软件)v4.6免激活版

影影绰绰一往直前

软件测试简历书写/面试的必备技能,你都会了吗?

霍格沃兹测试开发学社

牛市初期,Penpad 以 Fair Launch 方式推出首个资产 PEN

威廉META

2024上海国际自动驾驶技术展览会

AIOTE智博会

自动驾驶展 智能驾驶展

VueScan for Mac(万能扫描仪驱动程序)v9.8.25中文版

影影绰绰一往直前

GaussDB跨云容灾:实现跨地域的数据库高可用能力

华为云开发者联盟

数据库 后端 华为云 华为云GaussDB 华为云开发者联盟

基于 Kyuubi 实现分布式 Flink SQL 网关

Apache Flink

软件工程走向“现代化工厂”?谈谈大数据平台软件的企业级部署和运维

先锋IT

数字孪生技术助力数字人源码无限克隆数字人!

青否数字人

数字人

云原生数据库 GaiaDB 支持新的管理工具啦

Baidu AICLOUD

云原生数据库

面试官:说说SpringAOP实现原理?

王磊

Java 面试

扬帆启航!携手飞桨get开源贡献新技能!

飞桨PaddlePaddle

百度 开发者 开源社区 百度飞桨

App前端开发跨平台框架比较:React Native、Flutter、Xamarin等

天津汇柏科技有限公司

App app定制开发 软件开发定制

Databend 开源周报第 134 期

Databend

金三银四,聊一聊软件测试简历书写/面试的必备技能

测试人

面试 软件测试 简历 测试开发

Alfred 5 for Mac(苹果效率提升工具)v5.5 (2253)免激活版

影影绰绰一往直前

Aiseesoft Audio Converter for Mac(音频转换软件)v9.2.22激活版

影影绰绰一往直前

iReal Pro for Mac(优秀的音乐练习参考工具)v2024.2激活版

影影绰绰一往直前

你问我答,干货满满!|OpenTiny 挑战赛技术答疑直播来啦~

OpenTiny社区

开源 前端 低代码 组件库

数据库有哪些分类呢?

小魏写代码

AI数字人克隆工具推荐!怎样使用?

青否数字人

数字人

开源与自研的选择

流氓兔

开源 数字化转型 技术选型 软件研发 自主研发

从MySQL到ByteHouse,抖音精准推荐存储架构重构解读

字节跳动数据平台

数据库 大数据 云原生 数仓 企业号 3 月 PK 榜

XnConvert for Mac(图像格式转换软件)v1.100.1注册版

影影绰绰一往直前

WatsGo for Mac (网络电话应用程序)v8.4.0直装版

影影绰绰一往直前

免费的人工智能数字人软件需要满足什么?

青否数字人

数字人

第41期 | GPTSecurity周报

云起无垠

分布式数据库 GaiaDB-X 金融应用实践

百度Geek说

关于应用架构约束治理的探讨

疯狂架构

架构演进 架构治理 Archunit 架构约束防腐

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