云上真有无穷算力吗?

简介: 本文探讨了云计算环境下“算力无限”的误区,指出即使云上硬件资源看似无限,但由于网络延迟、算法模型限制及成本等因素,实际运算效率未必能线性扩展。文章强调了提高单机运算效率的重要性,推荐使用SPL等工具优化算法,以实现更高性能。

自从 Hadoop 兴起之后,业界好象就有了这么一种共识:不再关注单机的运算性能,全靠集群堆。大家都在比谁的集群能更大,至于单机能力是否被充分发挥了,那没人关心。Hadoop 体系的诸多技术都有这个特征,单机性能奇低,但并不妨碍 Hadoop 推广得遍地都是。

发展到云计算阶段,这个认识就变成了“云上算力无穷”,算法有多笨都没有关系了,反正算力无穷多。所谓双拳难敌四手,到了云上,似乎啥都能搞定。

真有这么回事吗?

从云上能提供的硬件数量(CPU、内存)上看,算力确实是无穷的(相对于某个用户的需求),但这个“无穷”真能有多大意义呢?。

云计算的环境也是由普通硬件搭建的,一台物理机器能装上的 CPU 和内存数量都是有限的,再多的 CPU 和内存就需要用多机来组合了,而多机虚拟出来的 CPU 和内存和单机的性能是完全不同的。访问另一台物理机器的内存需要通过网络,而网络只适合批量访问,但内存的使用常常是小量随机式的,如果继续把网络模拟出来的内存当作单机内存去使用,而不调整算法以适应集群的话,那性能下降得会非常离谱。Java 程序员都知道当内存紧张时(还够但不充裕),JVM 要用外存缓存时导致的性能下降会有多严重,常常是一两个数量级的,在集群中发生本机内存不足需要访问其它节点的内存时,也会有类似的现象发生。这意味着,达到某个阈值的时候,你可能要动用 10 倍甚至 100 倍的硬件资源才能在期望的时间内完成运算了。算力虽然“无穷”,但并不能线性地扩展。

这就会引出另一个问题。

