现代C++ 教程:高速上手C++11/14/17/20is_lock_free() << std::endl; return 0; } 一致性模型 并行执行的多个线程,从某种宏观层面上讨论,可以粗略的视为一种分布式系统。在分布式系统中, 任何通信乃至本地操作都需要消耗一定时间,甚至出现不可靠的通信。 如果我们强行将一个变量 v 在多个线程之间的操作设为原子操作,即任何一个线程在操作完 v 后, 其他线程均能同步感知到 v 的变化,则对于变量 v 而言,表现为顺序执行的程序,它并没有由于引入多 而言,表现为顺序执行的程序,它并没有由于引入多 线程而得到任何效率上的收益。对此有什么办法能够适当的加速呢?答案便是削弱原子操作的在进程间 的同步条件。 从原理上看,每个线程可以对应为一个集群节点,而线程间的通信也几乎等价于集群节点间的通信。 削弱进程间的同步条件,通常我们会考虑四种不同的一致性模型: 1. 线性一致性:又称强一致性或原子一致性。它要求任何一次读操作都能读到某个数据的最近一次写 的数据,并且所有线程的操作顺序与全局时钟下的顺序是一致的。0 码力 | 83 页 | 2.42 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化注意到一个现象:写入花的时间似乎是读取的 2 倍? • 而且写入的同时读取,和单单写入的时间是一样的? • 似乎写入一个数组的同时也会读取这个数组,造成两倍带宽 ? 写入的粒度太小造成不必要的读取 • 这是因为缓存和内存通信的最小单位是缓存行: 64 字节。 • 当 CPU 试图写入 4 字节时,因为剩下的 60 字节没有改变,缓存不知道 CPU 接下来会不会用到那 60 字节,因此他只好从内存读取完整的 64 字节,修改其中的 com/2015/10/morton-ordering/ 第 9 章:多核下的缓存 伪共享( false sharing ) • 需要注意,如果多个核心同时访问的地址非常接 近,这时候会变得很慢! • 这是因为 CPU 之间通信的最小单位也是 缓存行 ( 64 字节),如果两个核心访问到了的同一缓存 行,假设一个核心修改了该缓存行的前 32 字节, 另一个修改了后 32 字节,同时写回的话,结果要 么是只有前 320 码力 | 147 页 | 18.88 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 08 CUDA 开启的 GPU 编程__global__ 修饰的就是核函数。 没有反应?同步一下! • 然而如果直接编译运行刚刚那段代码,是不会打印出 Hello, world! 的。 • 这是因为 GPU 和 CPU 之间的通信,为了高效,是异 步的。也就是 CPU 调用 kernel<<<1, 1>>>() 后,并不 会立即在 GPU 上执行完毕,再返回。实际上只是把 kernel 这个任务推送到 GPU 的执行队列上,然后立即0 码力 | 142 页 | 13.52 MB | 1 年前3
Hello 算法 1.0.0b4 C++版224/256/384/512 bits 哈希冲 突 较多 较多 很少 很少 安全等 级 低,已被成功攻击 低,已被成功 攻击 高 高 应用 已被弃用,仍用于数据完整 性检查 已被弃用 加密货币交易验证、数字 签名等 可用于替代 SHA‑2 6. 散列表 hello‑algo.com 110 6.3.4. 数据结构的哈希值 我们知道,哈希表的 key 可以是整数、小数或字符串0 码力 | 343 页 | 27.39 MB | 1 年前3
Hello 算法 1.1.0 C++ 版224/256/384/512 bit 哈希冲 突 较多 较多 很少 很少 安全等 级 低,已被成功攻击 低,已被成功攻 击 高 高 应用 已被弃用,仍用于数据完整性检 查 已被弃用 加密货币交易验证、数字签名 等 可用于替代 SHA‑2 6.3.4 数据结构的哈希值 我们知道,哈希表的 key 可以是整数、小数或字符串等数据类型。编程语言通常会为这些数据类型提供内置 的哈希算法,用于计算哈希表中的桶索引。以0 码力 | 379 页 | 18.47 MB | 1 年前3
Hello 算法 1.0.0b5 C++版224/256/384/512 bits 哈希冲 突 较多 较多 很少 很少 安全等 级 低,已被成功攻击 低,已被成功 攻击 高 高 应用 已被弃用,仍用于数据完整 性检查 已被弃用 加密货币交易验证、数字 签名等 可用于替代 SHA‑2 6.3.4 数据结构的哈希值 我们知道,哈希表的 key 可以是整数、小数或字符串等数据类型。编程语言通常会为这些数据类型提供内置 的哈希算法,用于计算哈希表中的桶索引。以0 码力 | 377 页 | 30.69 MB | 1 年前3
Hello 算法 1.0.0 C++版224/256/384/512 bit 哈希冲 突 较多 较多 很少 很少 安全等 级 低,已被成功攻击 低,已被成功攻 击 高 高 应用 已被弃用,仍用于数据完整性检 查 已被弃用 加密货币交易验证、数字签名 等 可用于替代 SHA‑2 6.3.4 数据结构的哈希值 我们知道,哈希表的 key 可以是整数、小数或字符串等数据类型。编程语言通常会为这些数据类型提供内置 的哈希算法,用于计算哈希表中的桶索引。以0 码力 | 378 页 | 17.59 MB | 1 年前3
Hello 算法 1.2.0 简体中文 C++ 版224/256/384/512 bit 哈希冲 突 较多 较多 很少 很少 安全等 级 低,已被成功攻击 低,已被成功攻 击 高 高 应用 已被弃用,仍用于数据完整性检 查 已被弃用 加密货币交易验证、数字签名 等 可用于替代 SHA‑2 6.3.4 数据结构的哈希值 我们知道,哈希表的 key 可以是整数、小数或字符串等数据类型。编程语言通常会为这些数据类型提供内置 的哈希算法,用于计算哈希表中的桶索引。以0 码力 | 379 页 | 18.48 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 C++ 版224/256/384/512 bit 雜湊衝 突 較多 較多 很少 很少 安全等 級 低,已被成功攻擊 低,已被成功攻 擊 高 高 應用 已被棄用,仍用於資料完整性檢 查 已被棄用 加密貨幣交易驗證、數字簽名 等 可用於替代 SHA‑2 6.3.4 資料結構的雜湊值 我們知道,雜湊表的 key 可以是整數、小數或字串等資料型別。程式語言通常會為這些資料型別提供內建的 雜湊演算法,用於計算雜湊表中的桶索引。以0 码力 | 379 页 | 18.79 MB | 10 月前3
《深入浅出MFC》2/e美国dengqi@glocom-us.com 侯俊杰先生:您好!从学校出来的七年间,我大多从事embedded system software 的设计。 在大陆,主要从事交换机系统软件的设计,到了美国,主要从事卫星通信地面站系统软件的 设计。程序设计主要结合C 和Assembly。在大陆,embedded system 多采用Intel 的 processor,在美国,embedded system 多采用Motorola0 码力 | 1009 页 | 11.08 MB | 1 年前3
共 10 条
- 1













