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

多核处理器真的能提升软件系统性能吗?

  • 2007-04-24
  • 本文字数:567 字

    阅读完需:约 2 分钟

Larry O’Brien 对关于多核处理器和适应它的语言一定能带来性能提升的假设提出质疑

原理很简单。没有边际效应(side effect)的函数式编程基本上将自己交给了并行(译者注:意思是最适合并行的技术)。比较有意思的是 Map 函数,在 Map 里函数被应用到数组里的每一个元素。

一些乐观人士看到这儿的时候,说“哈哈,编译器可以轻松地将那些计算分发到一个线程池,在一个有多核的机器上会有性能优势。”确实如此,如果函数非常长或者数组非常大的话。否则,通过多核 / 多处理器分发计算的开销会比在一个核里执行 Map 要大的多。最糟糕的情况是,当函数和数据已经在原核的缓存中时,分发它的性能会非常低效。

从历史上来比较说明,Larry 提到 C/C++ 的内联关键字(inline keyword)。他说在大多数情况下,内联关键字是一个灾难。“绝大多数开发人员在考虑内联关键字给他们带来的好处时,做的很糟糕。因为,仅作为分发用时,Map 会是反生产力的,内联的代码会降低效率(现代处理器的芯片缓存使得代码的大小和位置对性能而言是非常重要的)”

  • 那些声称每一个调用都会被分发的语言,它们有足够的能力去克服并行带来的性能问题吗?
  • 在并行发生的时候,程序员所要使用的语言在主流程序员的手中会像内联一样,成为一场灾难吗?
  • 会有一个混合的方法同时解决这两个问题吗?

查阅英文原文: Automatic Parallel Processing, Will It Work?

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2007-04-24 08:10952

评论

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

AngularJS进阶(十)AngularJS改变元素显示状态

No Silver Bullet

AngularJS 12月月更 元素状态

AngularJS进阶(十一)AngularJS实现表格数据的编辑,更新和删除

No Silver Bullet

表格 AngularJS 12月月更

直播 | 数据仓库?数据湖?停止纠结,流批融合的极速 Lakehouse来了!

StarRocks

#数据库

守护安全|AIRIOT城市天然气综合管理解决方案

AIRIOT

物联网 天然气

实时渲染正在改变可视化游戏

3DCAT实时渲染

云计算 云服务器 云算力 渲染引擎 渲染

建筑中如何使用3D可视化?

3DCAT实时渲染

云计算 3D可视化 智慧建筑 BIM

排查Linux恶意进程

灵霄

Fuzzing(模糊测试)技术,你真的了解吗?

云起无垠

技术分享 | 将覆盖反馈融入黑盒模糊测试技术提升测试效率

云起无垠

Python初学者必备!适合新手阅读的Github开源代码。。。

Jackpop

33K Star!这才是程序员需要的神器。。。

Jackpop

日期格式化 YYYY-MM-DD 出现时间偏移量

HoneyMoose

如何借助低代码开发平台 YonBuilder 填补应用开发 “产能缺口”?

YonBuilder低代码开发平台

开发者 低代码

焱融全闪系列科普| 为什么 SSD 需要 NVMe?

焱融科技

云计算 高性能 nvme 文件存储 全闪存储

云原生中的标准化

穿过生命散发芬芳

云原生 12月月更

AngularJS进阶(十三)JS利用正则表达式校验手机号

No Silver Bullet

正则表达式 AngularJS 12月月更

EasyRecovery2023个人免费版电脑数据恢复软件

茶色酒

EasyRecovery easyrecovery2023

Fuzzing(模糊测试)的前世今生(上)

云起无垠

Fuzzing(模糊测试)的前世今生(下)

云起无垠

网络安全 漏洞挖掘 Fuzzing 模糊测试

2022-12-02:有a块草莓蛋糕,有b块芝士蛋糕,两人轮流拿蛋糕, 每次不管是谁只能选择在草莓蛋糕和芝士蛋糕中拿一种, 拿的数量在1~m之间随意, 谁先拿完最后的蛋糕谁赢。 返回先手赢还是后手赢。

福大大架构师每日一题

算法 rust 福大大

【愚公系列】2022年12月 微信小程序-Component组件

愚公搬代码

12月月更

升维数智化底座 迈向高质量发展

用友BIP

Fuzzing(模糊测试)的前世今生(中)

云起无垠

如何远程Debug内网(或者防火墙后)的Java服务

石臻臻的杂货铺

Java debug 后端

如何选择正确的哈希算法?

Jackpop

Python初学者必备!适合新手阅读的Github开源代码。。。

Jackpop

观测云产品更新|应用性能新增服务清单功能;用户访问监测 Session 查看器调整;事件新增移动端跳转选项等

观测云

可观测性 观测云

ElasticSearch 低成本高可用最佳实践

冰心的小屋

elasticsearch 高可用性

这才是Git的正确学习方式!

Jackpop

Linux Network RSS RPS 疑惑

Geek_f24c45

container network veth RPS

太简单了,一文彻底搞懂Jenkins的用法!

Jackpop

多核处理器真的能提升软件系统性能吗?_.NET_Jonathan Allen_InfoQ精选文章