时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

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

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

评论

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

How old are you | 尚硅谷大数据之Canal视频教程

编程江湖

大数据 canal

社区原生的 Go Agent 即将开源

火线安全

DevSecOps IAST

模块八作业

panxiaochun

架构实战营

用300行代码手写1个Spring框架,麻雀虽小五脏俱全

Tom弹架构

Java spring 源码

Kubernetes常见组件

Rayzh

Docker Kubernetes 云原生

接口文档自动更改?百度程序员开发效率MAX的秘诀

百度Geek说

百度 前端 工具 后端 软件开发

域名基本信息查询小技巧

喀拉峻

网络安全 安全 信息安全

千万级日志回放引擎设计稿

FunTester

性能测试 测试框架 FunTester 流量回放 GOREPLAY

基于DataX的数据同步(下)-应用DataX进行数据同步

恒生LIGHT云社区

数据库 数据同步 DataX

整理了一些JPA常用注解

yombo

Java Spring JPA

爆肝30天,肝出来史上最透彻Spring原理和27道高频面试题总结

Tom弹架构

Java spring 源码

恒源云(GPUSHARE)_云GPU服务器如何使用SpaCy?

恒源云

gpu 服务器 自然语言

2022 年你必须知道的 Serverless 云产品

开源之巅

Serverless 云开发

腾讯云容器安全获得云安全守卫者计划优秀案例

腾讯安全云鼎实验室

容器安全

实现一键部署与高效集群管理,SphereEx-Boot 正式上线

SphereEx

开源 开源社区 SphereEx ShadingSphere 一键安装

基于Gradle的Spring源码下载及构建技巧

Tom弹架构

Java spring 源码

用EasyRecovery恢复手残误删的文件

淋雨

EasyRecovery

30个类手写Spring核心原理之自定义ORM(下)(7)

Tom弹架构

Java spring 源码

Apsara Stack 技术百科|标准化的云时代:一云多芯

云计算 芯片 科技 混合云

一次完整的渗透测试&仅供学习研究

H

黑客 网络安全 渗透测试·

人工智能(NLP)|社交网络中的网络表示学习技术研究

索信达控股

人工智能 算法 网络结构

年底考勤管理汇总难?织信OA管理系统无缝对接外部应用助你解决

优秀

低代码 考勤管理 OA管理系统

揭秘字节跳动基于Hudi的实时数据湖平台

字节跳动数据平台

大数据 实时数据湖

网易有道项目实践技术分享合集

有道技术团队

技术分享 网易有道 技术专题合集

架构训练营 - 模块三作业

伊静西蒙

三位一体,网易智企的融合与进击

ToB行业头条

Dubbo 框架学习笔记十七

风翱

dubbo 12月日更

一文带你了解数据库安全基础

坚果

数据库 28天写作 12月日更

seata分布式事务AT模式介绍(二)

恒生LIGHT云社区

分布式 分布式事务 seata

谈谈Golang的同步等待组

恒生LIGHT云社区

golang Go 语言

使用Docker Configs存储配置信息

yombo

Docker Docker Swarm

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