fbpx

平行運算

Contents

關於課程

現在每台智慧手機和電腦都以有多個處理器為豪,也因此利用平行運算( parallel programming )盡可能發揮設備功能的想法越來越甚囂塵上。 在本課程中,你將學習平行運算的基礎知識,從任務平行到資料平行。 尤其是,你會看到函數式程式設計 ( functional programming ) 中有多少熟悉的想法完美地符合資料平行範例。 我們將由本質開始介紹如何有效地平行處理熟悉的集合運算,然後建構平行集合,即 Scala 標準庫中提供的一個生產就緒的資料平行集合庫 (data parallel collections library)。 在整個過程中,我們將通過幾個動手實例來應用這些概念,這些實例分析真實世界的資料,例如像 k-means clustering 的流行演算法。

學習成果。 在完成本課程時,你將能夠:

  • 了解為什麼要做任務和資料平行運算
  • 以函數風格表達常用演算法並以平行運算解決
  • 有能力做平行運算程式碼的微基準( microbenchmark )
  • 編寫有效使用平行集合達成高效能的程式

建議背景

到官方網站了解本課程與上課

製作方  

ecole.png École Polytechnique Fédérale de Lausanne

洛桑聯邦理工學院 (EPFL) 是一個位於瑞士洛桑的研究機構和大學,專精自然科學和工程學。它是瑞士聯邦兩大兩大技術學院之一,它有三個主要使命:國際最高等級的教育、研究和技術轉讓。

EPFL 被廣泛認為是世界一流的大學。在2017/2018 QS 世界大學排名位列世界上所有領域排名第12,而 名 Times 高等教育世界大學排名 EPFL被列為世界上第11個最好的工程與技術學院。

EPFL位於瑞士的法語區 ; 瑞士德語區的姐妹機構是蘇黎世的瑞士聯邦理工學院(ETH Zurich)。與幾個專業研究機構相關聯,這兩所大學組成了瑞士聯邦技術研究所(ETH Domain),該研究所直接隸屬聯邦經濟事務,教育和研究部。關聯其研究和教學活動,EPFL 運作一個核反應堆CROCUS一個Tokamak Fusion反應器,一個 Blue Gene / Q超級計算機和 P3 bio-hazard 設施。 (源自維基百科)

viktor
aleksandar
info.png

第 1 週  Parallel Programming

說明採用平行運算的好處,並介紹用 JVM 和 Scala 建構平行運算程式的基本構造。 用範例如陣列規範 ( array norm) 和蒙地卡羅 ( Monte Carlo ) 計算等例子說明了這些概念。 我們展示如何估算平行運算的工作和深度以及如何對實現進行基準 ( benchmark ) 測試。


第 2 週  Basic Task Parallel Algorithms

我們通過展示平行合併排序( parallel merge sort )來繼續之前的平行演算法的範例。 然後我們解釋如何可以平行計算諸如地圖 ( map )、縮減 ( reduce )和掃描 ( scan ) 等運作。 我們將關聯性( associativity )作為使平行執行縮減和掃描的關鍵條件。


第 3 週  Data-Parallelism

我們展示了資料平行運算如何支持在 Scala 中開發優雅的資料平行程式碼。 我們概述平行集合層次結構,包括分離器 ( splitters ) 和組合器 ( combiners ) 的特性,他們由循序案例 ( sequential case ) 補充迭代 ( iterators ) 和建構 ( builders )。


第 4 週  Data Structures for Parallel Computing

我們可以看到平行運算資料結構的內部結構,這有助於我們理解平行集合下發生的情況。


到官方網站了解本課程與上課

Sponsored by Coursera

你可能會有興趣

 歡迎使用 App / Email | Telegram 訂閱 網站更新

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

Powered by WordPress.com.

Up ↑

%d 位部落客按了讚: