我正在寻找在线可用的讲义或其他资源,它们对并行编程有很好的介绍,就像计算机科学中的基础类的并行模拟一样。
我的重点是以下几点:虽然我能够谈论分而治之,贪婪算法,动态编程等,即顺序算法(和问题)的基本模式,但是我没有合适的语言对并行算法中的方法进行分类。
例如,我想获得适当的用语来表达以下事实:对以下每个问题的明显并行处理具有不同的定性行为:
- 将整数数组设置为全零(完美缩放)。
- 对整数数组求和(使用的线程越多,开销越大。)
- 给定一个数组,将每个条目的乘积彼此列出(如果我们将规范的double-for循环并行化,则运行时间将缩放为数字处理器的sqrt。)
共享内存环境就足够了,进程间通信对我而言并不那么重要(实际上,我对完全避免这种情况的算法很感兴趣)。此外,技术方面对我来说是微不足道的。