Rust 异步并发框架在移动端的应用 - 陈明煜Fusion of IO/CPU intensive IO & CPU 融合 Fusion of IO/CPU intensive 南向调度融合:异步并行迭代器 将数据容器内的数据进行递归二分,对左 半和右半分别生成一个异步任务。最终对 单个数据执行用户业务逻辑 IO & CPU 融合 南向调度融合 IO & CPU 通过设置不同优先级,进 入不同线程池调度 线程池根据负载监控(任务平均等待0 码力 | 25 页 | 1.64 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 16 现代 CMake 模块化项目管理指南实际上是:根 /biology/include 。 • 注意我们用了 PUBLIC 修饰符,这是为了让链接 biology 的 pybmain 也能够共享 根 /biology/include 这个头文件搜 索路径。 五、子项目的源文件 • 这里我们给 biology 批量添加了 src/*.cpp 下的全部源码文 件。 • 明明只有 *.cpp 需要编译,为什么还添加了 include/*.h Find 文件会在 CMake 安装时负责安装到 /usr/share/cmake/Modules 。 • 包搜索文件可以在不知道包具体位置信息的情况下搜索他们(在 /usr/lib 等默认路径搜 索)。 • 这些都是 CMake 自带的包搜索文件: • /usr/share/cmake/Modules/FindCUDAToolkit.cmake • /usr/share/cmake/Modules/FindPython 那么如果有个不太热门的第三方库没提供包配置文件, CMake 也没提供包搜索文件,我 们该如何找到他?这就需要自己提供包搜索文件了!别担心,你不用自己写, GitHub 上 有很多志士仁人已经写过了对应的包搜索文件,你搜一下 FindXXX.cmake 就能找到了。 举例: FindJemalloc.cmake 举例: FindJemalloc.cmake • 虽然 Config 文件通常风格比较统一,都是0 码力 | 56 页 | 6.87 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 14 C++ 标准库系列课 - 你所不知道的 set 容器,里面的元素都是完全随机 的顺序,和插入的顺序也不 一样。虽然你可能注意到这 里的刚好和插入的顺序相反 ?巧合而已,具体怎么顺序 是和 glibc 实现有关的。 • set 基于红黑树实现,相当 于二分查找 树, unordered_set 基于散 列哈希表实现,正是哈希函 数导致了随机的顺序。 不同版本的 set 容器比较 类型 去重 有序 查找 插入 vector × × O(n) O(1)0 码力 | 83 页 | 10.23 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 17 由浅入深学习 map 容器map 的元素类型是…… • pair。 • 可是为什么要用 const K 呢?上节课说了, set 里面的 K 不能改变!一旦改变就会破坏 好不容易排好的顺序,以后再用二分法 find 就找不准了,所以 set 实际上只有 const_iterator 。 • 但是 map 只针对 K 进行排序, V 又不参与排序,完全可以随意改变。因此 C++ 之父 允许 map 0 码力 | 90 页 | 8.76 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 08 CUDA 开启的 GPU 编程继续锐评黄某勋 • 感兴趣的扣 1 • OpenMP 新特性( parallel for 之外的) • SIMD 指令全解析( mm 开头那堆) • 内存与缓存优化进阶(第七课的延伸) • 二分查找法优化案例(针对缓存行的) • eigen 、 glm 、 vectorclass 等常用库(可能) • CPU 红黑高斯 + 多重网格实战 • 继续锐评因特尔 • 感兴趣的扣 20 码力 | 142 页 | 13.52 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理右值引用 && 10. std::shared_ptr和 std::any • 只提供了关键字,详细信息请善用搜索引擎: bing.com 。(不要用 baidu.com ,那个是搜广告用的) • 如果感兴趣,我可以增添一节专门讲动态多态。 回家作业! • 已经发布到: https://github.com/parallel101/hw02 • 仓库的 README.md 0 码力 | 96 页 | 16.28 MB | 1 年前3
共 6 条
- 1













