過易並行

並行計算中,過易並行(embarrassingly parallel,也稱作embarrassingly parallelizable、完美並行perfectly parallel、delightfully parallel、pleasingly parallel)是指(幾乎)不需要努力就能拆分成若干並行任務的問題。[1]這是因為,並行任務之間的通信或結果的相互依賴(幾乎)為零。[2]

這些問題與分佈式計算問題不同,後者需要任務間的通信,尤其是中間結果的通信。過易並行問題更容易在缺乏超級計算機集群所需的特殊設施的伺服器集群執行,非常適合基於互聯網的志願計算平台,如BOINC等,且受並行減速影響較小。同過易並行相反的是本質上無法並行化的連貫串行問題。

過易並行問題的常見例子如GPU處理的3D視頻渲染,每幀(前向法)或像素(光線追蹤法)都可單獨處理,沒有任何相互依賴關係。[3]某些形式的密碼破解也過易並行的,很容易分佈在CPU多核處理器或集群中。

詞源

英語中,過易並行稱作「embarrassingly parallel」,即「令人尷尬的並行」。「Embarrassingly,令人尷尬」這裏是指處理起來「容易得尷尬」。[4]這個詞契合了很多開發者或編譯器的尷尬:很多重要問題因其固有的計算複雜性而未得到解決,不開發多項式同倫延拓法的並行實現將是令人尷尬的。[5]MATLAB的創立者克里夫·莫勒爾1986年譯本關於多處理器的書中最早出現了這個詞,[6]莫勒爾自稱是此術語的發明者。[7]

為迴避「embarrassing,尷尬」的負面含義,也有人用「pleasingly/perfectly parallel,令人愉悅/完美的並行」稱呼之。[8]

例子

過易並行問題的例子有

實現

  • R語言 – 工作站簡單網絡(SNOW)包實現了一種簡單機制,可使用一組工作站或貝奧武夫機群進行過易並行問題的並行計算。[16]類似的R包還有「future」「parallel」等。

另見

參考文獻

  1. ^ Herlihy, Maurice; Shavit, Nir. The Art of Multiprocessor Programming, Revised Reprint revised. Elsevier. 2012: 14 [28 February 2016]. ISBN 9780123977953. Some computational problems are 「embarrassingly parallel」: they can easily be divided into components that can be executed concurrently. 
  2. ^ Section 1.4.4 of: Foster, Ian. Designing and Building Parallel Programs. Addison–Wesley. 1995. ISBN 9780201575941. (原始內容存檔於2011-03-01). 
  3. ^ Alan Chalmers; Erik Reinhard; Tim Davis. Practical Parallel Rendering. CRC Press. 21 March 2011. ISBN 978-1-4398-6380-0. 
  4. ^ Matloff, Norman (2011). The Art of R Programming: A Tour of Statistical Software Design, p.347. No Starch. ISBN 9781593274108.
  5. ^ Leykin, Anton; Verschelde, Jan; Zhuang, Yan. Parallel Homotopy Algorithms to Solve Polynomial Systems. Mathematical Software - ICMS 2006. Lecture Notes in Computer Science 4151. 2006: 225–234. ISBN 978-3-540-38084-9. doi:10.1007/11832225_22. 
  6. ^ Moler, Cleve. Matrix Computation on Distributed Memory Multiprocessors. Heath, Michael T. (編). Hypercube Multiprocessors. Society for Industrial and Applied Mathematics, Philadelphia. 1986. ISBN 978-0898712094. 
  7. ^ The Intel hypercube part 2 reposted on Cleve's Corner blog on The MathWorks website
  8. ^ Kepner, Jeremy (2009). Parallel MATLAB for Multicore and Multinode Computers, p.12. SIAM. ISBN 9780898716733.
  9. ^ Erricos John Kontoghiorghes. Handbook of Parallel Computing and Statistics. CRC Press. 2005-11-21. ISBN 978-1-4200-2868-3. 
  10. ^ Yuefan Deng. Applied Parallel Computing. World Scientific. 2013. ISBN 978-981-4307-60-4. 
  11. ^ Josefsson, Simon; Percival, Colin. The scrypt Password-Based Key Derivation Function. tools.ietf.org. August 2016 [2016-12-12]. doi:10.17487/RFC7914. 
  12. ^ Mathog, DR. Parallel BLAST on split databases.. Bioinformatics. 22 September 2003, 19 (14): 1865–6. PMID 14512366. doi:10.1093/bioinformatics/btg250 . 
  13. ^ How we made our face recognizer 25 times faster (developer blog post)
  14. ^ Shigeyoshi Tsutsui; Pierre Collet. Massively Parallel Evolutionary Computation on GPGPUs. Springer Science & Business Media. 2013-12-05. ISBN 978-3-642-37959-8. 
  15. ^ Youssef Hamadi; Lakhdar Sais. Handbook of Parallel Constraint Reasoning. Springer. 2018-04-05. ISBN 978-3-319-63516-3. 
  16. ^ Simple Network of Workstations (SNOW) package

外部連結