写点什么

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

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

评论

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

误删GreatSQL数据?别慌,Binlog来帮忙

GreatSQL

洞察市场趋势,实时监控商品信息是关键 —— 淘宝API的实践探索

技术冰糖葫芦

API 接口 API 文档 API 测试 API 性能测试

进程,线程,协程 - 你了解多少?

蛋先生DX

线程 操作系统 进程 协程 上下文

年轻,也是求职面试的优势

老张

核心竞争力 面试技巧 求职面试 职场晋升

一种基于alpine、支持ARM架构64位的镜像构建方法及其构建系统

天翼云开发者社区

云计算 arm

蒲城等保测评机构有哪些?在哪里?

行云管家

等保 等级保护 蒲城

企业运维安全方法看这里-行云管家

行云管家

堡垒机 IT运维 企业运维 运维安全

阿里云 EMR Serverless Spark 版正式开启商业化

阿里云大数据AI技术

大数据 spark Serverless 云原生 EMR

寻趣“6”朝古都 MAZDA EZ-6开启金陵CITY WALK

科技热闻

大语言模型 LLM 管理功能特点解析示例

灵快科技

AIGC 模型管理 模型服务 大模型推理 Botnow

Spark任务OOM问题如何解决?

威哥爱编程

spark OOM

初识VPC网络的能力

天翼云开发者社区

云计算 网络安全 VPC

线上事故风险解读之缓存篇

巧手打字通

redis 缓存 架构 事故 经验总结

6个最佳核心应用仪表盘构建工具

NocoBase

数据挖掘 数据分析 数据可视化 仪表盘

1688跨境代采业务api接口全解析

代码忍者

pinduoduo API API 性能测试

抖音商品SKU数据API:解锁电商数据分析新篇章

代码忍者

pinduoduo API API 性能测试

捷途山海 T2:安全先锋,守护每一段旅程

科技热闻

linux下redis 扩内存相关命令

威哥爱编程

redis Linux

OpenAPI 简介

天翼云开发者社区

网络安全 服务器 API 接口

虚拟定位软件:AnyGo for Mac 6.9.5免激活版

你的猪会飞吗

AnyGo下载 AnyGo激活版 AnyGo for Mac AnyGo 中文破解

Navicat Premium 17.1.3版本发布,原生支持华为云数据仓库GaussDB(DWS)

华为云开发者联盟

数据仓库 GaussDB Navicat Premium

OpenHarmony社区开源4年累计产出1.1亿多行代码

科技热闻

老板:你来弄个团队代码提交规范

禅道项目管理

程序员 DevOps 项目管理软件 代码提交规范 测试团队

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