QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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

  • 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:101095

评论

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

C++多态的基本概念与原理刨析

CtrlX

c c++ 面向对象 代码 8月月更

开源一夏 | 实战Node.js之GET/POST请求在Web 应用架构在客户端的使用

恒山其若陋兮

开源 8月月更

文件管理-Linux系统文件属性

Albert Edison

Linux centos 运维 文件管理 8月月更

消费大众网民的审丑心理,如何拯救扭曲化的自媒体行业

石头IT视角

在线诺基亚短信图片生成器工具

入门小站

工具

SpringMvc如何同时支持Jsp和Json接口?

xiaoxi666

IPv4向IPv6的过渡技术

穿过生命散发芬芳

ipv6 8月月更

详解CAN总线:常用CAN连接器的使用方法

不脱发的程序猿

汽车电子 嵌入式开发 CAN连接器

spark实战之:分析维基百科网站统计数据(java版)

程序员欣宸

Java spark 8月月更

三个线程交替打印ABC100次问题思考

越长大越悲伤

面试 线程 后端 JUC

头脑风暴:最长连续递增序列

HelloWorld杰少

算法 LeetCode 数据结构, 8月月更

开源一夏 | 阿里云ECS之Linux 文件管理命令

六月的雨在InfoQ

Linux 开源 8月月更 文件管理命令 磁盘命令

《Dubbo3.0.8源码解析》15-Dubbo的三大中心之元数据中心源码解析

宋小生

dubbo Dubbo3

聚焦2022全球边缘计算大会·深圳站,揭秘火山引擎新一代边缘云解决方案

火山引擎边缘云

分布式 CDN 边缘计算 渲染 边缘云

架构训练营毕业总结

joak

MySQL数据库之数据查询

乌龟哥哥

8月月更

加密市场由阴转晴,Zebec或成2022后半段黑马

鳄鱼视界

LabVIEW LINX Toolkit控制Arduino设备(拓展篇—1)

不脱发的程序猿

嵌入式 单片机 LabVIEW Arduino LINX Toolkit

详解CAN总线:什么是CAN总线?

不脱发的程序猿

嵌入式 汽车电子 CAN总线协议

在线XML转TSV工具

入门小站

工具

flstudio21版本有什么新功能?

茶色酒

FL Studio

开源一夏|三步注册gitee

坚果

开源 8月月更

智能化运维场景分析

阿泽🧸

智能运维 8月月更

6.18秒杀系统架构设计

joak

RocketMQ高可用设计之同步刷盘

急需上岸的小谢

8月月更

Spring进阶(一):SpringMVC常用注解标签详解

No Silver Bullet

springmvc 注解 8月月更

leetcode 304. Range Sum Query 2D - Immutable 二维区域和检索 - 矩阵不可变(中等)

okokabcd

LeetCode 数据结构与算法

开源一夏 | 阿里云ECS之Linux 系统工作命令

六月的雨在InfoQ

Linux 开源 8月月更 系统命令

SAFe Day 2022 中国规模化敏捷大会即将开启

Scrum中文网

敏捷 safe 规模化敏捷 大规模敏捷 SAFeDay

flstudio21水果软件更新内容V21版本

茶色酒

FL Studio

计算机网络(三、数据链路层)

计算机网络 8月月更

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