一 并行计算概述:
(1)并发、并行、分布式之间的差别(尚无统一意见,比较认同的如下):
*并发计算中,一个程序的多个任务会在同一时段内可以同时执行。
*并行计算中,一个程序通过多个任务紧密协作来解决某个问题。
*分布式计算中,一个程序需要和其它程序协作来解决某个问题。
*并行计算和分布式计算都是并发的,某些程序如多任务操作系统也是并发的,因为即使它运行在单核机器上,多个任务都能在同一个时间里同时执行。
*并行计算和分布式计算之间没有一条明确的分界线。并行程序往往同时在多个核上执行多个任务,这些核在物理上紧密靠近或者通过高速网络相互连接。分布式程序的任务是在多个计算机上执行,这些计算机之间相隔较远并且任务是由独立创建的程序来完成的。
二 怎么编写并行程序?
(1)基本思想:都是将要完成的任务分配给各个核。
1.两种广泛采用的方法:任务并行和数据并行。
*任务并行:将待解决问题所需要执行的各个任务分配到各个核上执行。
*数据并行:将待解决问题所需要处理的数据分配给各个核,每个核在分配到的数据集上执行大致相似的操作。