写点什么

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

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

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

关注

评论

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

电商后台权限设置有哪些规范你知道吗!

CRMEB

Vue 中 JSX 的基本用法

CRMEB

模块八:作业

本人法海

「架构实战营」

web前端培训如何定位 MySQL 中DDL 被阻塞

@零度

MySQL 前端开发

一图看懂:融云视频会议四大“护法”,让云端开会不再“裸奔”

融云 RongCloud

学生管理系统架构设计文档

泋清

#架构训练营

java培训流Stream循环遍历list

@零度

stream JAVA开发

TDengine 离线升级流程

TDengine

数据库 tdengine

〖Docker指南①〗快速入门|安装|加速|hello-world

步尔斯特

Docker

基于QUIC协议的HTTP/3正式发布!

JackJiang

网络编程 QUIC http3

OA协同办公系统的发展趋势

力软低代码开发平台

web技术分享| 基于vue3实现自己的组件库,第一章:Message组件

anyRTC开发者

前端 Web 音视频 Vue3 message

我常用的两个翻译神器!程序员必备 | JavaGuide

JavaGuide

明道云入围“2022年中国低/零代码行业影响力TOP15”

明道云

JWT 登录认证及 Token 自动续期

源字节1号

软件开发 前端开发 后端开发 小程序开发

Wallys/Network_Card/DR9074-2.4G-PN01.1-Wifi-6-Qualcomm-QCN9074

wallys-wifi6

wifi6 m.2 802.11AX QCN9074

2022年中国现制柠檬茶市场发展洞察

易观分析

茶饮市场

大数据培训 Yarn和Spark配置与说明

@零度

spark YARN 大数据开发

写入速度提升数十倍,TDengine 在拓斯达智能工厂解决方案上的应用

TDengine

数据库 tdengine 时序数据库

刘勇智:一码通缺陷分析与架构设计方案丨声网开发者创业讲堂 Vol.02

RTE开发者社区

架构 创业讲堂

得物技术埋点自动化验证的探索和最佳实践

得物技术

自动化 重构 稳定性 电商 埋点

“复制黏贴”就能打通企微群机器人,包学包会

明道云

什么是DevOps?为大家都在用DevOps

阿里云云效

云计算 阿里云 DevOps 云原生 研发

InfoQ 极客传媒 15 周年庆征文|什么是云原生,云原生技术为什么这么火?

步尔斯特

云原生 热门活动 InfoQ极客传媒15周年庆

Linux命令汇总 | vim | shell | 进阶【2022版】

步尔斯特

云原生

使用 JavaScript 开发AR(增强现实)移动应用的预备知识和环境搭建

汪子熙

JavaScript AR SAP 增强现实 6月月更

我是一个Dubbo数据包...

捉虫大师

dubbo 6月月更 InfoQ极客传媒15周年庆

以字节跳动内部 Data Catalog 架构升级为例聊业务系统的性能优化

字节跳动数据平台

Apache 大数据 字节跳动 性能优化 数据目录

〖Docker指南②〗Docker常用命令汇总

步尔斯特

Docker

助力工业化设计,提升变电站三维设计效率和业务保障

焱融科技

gpu 存储 数字化 三维设计 工业化设计

《云原生的本手、妙手和俗手》——2022全国新高考I卷作文

步尔斯特

云原生

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