并行计算范式的时空辩证

news/2024/9/18 4:13:11/ 标签: 并行计算

来读一篇早年(September 27, 2017)的文章:The network era requires new models, with interactions instead of algorithms.

这篇文章迟到了很久,我在十多年前提到过一个相关的时空辩证:

  • CPU 在时间序顺序执行指令流,基于图灵机模型;
  • 专用硬件(or 芯片)将指令在空间展开,并行依赖。

一个有限时间执行完的指令流一定能展开成有限空间里的一堆门电路,如用一个加法器和多次 load/store 完成的多位加法一定能用一个多位加法器等价,前者用时间换空间,后者用空间换时间。

引文中一个图:
在这里插入图片描述

大致就是一个组合电路的样子,也阐释了我上面那段话:连续的 A = B + C; Y = X + A 流程被两个独立的 agent 级联等价。

计算机最底层的芯片就是一堆在空间中彼此勾连的门电路,它们之间的依赖关系决定了电路状态转换,一个指令可以在几乎 “一瞬间” 完成,取决于光速,电路尺寸及连接方式。

往上进一层,芯片封装成 CPU,以 CPU 为单位,其上运行的却是串行指令流,于时间序顺序执行,由此我们看到的是一个个用 C,Java 等编程语言写的代码。

再往上,人们又期望这些独立代码可以并行完成一件事,甚至在分布于不同位置的机器上并行完成一件事,愿景又回到了最底层,瞅瞅看,支撑所有这一切的最底层门电路就是分布在不同位置,且它们并行完成了所有这一切。

但指望 C,Java 独立程序做并行计算,将遇到没完没了的同步问题。

坚,柔为辩证,时,空也是,“天下之至柔,驰骋天下之至坚,无有入无间”。这是个圈,但似乎没有闭合。文初引用的文章给了一个闭合的方式。

重新回头审视,可以发现计算范式的不同,同步问题难点的根源在于不理解这两种不同的范式:

  • 用串行程序组合并行计算,程序知道变量的位置,却不知道变量何时到达,这就就需要同步;
  • 用并行 agent 组合并行计算,agent 知道变量何时到达,却不用知道它来自哪,这就不用同步。

只要变量到达,计算就能继续推进,至于推进到哪里,完全取决于连接方式,而连接方式也决定了变量不可能从多处到达而产生歧义。

并行计算同步难是康威定律实例,这个定律说,设计系统的组织,其产生的设计必然是该组织沟通结构的副本。C,Java 程序基本都是模拟 CPU,它们顺理成章顺序执行,没有任何天然机制支撑并行状态同步,程序(or CPU)是独立且封闭的,当它执行时,它就是整个世界,也就必须手工埋点来支撑同步,说回 CPU 本身,多 CPU 的缓存一致性问题也是类似。

是以,“天下有始,以为天下母。既得其母,以知其子。既知其子,复守其母,没身不殆”。

《道德经》还是要一读再读。

早读一篇 acm 文章,发现是 2017 年的,相见恨晚,昨天买了新鞋,再也不用穿着拖鞋跑步,路上思考昨天读到的《道德经》几章节,又想到早些年写的文章,“硬件电路就是以拓扑和通信为核心,并行完成任务,但在上一个芯片的层次,却是在执行串行的指令流”,将这些思考糅合一下,作文以记之。

浙江温州皮鞋湿,下雨进水不会胖。


http://www.ppmy.cn/news/1525525.html

相关文章

职业技能大赛背景下的移动互联网应用软件开发(Android)实训室建设方案

一、建设背景 随着科技的持续进步,移动设备已成为人们日常生活中不可或缺的一部分。据相关数据,移动互联网的使用率在近年来显著上升。在这样的背景下,移动互联技术不仅推动了科技的发展,也渗透到了智能家居、车联网、工业自动化…

blender云渲染来了,blender云渲染教程!

朋友们,成都渲染101农场blender云渲染上线了,继3DMAX/C4D/maya/UE5云渲染上线后,又上线了blender云渲染,今天,成都渲染101渲染农场用四步教会您blender云渲染! 第一步,云渲码6666注册个渲染101…

CSS Clip-Path:重塑元素边界的艺术

在Web设计中,创造独特而富有吸引力的视觉效果一直是设计师和开发者们追求的目标。CSS的clip-path属性为此提供了一个强大的工具,它允许我们定义元素的可见区域,从而以非矩形的方式裁剪图像或容器。这一特性不仅限于简单的形状裁剪&#xff0c…

深入理解Oracle数据库中的数据库链接

在Oracle数据库环境中,数据库链接(Database Link)是一种强大的特性,它允许用户从一个数据库(本地数据库)访问另一个数据库(远程数据库)中的数据。这种链接机制极大地增强了数据库的互…

一码空传临时网盘PHP源码,支持提取码功能

源码介绍 一码空传临时网盘源码V2.0免费授权,该源码提供了一个简单易用的无数据库版临时网盘解决方案。前端采用了layui开发框架,后端使用原生PHP编写,没有引入任何开发框架,保持了代码的简洁和高效。 这个程序使用了一个无数据…

对齐访问与非对齐访问

对齐访问与非对齐访问 一、对齐访问的定义对齐示例: 二、非对齐访问的定义非对齐示例: 三、对齐与非对齐访问的区别1. 性能:2. 处理器架构:3. 处理复杂度: 四、对齐与非对齐访问的实际应用1. 编译器优化:2.…

