算法(Algorithm)是解题方法的精确描述,是一组有穷的规则,它们规定了解决某一特定问题的一系列运算。

  并行算法(Parallel Algorithm)是一些可同时执行的多个进程的集合,这些进程相互作用和协调工作,从而达到对给定问题的求解。从不同的角度,并行算法可以分为不同的类别:数值并行算法和非数值并行算法;同步的、异步的和分布式的并行算法;共享存储的和分布存储的并行算法;确定的和随机的并行算法等。

  数值计算(Numerical Computing)是指基于代数关系运算的一类诸如矩阵计算、多项式求值、求解线性方程组等数字计算问题。求解数值计算问题的算法称为数值算法(Numerical Algorithm)。

  非数值计算(Non-numerical Computing)是指基于比较关系运算的一类计算问题,比如排序、选择、搜索和匹配等符号处理问题。求解非数值计算问题的算法称为非数值算法(Non-numerical Algorithm)。

  同步算法(Synchronized Algorithm)是指算法的各个进程的执行必须相互等待的一类算法。

  异步算法(Asynchronized Algorithm)是指算法的各个进程的执行不必相互等待的一类算法。

  分布算法(Distributed Algorithm)是指由通信链路连接的多个节点协同完成问题求解的一类算法。

  确定性算法(Deterministic Algorithm)是指算法的每一步都能明确的指明下一步的动作的一类算法。

  随机算法(Randomized Algorithm)是指算法的每一步都随机的从指定范围内选取若干参数,由此确定算法的下一动作的一类算法。

  同步(Synchronization)是在时间上强制使一组执行中的进程在某一点相互等待。在并行算法的各进程异步执行过程中,为了确保各处理器的正确工作顺序以及对共享资源的正确访问(资源的互斥访问),程序员需要在算法中恰当的位置设置同步点。同步可以用软件、硬件或固件的方法来实现。

  通信(Communication)是多个并发执行的进程在空间上进行数据交换。