C++高性能并行编程与优化 - 课件 - 10 从稀疏数据结构到量化数据类型unordered_map 手动 read(i, j) 也一样速度 索性把坐标和值打包成 tuple ,存储在 vector 按行压缩( Compressed Row Storage ) http://www.netlib.org/linalg/html_templates/node91.html 按行压缩( Compressed Row Storage ) http://www.netlib.org/linal 的访问者缓存,而且超快不需要用户自己写。 • 垃圾回收可用 madvice 提前释放一段页面。 • 除此之外, mmap 还有一个好处,他会保证其内存(被读 取访问时)是零初始化的。 配合莫顿分块, AOSOA 等第七课的技术,就得到 SPGrid(sparse-paged grid) SPGrid 还支持自适应的网格 SPGrid 的利弊 • 优点:平坦直观,适合插桩,顺序访问,自适应网格 。 • 缺点:尺寸受限,操作系统挂钩,依赖 今天的回家作业 • 用稀疏数据结构改良康威生命游戏 (conway’s game of life) 的代码。 • 要求:自动扩展边界,按需分配内存,垃圾回收及时释放全零的块,用量化的 bit 压缩空 间,使用 omp 或 tbb 并行,用 accessor 缓存坐标以减轻锁的压力。 • 评分规则:加速了多少倍就是多少分。 感谢观看! by 彭于斌( github@archibate )0 码力 | 102 页 | 9.50 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 09 CUDA C++ 流体仿真实战没有冲突,写入完毕后对调 clrNext 和 clr 。 投影部分 投影部分 • 我们要模拟的流体是不可压缩的,因此有着无散度的特点: div v = 0 • 上式对时间求导,即 d(div v)/dt = div dv/dt = 0 ;带入 dv/dt = -p 得 div grad p = 0 。 • 因此为了模拟不可压缩流我们要求保证 p 满足 div grad p = 0 ? • 不妨假设现在 div div v ≠ 0 ,然后想办法如何通过修正压强来消除他,即让 div grad p = -div v 。 • 因此为了模拟不可压缩流我们要求解压强的泊松方程!泊松方程的右边就是负的速度散度 。 投影部分:求速度的散度 • 第一步,如何求出速度场的散度呢?首先速度是一个矢量场,为了 CUDA 对齐方便我们用 了 float4 表示三维矢量,因此速度场在 CUDA 看来就是一个元素类型为 float4 • 当然, jacobi 迭代因为需要写入 pre 的同时读取 pre ,所以也要用双缓冲。 投影部分:计算未消除的散度 为了评估效果的好坏,额外加一个计算散度方差的核函数,看看是不是无散度(不可压缩流)了。 多重网格法 投影部分:多重网格实现 投影部分:红黑高斯 投影部分:计算残差 投影部分:缩小一倍 投影部分:清零数组 投影部分:扩大一倍 创建与导出 主函数:创建场景 导出0 码力 | 58 页 | 14.90 MB | 1 年前3
谈谈MYSQL那点事进行索引 • 使用三个文件定义一个表: 使用三个文件定义一个表: .MYI .MYD .frm .MYI .MYD .frm • 少碎片、支持大文件、能够进行索引压缩 少碎片、支持大文件、能够进行索引压缩 • 二进制层次的文件可以移植 二进制层次的文件可以移植 (Linux (Linux Windows) Windows) • 访问速度飞快,是所有 访问速度飞快,是所有0 码力 | 38 页 | 2.04 MB | 1 年前3
新一代分布式高性能图数据库的构建 - 沈游人新一代分布式高性能图数据库的构建 北京海致星图科技有限公司 2023-06-18 沈游人 数据库与大数据专场 海致简介—企业级知识图谱开创者 专业顶尖技术团队支撑 超 700 人团队,其中 80% 为技术人员,创始团队在完成全球第一个中文知 识图谱网站研发后,探索知识图谱技术在企业领域的应用。 2021 年,海致院 士专家工作站成立,站内清华大学计算机博士生占比达 90% 以上。 企业级数据解决方案专家 海致专注为政府、金融、能源等客户提供大数据处理、分析、挖掘服务,在互 联网技术基础上,打造专业、易用的企业级大数据实战应用产品及解决方案。 北京中关村总部 武汉运维中心 深圳研发中心 上海应用中心 专注于数据智能技术赋能中国数字经济发展 海致高性能图计算院士专家工作站 郑纬民 - 海致科技首席科学家 中国工程院院士、清华大学计算机科学与技术系教 授、中国计算机学会前理事长,中国计算机系统结构 的学 的学科带头人,我国高性能计算和存储系统等方面的 泰斗和先行者。 2021 年 3 月 25 日,海致科技与清华大学计算机科学与技术系共同建设高性能图计算院士专家工作站 。 高性能图计算是高性能计算、图计算两项技术融合产生的新的技术方向,满足人们对更大规模、更复 杂数据的实时处理和存储需求,是计算机领域竞争新战略制高点。 产学结合、协同创新,打造全球领先的国产自研图数据库 AtlasGraph0 码力 | 38 页 | 24.68 MB | 1 年前3
Zadig 面向开发者的云原生 DevOps 平台面向开发者的云原生 DevOps 平台 角色: 产品 / 架构 开发 测试 运维 运维 / 开发 技术支持 事件 需求设计 架构设计 拆任务、写代码 代码集成 xN 单元测试验证 xN 代码扫描 xN 自测、联调 xN 集成验证 xN 写测试用例 系统验证 xN 自动化测试 xN 性能测试 xN 安全测试 xN 数据变更 xN 贡献者流程建立 开 放 社 区 搭 建 2021 年 5 月 2021 年 7 月 2021 年 9 月 2021 年 11 月 2021 年 12 月 1 个月功能改造 90% 功能实现开源 技术社区雏形搭建 2022 年 3 月 生态伙伴工具 + Zadig Zadig 企业交付案例场景深化 开 发 者 场 景 挖 掘 3-5 个领域敏感型场景 建立产品发展委员会 贡献者流程优化 + 云上环境,高效验证调试 安全发布有信心: 一个平台完成日常 90% 工作,开发自助发布 需求研发总耗时降低 30% 需求迭代周期缩短 1-5 倍 解放开发,专注编码 更多的架构和技术提升 测试 效率和质量难以平衡: • 自动化测试难以开展 • 环境不稳定并行验证效率低 • 测试多苦劳,价值难以体现 测试效果提升:独立稳定环境用于测试验收、自动化建设 价值被团队感知:自动化测试从开发到发布被全团队感知0 码力 | 59 页 | 81.43 MB | 1 年前3
Zadig 产品使用手册台 。 领先企业抢先实践 Zadig Zadig 研发数字化转型方案正成为产业数字化战略的核心环节 Zadig 设计思路:通过「平台工程」解决流程挑战,通过「技术升级」提升组织效能 01 04 02 03 工程化协同:“人、技术、流 程、工具” 四维协同基线,沉 淀全流程数据,从感知到赋 能,服务于工程师 释放云基建能力:链接任何云 及自建资源(容器、主机、车 机、端等),释放云原生价值 KubeSphere KubeVela 面向资源管理的运维工具集 面向开发者,需结合 CI/CD 工具额外 搭建全流程能力 专门面向开发者的生产力平台,涵盖需求到开 发,测试,运维的云原生一体化技术底座支撑 云厂商 DevOps 平台 华为云 DevCloud 阿里云效 腾讯 CODING 云厂商引流为主,锁定风险高 对多云跨地域支持不够 实施负担较重难以推广 面向多云友好,厂商中立,全球多地跨云跨域 企业自建 DevOps 流程平台 围绕 Jenkins 或 CI/CD 工具 搭建流程串接胶水平台 局限性大扩展性差 内部推广难度极高 做完后价值难被证明 通用性、可扩展性、技术先进性强,可以灵活 广泛接入各种技术和业务场景 基于代码管理的 DevOps 方案 Gitee 平台 GitLab 平台 局限性大、全流程安全性低 维护成本高 支持多个服务并行构建部署、产品级发布,可 灵活安全接入多个代码仓及周边工具链0 码力 | 52 页 | 22.95 MB | 1 年前3
Rust分布式账务系统 - 胡宇磨刀霍霍 – 技术选型 心路历程 ● 对新技术持开放态度 ● Kotlin :简洁, JVM, GC ● Rust 引入 Linux 内核 ● Android 支持 Rust ● 积极探索新技术对金融科技的改变 ● 对于核心领域系统,追求极致性能,使用 Rust Airwallex 业界 共识 厉兵秣马 - 人才培养 Rust 的吸引力 ● 更加容易吸引对技术有追求的人才 更加容易吸引对技术有追求的人才 Rust 学习曲线 ● Java 背景, C++ 背景的同事 ● 学习《 rust 程序设计》 ● 1-3 月可以熟练转型使用 Rust Rust 与原有技术栈的融合 ● Kotlin : 偏业务,适合快速迭代 ● Rust :偏基础架构,适合精心打磨 ● gRPC :跨语言跨平台通讯 心路历程 真刀实枪 – 开发调试部署 IDE JetBrains + Rust 插件0 码力 | 27 页 | 12.60 MB | 1 年前3
Rust与算法 - 谢波Rust 缺少学习资源 Rust 未来大有可为 Rust 在操作系统,数据库,各种框架和工具上应用范围 广 写作动机 当情况不明时,抱着一个纯粹的目标干事就行了,其他 的留给时间检验。不懂就学,技术写作更像一种共创, 要反复总结和修改 ( 费曼学习法 ) 。 写作本书给我的启示 基础、排序、查找、树、图 代码框、颜色、图片绘制均由 Latex 完成 可参考点 为什么 为什么讲这个话题? 总结及学习资源 Rust 算法总结 • 复杂度分析及算法优化 • 别自己实现,用标准库 • 利用 Rust 特性实现高效算法 • 技术在进步,用新工具辅助学习 Rust 学习资源 # 社区/公众号 社区: Rust 语言中文社区、乐酷 Rust 技术论坛 公号:觉学社、 Rust 编程指北 # 书籍 《编程之道》、《 Rust 权威指南》、《 Rust 实战》、《深入浅出 Rust0 码力 | 28 页 | 3.52 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - Zeno 中的现代 C++ 最佳实践 m_inner.end()) 之类的任意表达式,只要语义上通过,就可以实例化。 • (把 sort 封装成虚函数,留作回家作业) Zeno 中对 OpenVDB 的类型擦除 • 结合类型擦除技术,自动虚克隆技术。 • VDBGrid 作为所有网格类的基类提供各个 操作做为虚函数, VDBGridWrapper 则是 那个实现了擦除的包装类。 Zeno 节点系统 • 节点在 Zeno 中所0 码力 | 54 页 | 3.94 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 08 CUDA 开启的 GPU 编程cudaMemcpy 会自动进行同步操作 ,即和 cudaDeviceSynchronize() 等价! 因此前面的 cudaDeviceSynchronize() 实 际上可以删掉了。 统一内存地址技术( Unified Memory ) • 还有一种在比较新的显卡上支持的特性, 那就是统一内存 (managed) ,只需把 cudaMalloc 换成 cudaMallocManaged 以切换到另一个线程继续执行计算任务,等这个线程陷入内存等 待时,原来那个线程说不定就好了呢?(记得上节课说过内存延 迟是阻碍 CPU 性能提升的一大瓶颈, GPU 也是如此。 CPU 解决方案是超线程技术,一个物理核提供两个逻辑核,当一个逻 辑核陷入内存等待时切换到另一个逻辑核上执行,避免空 转。 GPU 的解决方法就是单个 SM 执行很多个线程,然后在遇 到内存等待时,就自动切换到另一个线程)0 码力 | 142 页 | 13.52 MB | 1 年前3
共 23 条
- 1
- 2
- 3