vscode 设置

code runner设置运行代码弹出运行窗口 要让VSCode在输cmd窗口,可以按照以下步骤进行设置: 1. 打开VSCode并进入”文件”->”首选项”->”设置”,或者使用快捷键Ctrl ,。 2. 在设置页面的搜索栏中输入”External Terminal”&#xf…

fetch-event-source 如何通过script全局引入

fetchEventSource源码中导出了两种类型的包cjs和esm。但是有个需求如何在原生是js中通过script标签引呢?需要加上typemodule。今天介绍另一种方法 下载源码文件: https://github.com/Azure/fetch-event-source.git 安装: npm install --save-dev webp…

力扣100题——杂题

回溯——分割回文串 题目 131. 分割回文串 - 力扣(LeetCode) 思路 问题拆解 回文串定义:回文串是指从前往后和从后往前读都是相同的字符串。例如,"aba" 和 "racecar" 都是回文串。 递归 回溯思想&#…

网络学习-eNSP配置NAT

NAT实现内网和外网互通 #给路由器接口设置IP地址模拟实验环境 <Huawei>system-view Enter system view, return user view with CtrlZ. [Huawei]undo info-center enable Info: Information center is disabled. [Huawei]interface gigabitethernet 0/0/0 [Huawei-Gigabi…

HTML中的文字与分区标记

1.font标记&#xff1a;用来设置文字的字体&#xff0c;大小&#xff0c;颜色&#xff0c;等属性 <!--font:font标记用来设置字体大小颜色属性size:设置字号&#xff0c;默认是3号&#xff0c;1表示4号&#xff0c;-1表示2号&#xff0c;取值范围是[1,7]或[-7,-1]color:设置…

websim.ai 体验过程+感受

体验 websim.ai 后感觉网站更倾向于客户提需求或者满足客户需求的可视化页面阶段&#xff0c;比较像设计界面。就是一直命令AI添加功能&#xff0c;然后它绘图。导出的代码是单个HTML文件&#xff0c;用前端三件套写的。 体验过程 ① Create a relationship diagram between …

chrome浏览器如何设置自动播放音视频

使用场景&#xff1a; 有些场景需要打开页面后&#xff0c;自动播放视频或者视频流&#xff0c;这时候发现无法播放&#xff0c;打开浏览器控制台发现有下面的错误提示&#xff1a;NotAllowedError: play() failed because the user didnt interact with the document first 。…

金融壹账通:智能面审解决方案“大显身手”

深度伪造技术Deepfake,是“Deep Machine Learning(深度机器学习)”与“Fake Photo(假照片)”两个词的合成词,主要指用AI深度学习的技术,合成某个人的图片或视频、甚至声音,最常见的便是AI换脸,此外还包括语音模拟、人脸合成、视频生成等。如今,AI换脸与“假人骗贷”正成为相当常…

文件误删危机应对:数据恢复全解析

文件误删&#xff1a;数字化时代的隐形挑战 在数字化的浪潮中&#xff0c;文件已成为我们工作、学习和生活中不可或缺的一部分。它们记录着我们的思想、成果与回忆&#xff0c;是连接现实与虚拟世界的桥梁。然而&#xff0c;这份便捷与高效背后&#xff0c;却隐藏着文件误删这…

SpringBoot + Vue + ElementUI 实现 el-table 分页功能详解

引言 在现代Web应用程序开发中&#xff0c;前后端分离架构越来越受欢迎。这种架构使得前端和后端开发可以并行进行&#xff0c;提高了开发效率。本文将详细讲解如何使用SpringBoot作为后端&#xff0c;Vue.js和ElementUI作为前端&#xff0c;实现一个带分页功能的数据表格&…

算法练习题16——leetcode73矩阵置零

题目描述 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。 解题思路 我们需要找出矩阵中哪些位置有 0&#xff0c;然后将这些位置所在的行和列上的所有元素都设为 0。 可以分为以下几个步骤&#xff1a; 扫描矩阵&…

基于less和scss 循环生成css

效果 一、less代码 复制代码 item-count: 12; // 生成多少个 .item 类.item-loop(n) when (n > 0) {.icon{n} {background: url(../../assets/images/menu/icon{n}.png) no-repeat;background-size: 100% 100%;}.item-loop(n - 1);}.item-loop(item-count);二、scss代码 f…

Autosar(Davinci) --- 创建一个S/R类型的port(下)

前言: 前面章节我们讲解了S/R类型的Port如何创建,这一章节,我们着重讲一下生成的代码,以及我们如何添加代码让这些门与灯之间的关系产生连接。 一、CtSaDoor.c 在【Rte.c】的【IO_TASK】中我们可以看到,反复的判断Rte_Ev_Cyclic_IO_Task_0_200ms这个条件是否成立,当200…

系统架构设计师【真题论文】: 论企业集成平台的技术与应用(包括解题思路和经典范文)

更多内容请见: 备考系统架构设计师-核心总结索引 文章目录 真题题目(2015年试题4)解题思路精品范文赏析摘要正文总结真题题目(2015年试题4) 题目:论企业集成平台的技术与应用 企业集成平台是一个支持复杂信息环境下信息系统开发、集成和协同运行的软件支撑环境。它基于各…