写点什么

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

  • 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?

2007-04-24 08:101461

评论

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

企业级数据平台为什么要“可观测”? | StartDT Hackathon

奇点云

数据平台 可观测 云数据 黑客马拉松 奇点云

一文盘点,ZBC的应用场景与通缩场景

股市老人

Cloud Kernel SIG月度动态:发布ANCK 5.10-013版本、完整支持Intel SPR处理器

OpenAnolis小助手

开源 版本 内核 龙蜥社区 sig

大咖说·图书分享|狼书(卷3):Node.js高级技术

大咖说

node.js 阿里云 开发者

如何快速实现多指标计算

jiangxl

GaussDB(DWS)性能调优:indexscan导致的性能问题识别与优化

华为云开发者联盟

数据库 后端 华为云 企业号 2 月 PK 榜 华为云开发者联盟

为实现跨境文件高速传输,镭速传输都用了哪些技术

镭速

倒带ChunJun,同心前行|2022年度回顾&2023年共建规划

袋鼠云数栈

开源

深入react源码看setState究竟做了什么?

flyzz177

React

【等保要求】等保要求堡垒机审计日志保留多久?

行云管家

等保 堡垒机 等级保护

IM通讯协议专题学习(九):手把手教你如何在iOS上从零使用Protobuf

JackJiang

镜舟城市行|镜舟联手永洪科技共话数智运营

镜舟科技

数据库

用javascript分类刷leetcode22.字典树(图文视频讲解)

js2030code

JavaScript LeetCode

从源码角度看React-Hydrate原理

flyzz177

React

喜讯:行云绽放荣获国家高新技术企业证书

行云管家

高新企业 高新技术 高新

转角遇到爱,资源中心系统和图数据库

鲸品堂

技术 图数据库 企业号 2 月 PK 榜

StarRocks 企业行|走进 58 同城,探索极速统一 3.0 时代的企业实践

StarRocks

数据库

2023最新Java面试手册(性能优化+微服务架构+并发编程+开源框架)

小小怪下士

Java 程序员 面试 金三银四

前端工程师leetcode算法面试必备-二叉树深度广度遍历

js2030code

JavaScript LeetCode

详解Redisson分布式限流的实现原理

华为云开发者联盟

后端 开发 华为云 企业号 2 月 PK 榜 华为云开发者联盟

阿里IM技术分享(十):深度揭密钉钉后端架构的单元化演进之路

JackJiang

三十分钟入门基础Go(Java小子版)

京东科技开发者

Java php Go nil 企业号 2 月 PK 榜

前端工程师leetcode算法面试必备-二叉树的构造和遍历

js2030code

JavaScript LeetCode

Flink X Hologres构建企业级Streaming Warehouse

阿里云大数据AI技术

大数据 数仓 企业号 2 月 PK 榜 分层技术

设计模式第五讲-装饰器模式和代理模式详解

C++后台开发

数据结构 设计模式 后端开发 Linux服务器开发 C++开发

为什么西门子、美的等企业这样进行架构升级,看看改造效果就知道了

TDengine

数据库 tdengine 开源 时序数据库

PMR 提取视频特征,理解上下文

Zilliz

StarRocks获评「2022 中国开源社区健康案例」!

StarRocks

数据库 开源

熊猫小说家功能升级:支持阅读原文+更多功能等你解锁

澜舟孟子开源社区

NLP 大模型 AIGC 澜舟科技

云小课|使用SpringBoot快速构建FunctionGraph HTTP函数

华为云开发者联盟

开发 HTTP 华为云 企业号 2 月 PK 榜 华为云开发者联盟

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