AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

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

评论

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

一个容器,但是一整个k8s集群

newbe36524

C# Docker Kubernetes

实现一个简单的Database9(译文)

GreatSQL

sqlite greatsql greatsql社区

Vue的computed和watch的区别是什么?

bb_xiaxia1998

Vue

New Bing 内测,革搜索的命

冯骐

openai GPT ChatGPT New Bing 对话模型

写给go开发者的gRPC教程-拦截器

凉凉的知识库

Go 微服务 gRPC http2

1行Python代码去除图片水印,网友:干干净净!

程序员晚枫

Python GitHub 开源 去水印 自动化办公

三次握手与四次挥的问题,怎么回答?

loveX001

JavaScript

问:React的setState为什么是异步的?

beifeng1996

React

前端react面试题指南

beifeng1996

React

KMP算法详解

javaadu

数据结构 字符串 KMP

架构实战营-模块一作业

🐢先生

架构实战营

老生常谈React的diff算法原理-面试版

beifeng1996

React

软件测试/测试开发 | SeleniumIDE用例录制

测试人

软件测试 自动化测试 测试开发 Web自动化测试 selenium

被流量和热度裹挟,自媒体行业必须坚守职业道德

石头IT视角

2023我的前端面试小结

loveX001

JavaScript

产品的可持续发展

ShineScrum

产品 产品负责人 产品的可持续发展

软件测试/测试开发 | Selenium 测试用例编写

测试人

软件测试 自动化测试 测试开发 Web自动化测试 selenium

软件测试/测试开发 | Web自动化之显式等待与隐式等待

测试人

软件测试 自动化测试 测试开发 web测试 web自动化

前端必会面试题

loveX001

JavaScript

C++ 智能指针(一) std::auto_ptr

orbitgw

c++ C++ STL

FL Studio2023最新版本音乐编曲制作软件

茶色酒

FL Studio2023

软件测试/测试开发 | Web自动化之Selenium安装

测试人

软件测试 自动化测试 测试开发 Web自动化测试 selenium

为什么补码是取反加1?

Dinfan

用Docker搭建更酷的本地开发环境

致知Fighting

Java Docker Linux 后端 开发

Shell分支语句

圆弧

分支 条件 shell脚本

前端react面试题(边面边更)

beifeng1996

React

为什么用元空间替代永久代?

王磊

java面试

promise执行顺序面试题令我头秃,你能作对几道

loveX001

JavaScript

零基础入门AI?先来把机器学习捣鼓明白吧

博文视点Broadview

软件测试/测试开发 | Web测试方法与技术实战演练

测试人

软件测试 自动化测试 测试开发 Web自动化测试

2023-02-12:给定正数N,表示用户数量,用户编号从0~N-1, 给定正数M,表示实验数量,实验编号从0~M-1, 给定长度为N的二维数组A, A[i] = { a, b, c }表示,用户i报

福大大架构师每日一题

算法 rust 福大大

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