008-【CMU15-418】【并行计算架构和编程】【中英字幕】【Localit

1. 本课程将讨论并行计算中的通信和成本问题。
2. 并行计算有多种形式,包括共享内存并行、消息传递并行和GPU并行。
3. 在进行问题分解时,可以采用静态分区或动态分区的方法。
4. 通信模式可以使用阻塞发送或非阻塞发送。
5. 在系统设计中,通常更容易提高吞吐量而不是降低延迟。
6. 在计算机系统中,通过将计算任务分解为多个阶段,并动态地将这些阶段映射到不同的资源上,可以提高系统的吞吐量。
7. 通信系统中最慢的部分通常是通信协议的瓶颈,通过设置管道,可以提高带宽并利用系统中的资源。
8. 在计算任务中,通信的开销可以通过增加计算的强度来减少,即减少通信与计算的比例。
9. 在并行计算中,通过最大化计算操作的局部性,可以减少数据移动的开销。
10. 在计算系统中,缓存的设计和数据的布局对通信的效率有重要影响,不合理的数据布局会导致额外的通信开销。
11. 在计算机系统中,缓存的大小和布局会影响缓存命中率和缓存驱逐的效果。
12. 通信缺失是指由于系统中的通信需求而导致的额外通信开销。
13. 在高性能计算中,提高算术强度可以通过优化计算的局部性和合并循环来实现。
14. 内存布局和数据划分的方式可以影响缓存的利用率和通信开销。
15. 在并行计算中,资源争用和热点问题会限制系统的性能,需要通过分散资源和避免热点来提高性能。
16. 在计算机科学中,我们经常面临着任务分配不均衡的问题,特别是在处理不均匀分布的计算任务时。一个常见的问题是如何确定每个单元格中包含哪些粒子或圆圈,以便进行计算。
17. 传统的顺序方法是为每个单元格维护一个列表,并将相应的粒子或圆圈添加到适当的列表中。但这种方法效率低下且不适合并行计算。
18. 另一种方法是并行化粒子或圆圈的计算,然后使用原子操作将它们插入到相应的列表中。这种方法虽然工作效率高,但会导致资源争用和性能下降。
19. 为了避免资源争用,常见的做法是将问题分解为多个子问题,并在每个处理器上创建本地副本,然后将这些副本合并在一起。
20. 通过将计算和通信保持在本地,并使用高级抽象的并行操作,可以避免使用原子操作和资源争用,从而提高性能。