通过SSA的解释执行窥探Golang编译之一角
通过SSA的解释执行窥探Golang编译之一角 丁尔男 武汉航天远景 产品总监 凹语言 联合发起人 PLOC 联合发起人 目 录 Golang 编译流程简介 01 SSA 解释执行 02 基于 SSA 的应用 03 Golang 编译流程简介 源代码 抽象语法树 抽象语法树 (带语义信息) 静态单赋值 目标代码 Golang 编译流程简介 源代码 抽象语法树 抽象语法树 Rosen、Mark N. Wegman、F. Kenneth Zadeck 提出的一种中间代码(IR) 表示形式,典型特征是所有变量被且仅被赋值一次。 2016年,Go 1.7 加入 SSA 支持。 SSA 解释执行 02-HelloSSA const src = ` package main func main() { println("Hello, GoCN!") println("The answer *ssa.Call - Call = *ssa.Builtin, println - Args = [“The answer is”, 42] Instrs[2] *ssa.Return SSA 解释执行 02-HelloSSA *ssa.Package main *ssa.Function Blocks[0] *ssa.BasicBlock Instrs[0] *ssa.Call - Call0 码力 | 30 页 | 1.50 MB | 1 年前3Rust并行编译的挑战与突破
Rust并行编译的挑战与突破 李原 2022年5月28日 • 相关浅谈 • Rust并行编译的挑战与突破 • 从并行编译到并行程序设计 • Rust社区与并行编译 目录 相关浅谈 Rust编译速度之殇 编译器设计造成编译速度缓慢 · 单态化 · 借用检查 · 宏展开 · MIR优化 ... Rust规模编译速度慢于C++ Rust编译速度之殇 提升编译效率成为近年社区重点工作 提升编译效率成为近年社区重点工作 并行编译或成下一代编译效率突破利器 2017-2021,Rust编译速度已提升一倍以上 Rust社区编译器性能工作组 Rust编译器并行化 Cargo多crate并行 二进制生成并行 更多更好的并行化? Rust编译器架构 语法树生成 宏展开 命名解析 泛型解析 类型检查 借用检查 单态化 二进制生成 增量编译系统 底层数据 结构 Rust语言编译器结构总览 考虑内部编译流程并行化 考虑内部编译流程并行化 Rust并行并发 编译时线程安全检查 一些常见线程安全数据结构 常用Rust并行并发库 Rust并行并发 增加程序复杂度 线程安全数据结构造成效率损失 Mutex与RwLock rustc profileing 数据 · 代码复杂度及健壮性 · benchmark资源限制 · profileing成本 ... 收益 > 代价? Rust并行编译的挑战与突破0 码力 | 25 页 | 4.60 MB | 1 年前3通过Oracle 并行处理集成 Hadoop 数据
白皮书 2011 年 1 月 通过 Oracle 并行处理集成 Hadoop 数据 1 Oracle 白皮书 — 通过 Oracle 并行处理集成 Hadoop 数据 引言 作为示例,但这里的策略同样适用于其他分 布式存储机制。本文中介绍了各种访问方法,还通过一个具体示例说明了其中一 种访问方法的实现。 2 Oracle 白皮书 — 通过 Oracle 并行处理集成 Hadoop 数据 外部 Hadoop 数据的访问方法 要从 Oracle 数据库里访问某个文件系统中 在图 1 中,我们利用 Oracle Database 11g 实现本文所述的数据库内的 mapreduce。通常情况 下,Oracle Database 11g 中的并行执行框架足以满足针对外部表大多数的并行操作。 在有些情况下(例如,如果 FUSE 不可用),外部表方法可能不适用。Oracle 表函数提供了 从 Hadoop 中获取数据的替代方法。本文附带的示例展示了一种这样的方法。更深入地来0 码力 | 21 页 | 1.03 MB | 1 年前3在 JavaScript 中的并行语言特性-周爱民
在JavaScript中的 并行语言特性 周爱民 @aimingoo https://github.io/aimingoo 上海南潮信息科技有限公司/ruff.io R/W {range} {range} {range} R W Lock Unlock 声明一个变量/标识 符,使之在确定的上 下文中占有存储位 置。 有变量 1 使存储位置中有值。 绑定值 3 Reactions2 p = Promise.resolve(x) p2 = p.then(f) JS 类 对象 构造器 ⾯面向对象的 动态的 名字空间 结构化异常 语句 结构化的 动态类型 动态执行 动态作用域 多语言范型 函数式的 生成器 迭代器 函数是第一类的 可运行/求值的 for await..of .catch .finally promise.then() Promise()0 码力 | 41 页 | 8.61 MB | 1 年前3并行不悖- OLAP 在互联网公司的实践与思考
1 并行不悖 – OLAP 在互联网公司的实践与思考 赵飞祥 2 Greenplum现状说明 三 Greenplum体系架构 二 数据仓库体系架构 一 Greenplum开发规范 五 Greenplum运维体系 四 Greenplum扩展规划 六 3 数据仓库体系架构 业务数据与数据使用归类 时间维度:过去 - 现在 - 未来 (数据的生命周期) • “现在”的数据 —— 10 greenplum体系架构 postgresql体系结构 11 greenplum体系架构 postgresql体系结构 • pg结构组成 Ø 连接关系系统 Ø 编译执行系统 Ø 存储执行系统 Ø 事务系统 Ø 系统表 • pg逻辑和物理结构 Ø instance实例 - user - tablesapce Ø database - schema - table,view greenplum体系架构 greenplum的体系结构 14 greenplum体系架构 greenplum的体系结构 • greenplum的架构特点 Ø MPP ShareNothing 海量并行处理+完全无共享 Ø cpu计算能力 Ø 数据从Disk上的I/O吞吐性能 Ø master管理节点 Ø segment数据节点 • greenplum的核心功能 Ø 无共享MPP Ø 多态存储0 码力 | 43 页 | 9.66 MB | 1 年前3FISCO BCOS 2.9.0 中文文档
搭建第一个区块链网络 • 开发第一个区块链应用 • 关键概念 • 区块链网络搭建 • 区块链应用开发 • FISCO BCOS Java SDK • 问题排查 • 整体架构 • 共识算法 • 交易并行 • 分布式存储 • 预编译合约 • 更多设计文档 • Github主页 • 深度解析系列文章 • 贡献代码 • 反馈问题 • 应用案例集 • 微信群 、公众号 • FISCO BCOS企业级金融联盟链底层平台: 关系,企业可选择不同群组,形成多个不同账本的数据共享和共识,从而快速丰富业务场景、扩大业务 规模,且大幅简化链的部署和运维成本。 两翼指的是支持并行计算模型和分布式存储,二者为群组架构带来更好的扩展性。前者改变了区块中按 交易顺序串行执行的做法,基于DAG(有向无环图)并行执行交易,大幅提升性能;后者支持企业(节 点)将数据存储在远端分布式系统中,克服了本地化数据存储的诸多限制。 多引擎是一系列功能特性的总 BCOS从提升交易执行效率和并发两个方面优化了交易执行,使得交易处理性 能达到万级以上。 • 基于C++的Precompiled合约:区块链底层内置C++语言编写的Precompiled合约,执行效率更高。 • 交易并行执行:基于DAG算法根据交易间互斥关系构建区块内交易执行流,最大化并行执行区块 内的交易。 • 交易生命周期的异步并行处理:共识、同步、落盘等各个环节的异步化以及并行处理。 1.50 码力 | 1489 页 | 107.09 MB | 1 年前3FISCO BCOS 3.6.0 中文文档
搭建第一个区块链网络 • 开发第一个区块链应用 • 关键概念 • 区块链网络搭建 • 区块链应用开发 • FISCO BCOS Java SDK • 问题排查 • 整体架构 • 共识算法 • 交易并行 • 分布式存储 • 预编译合约 • 更多设计文档 • Github主页 • 深度解析系列文章 • 贡献代码 • 反馈问题 • 应用案例集 • 微信群 、公众号 • FISCO BCOS企业级金融联盟链底层平台: 关系,企业可选择不同群组,形成多个不同账本的数据共享和共识,从而快速丰富业务场景、扩大业务 规模,且大幅简化链的部署和运维成本。 两翼指的是支持并行计算模型和分布式存储,二者为群组架构带来更好的扩展性。前者改变了区块中按 交易顺序串行执行的做法,基于DAG(有向无环图)并行执行交易,大幅提升性能;后者支持企业(节 点)将数据存储在远端分布式系统中,克服了本地化数据存储的诸多限制。 多引擎是一系列功能特性的总 BCOS从提升交易执行效率和并发两个方面优化了交易执行,使得交易处理性 能达到万级以上。 • 基于C++的Precompiled合约:区块链底层内置C++语言编写的Precompiled合约,执行效率更高。 • 交易并行执行:基于DAG算法根据交易间互斥关系构建区块内交易执行流,最大化并行执行区块 内的交易。 • 交易生命周期的异步并行处理:共识、同步、落盘等各个环节的异步化以及并行处理。 1.50 码力 | 1489 页 | 107.09 MB | 1 年前3FISCO BCOS 2.9.0 中文文档
搭建第一个区块链网络 • 开发第一个区块链应用 • 关键概念 • 区块链网络搭建 • 区块链应用开发 • FISCO BCOS Java SDK • 问题排查 • 整体架构 • 共识算法 • 交易并行 • 分布式存储 • 预编译合约 • 更多设计文档 • Github主页 • 深度解析系列文章 • 贡献代码 • 反馈问题 • 应用案例集 • 微信群 、公众号 • FISCO BCOS企业级金融联盟链底层平台: 关系,企业可选择不同群组,形成多个不同账本的数据共享和共识,从而快速丰富业务场景、扩大业务 规模,且大幅简化链的部署和运维成本。 两翼指的是支持并行计算模型和分布式存储,二者为群组架构带来更好的扩展性。前者改变了区块中按 交易顺序串行执行的做法,基于DAG(有向无环图)并行执行交易,大幅提升性能;后者支持企业(节 点)将数据存储在远端分布式系统中,克服了本地化数据存储的诸多限制。 多引擎是一系列功能特性的总 BCOS从提升交易执行效率和并发两个方面优化了交易执行,使得交易处理性 能达到万级以上。 • 基于C++的Precompiled合约:区块链底层内置C++语言编写的Precompiled合约,执行效率更高。 • 交易并行执行:基于DAG算法根据交易间互斥关系构建区块内交易执行流,最大化并行执行区块 内的交易。 • 交易生命周期的异步并行处理:共识、同步、落盘等各个环节的异步化以及并行处理。 1.50 码力 | 1489 页 | 107.09 MB | 1 年前3Greenplum 精粹文集
分布式文件系统,另外一篇 是关于 MapReduce 并行计算框架的理论,分布式计算模式在互联网 行业特别是收索引擎和分词检索等方面获得了巨大成功。 Big Date2.indd 1 16-11-22 下午3:38 2 由此,业界认识到对于海量数据需要一种新的计算模式来支持,这种 模式就是可以支持 Scale-out 横向扩展的分布式并行数据计算技术。 当时,开放的X86服务器技术已经能很好的支持商用,借助高速网络(当 主机,并且成本很低,横向的扩展性还可带来系统良好 的成长性。 问 题 来 了, 在 X86 集 群 上 实 现 自 动 的 并 行 计 算, 无 论 是 后 来 的 MapReduce 计算框架还是 MPP(海量并行处理)计算框架,最终还 是需要软件来实现,Greenplum 正是在这一背景下产生的,借助于分 布式计算思想,Greenplum 实现了基于数据库的分布式数据存储和并 行计算(GoogleMapReduce ——greenplum,因此而得名)召集了十几位业界大咖(据 说来自 google、yahoo、ibm 和 TD),说干就干,花了一年多的时间 完成最初的版本设计和开发,用软件实现了在开放 X86 平台上的分布 式并行计算,不依赖于任何专有硬件,达到的性能却远远超过传统高 昂的专有系统。 Big Date2.indd 2 16-11-22 下午3:38 Greenplum 精粹文集 3 大家都知道0 码力 | 64 页 | 2.73 MB | 1 年前3FISCO BCOS 2.7.2 中文文档
搭建第一个区块链网络 • 开发第一个区块链应用 • 关键概念 • 区块链网络搭建 • 区块链应用开发 • FISCO BCOS Java SDK • 问题排查 • 整体架构 • 共识算法 • 交易并行 • 分布式存储 • 预编译合约 • 更多设计文档 • Github主页 • 深度解析系列文章 • 贡献代码 • 反馈问题 • 应用案例集 • 微信群 、公众号 平 平 平台 台 关系,企业可选择不同群组,形成多个不同账本的数据共享和共识,从而快速丰富业务场景、扩大业务 规模,且大幅简化链的部署和运维成本。 两翼指的是支持并行计算模型和分布式存储,二者为群组架构带来更好的扩展性。前者改变了区块中按 交易顺序串行执行的做法,基于DAG(有向无环图)并行执行交易,大幅提升性能;后者支持企业(节 点)将数据存储在远端分布式系统中,克服了本地化数据存储的诸多限制。 多引擎是一系列功能特性的总 BCOS从提升交易执行效率和并发两个方面优化了交易执行,使得交易处理性 能达到万级以上。 • 基 基 基于 于 于C++的 的 的Precompiled合 合 合约 约 约:区块链底层内置C++语言编写的Precompiled合约,执行效率更高。 • 交 交 交易 易 易并 并 并行 行 行执 执 执行 行 行:基于DAG算法根据交易间互斥关系构建区块内交易执行流,最大化并行执行区块 内的交易。0 码力 | 1422 页 | 91.91 MB | 1 年前3
共 812 条
- 1
- 2
- 3
- 4
- 5
- 6
- 82