Cai*_*ian 3 c++ memory cpu performance multithreading
我正在 C/C++ 上实现 am 算法来处理一些向量,我认为使它并行可能是一个好主意,因为我正在使用多核 CPU。我对 GPGPU 有一些经验,内存访问不好会破坏整个性能,我是否还需要考虑 CPU 内核之间的任何特殊访问布局?
谢谢
使用多处理器设置可能会遇到许多与内存相关的问题,其中一些问题会减慢应用程序的速度。
您需要大致了解您的机器上的缓存行大小并尝试两件事:
(以上两条规则也适用于数据页,如果您正在处理必须分页的大型数据结构。)
在可能的情况下,为每个线程设置单独的工作数据结构(尤其是堆),而不是共享数据。特别要注意有一个所有线程都更新的公共计数器,并且(显然)避免锁和信号量,除非在您绝对需要同步线程的关键时刻。
| 归档时间: |
|
| 查看次数: |
1094 次 |
| 最近记录: |