模板类之智能指针

智能指针

1. 定义

行为类似于指针的类对象,但还有其他功能。

智能指针能够帮助管理动态内存分配

要创建智能指针对象,必须包含头文件 memory

有三类:auto_ptr , unique_ptr , shared_ptr 。其中 auto_ptr 已经被 C++11 摒弃。

阅读更多

cuda6

SCAN

前缀和

image-20210608013044014

阅读更多

cuda5

直方图

parallel histogram

A simple parallel histogram algorithm

阅读更多

cuda4

性能

Warps and SIMD

一个线程 block 由 32 个线程 warp 组成
扭曲在多处理器上以物理方式并行执行 (SIMD)

Warp 是调度单位

阅读更多

cuda3

内存和数据局部性

示例 – 矩阵乘法

image-20210607204333797
阅读更多

cuda2

多维内核

多维内核配置

示例

image-20210607161352581(C:\Users\Aerialith\AppData\Roaming\Typora\typora-user-images\image-20210607161352581.png

处理 2D 网格的图片

C/C++ 中的行优先布局

阅读更多

分布式chap-7

弗洛伊德算法

大纲

  • 全对最短路径问题
  • 动态二维数组
  • 并行算法设计
  • 点对点通信
  • 块行矩阵 I/O
  • 分析和基准测试
阅读更多

分布式chap-6

埃拉托斯特尼筛法

串行算法

  1. 列出 2 以后的所有序列:
    • 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
  2. 标出序列中的第一个质数,也就是 2,序列变成:
    • 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
  3. 将剩下序列中,划摽 2 的倍数(用红色标出),序列变成:
    • 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
  4. 如果现在这个序列中最大数小于等于最后一个标出的素数的平方,那么剩下的序列中所有的数都是质数,否则回到第二步。

时间复杂度:(nlnlnn)

阅读更多

分布式chap-5

消息传递编程

进程

  • 启动时指定数量
  • 在整个程序执行过程中保持不变
  • 都执行相同的程序
  • 每个都有唯一的 ID 号
  • 交替执行计算和通信
阅读更多

分布式chap-4

第四章 性能

指标(加速比和效率)

  • 运行时间(执行时间)
  • 加速
  • 效率
  • 可扩展性
  • 便携性、编程能力等等
阅读更多