適用於平行電腦的數值演算法。電腦傳統結構的顯著特徵是單指令流單資料流程,即每一時刻按一條指令處理一個資料。通常的數值演算法適於此類電腦,可稱串列演算法。20世紀60年代開始發展含大量處理機的平行電腦,它分單指令流多資料流程與多指令流多資料流程兩類,每一時刻分別按一條或多條指令處理多個資料。平行電腦的出現促使瞭適應其並行這個特點的平行算法的發展。

  平行算法依賴一個簡單事實:獨立的計算可同時執行。所謂獨立計算是指其每個結果元隻隻出現一次的計算。例如A81·α2……α8中7個乘法不能同時執行,但可分成三個獨立計算組:

  第一組

  第二組

  第三組

如每組的運算並行執行,計算A8,隻須三步(乘法),其步驟可用圖

計算樹 中的雙杈計算樹來表示。推廣此例,得到由滿足結合律的任一運算“。”形成的表達式 的最優並行算法,稱為結合扇入算法。此算法提供瞭建立並行算法的一種普遍原則:反復將每一計算分裂成具有同等復雜性的兩個獨立部份,稱為遞推倍增法。

  研究表明,大量數值問題可獲得有效的並行算法。一個算法是否有效主要看加速

及所需的處理機個數 P的大小。並行算法的復雜性正是通過參數 T pSP來描述的。向量運算具有內在並行性(包含大量獨立計算),因而首先是在數值線代數方面,並行算法特別富有成果。

  串行算法與並行算法存在固有差別。有效串行算法一般不能直接變換為並行算法,而且兩者在數值性態方面(例如數值穩定性及迭代算法的收斂速度)可以彼此大不相同。