数天前与江湖上人称铎神的师弟(参考:https://mp.weixin.qq.com/s/0gFtvoYG-B_yBb1FoAlyHA)一起聊天,问起对“云上算力无限”这个观点的看法,铎神脱口而出:“云上算力无限,但用户口袋里的钱却有限”。

这道理简单得完全无需解释。

再退一步讲,就算用户财大气粗不在乎成本,仍然有不少运算没办法用上无限算力。

比如我们常见的关联运算(SQL 中的 JOIN),如果不在算法模型层面上进行改造,那它会有个集群节点的极限。分布式 JOIN 算法会有个 Suffle 动作,要在节点之间交换数据,当节点数较多时,Suffle 造成的网络延迟会抵消多机分摊计算带来的性能提升,这时候再增加更多的节点,运算性能并不会有明显提升了。而且这个节点限制数并不大,大概也就是几十到百的规模就会到顶了。

如果不对数据存储组织做刻意的优化,这种“关联”运算就会很常见。

从这三方面看,云上的“无穷”算力对于实际要做的运算来讲,常常没有多大实质意义。

需要一架飞机的时候,并不能用十万匹马来对付。

事还没讨论完,我们还要回答一个问题:既然真正意义的无穷算力并不普遍存在,为什么 Hadoop 等对单机资源利用率很低的技术还能大行其道?

这可能是因为 Hadoop 主要采用的是 PC 服务器,其价格远远低于之前的主流小型机,使用集群的总成本常常还比使用单个小型机的成本更低,这就给人造成了错觉,在原先可接受的成本下可以轻易地获得希望的算力。然而,小型机被逐步边缘化、硬件竞争都进入了 PC 服务器时代之后,耗用太多机器资源的技术就会越来越难过了。

那该咋办?

设计好算法,先把单机的运算效率提上去呗。

但是且显然,这事不能全指望数据库的优化,情况复杂时数据库引擎会晕掉(很容易造出这种并不太复杂的例子)。而且,很多运算本身都没法用 SQL 写出来,数据库想优化也无从谈起。

那又咋办?

嘿嘿,用 SPL 啊!

SPL 能够方便实现很多高性能的算法,把单机的运算效率提到极致,整体性能提上几倍甚至几个数量级,本来要用集群的运算也可以不用集群,大集群可以改用小集群。而且,关键的是,写出来的代码比 SQL 还短!

SPL 已开源且免费,欢迎下载试用,乾学院上还有高性能算法图书 【性能优化】。

相关文章
|
15天前
|
存储 人工智能 弹性计算
阿里云弹性计算_加速计算专场精华概览 | 2024云栖大会回顾
2024年9月19-21日,2024云栖大会在杭州云栖小镇举行,阿里云智能集团资深技术专家、异构计算产品技术负责人王超等多位产品、技术专家,共同带来了题为《AI Infra的前沿技术与应用实践》的专场session。本次专场重点介绍了阿里云AI Infra 产品架构与技术能力,及用户如何使用阿里云灵骏产品进行AI大模型开发、训练和应用。围绕当下大模型训练和推理的技术难点,专家们分享了如何在阿里云上实现稳定、高效、经济的大模型训练,并通过多个客户案例展示了云上大模型训练的显著优势。
|
18天前
|
存储 人工智能 调度
阿里云吴结生:高性能计算持续创新,响应数据+AI时代的多元化负载需求
在数字化转型的大潮中,每家公司都在积极探索如何利用数据驱动业务增长,而AI技术的快速发展更是加速了这一进程。
|
10天前
|
并行计算 前端开发 物联网
全网首发!真·从0到1!万字长文带你入门Qwen2.5-Coder——介绍、体验、本地部署及简单微调
2024年11月12日,阿里云通义大模型团队正式开源通义千问代码模型全系列,包括6款Qwen2.5-Coder模型,每个规模包含Base和Instruct两个版本。其中32B尺寸的旗舰代码模型在多项基准评测中取得开源最佳成绩,成为全球最强开源代码模型,多项关键能力超越GPT-4o。Qwen2.5-Coder具备强大、多样和实用等优点,通过持续训练,结合源代码、文本代码混合数据及合成数据,显著提升了代码生成、推理和修复等核心任务的性能。此外,该模型还支持多种编程语言,并在人类偏好对齐方面表现出色。本文为周周的奇妙编程原创,阿里云社区首发,未经同意不得转载。
|
22天前
|
缓存 监控 Linux
Python 实时获取Linux服务器信息
Python 实时获取Linux服务器信息
|
8天前
|
人工智能 自然语言处理 前端开发
什么?!通义千问也可以在线开发应用了?!
阿里巴巴推出的通义千问,是一个超大规模语言模型,旨在高效处理信息和生成创意内容。它不仅能在创意文案、办公助理、学习助手等领域提供丰富交互体验,还支持定制化解决方案。近日,通义千问推出代码模式,基于Qwen2.5-Coder模型,用户即使不懂编程也能用自然语言生成应用,如个人简历、2048小游戏等。该模式通过预置模板和灵活的自定义选项,极大简化了应用开发过程,助力用户快速实现创意。
|
5天前
|
云安全 存储 弹性计算
|
7天前
|
云安全 人工智能 自然语言处理
|
4天前
|
人工智能 C++ iOS开发
ollama + qwen2.5-coder + VS Code + Continue 实现本地AI 辅助写代码
本文介绍在Apple M4 MacOS环境下搭建Ollama和qwen2.5-coder模型的过程。首先通过官网或Brew安装Ollama,然后下载qwen2.5-coder模型,可通过终端命令`ollama run qwen2.5-coder`启动模型进行测试。最后,在VS Code中安装Continue插件,并配置qwen2.5-coder模型用于代码开发辅助。
340 4
|
5天前
|
缓存 Linux Docker
【最新版正确姿势】Docker安装教程(简单几步即可完成)
之前的老版本Docker安装教程已经发生了变化,本文分享了Docker最新版安装教程,其他操作系统版本也可以参考官 方的其他安装版本文档。
【最新版正确姿势】Docker安装教程(简单几步即可完成)
|
10天前
|
人工智能 自然语言处理 前端开发
用通义灵码,从 0 开始打造一个完整APP,无需编程经验就可以完成
通义灵码携手科技博主@玺哥超carry 打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用 AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。本教程完全免费,而且为大家准备了 100 个降噪蓝牙耳机,送给前 100 个完成的粉丝。获奖的方式非常简单,只要你跟着教程完成第一课的内容就能获得。