比閃電還快!在排序網路( Sorting networks )上賽跑,秒懂超級電腦的平行運算

我們都知道電腦很快,但你知道電腦變快的秘訣是什麼嗎? 以前的電腦像是一個廚師只有一個爐子,煮完湯才能炒菜(這叫序列處理)。 現在的超級電腦,像是有幾千個廚師同時在切菜、煮飯(這叫平行處理)。 今天要帶孩子到戶外,用粉筆畫出一個「排序網路 (Sorting Network)」,讓他們化身為數據賽車,體驗不需要指揮官,只要跟著線走,就能自動排好順序的神奇魔法!

第一階段:一個人的極限

首先,我們先體驗一下「只有一個大腦」的感覺。

  1. 任務設定:
    • 找 6 位孩子(或是用玩偶代表),每人發一張隨機數字卡。
    • 規則: 「我是唯一的電腦 CPU。現在你們要排隊,但你們不能自己動,只能聽我指揮。」
  2. 序列處理:
    • 老師/家長開始指揮:「3 號你去第一位… 5 號你跟 2 號交換…」
    • 觀察: 當家長在指揮甲的時候,乙丙丁都在發呆等待。
    • 提問: 「你們有沒有發現,大部分的時間你們都在『等』?如果我要排 100 個人,最後那個人是不是會等到睡著?」

第二階段:地上的魔法陣

我們要畫出一個「讓大家不用思考,跟著走就會對」的軌道。

  1. 繪製地圖:
    • 參考教材,在地上用粉筆或膠帶畫出「排序網路圖」。它看起來像一堆交錯的軌道和圓圈。
    • 標示清楚「入口」和「出口」。
  2. 解說規則:
    • 「這是一個自動導航賽車場。你們每個人都是賽車,拿著你的數字卡。」
    • 口訣:遇到圓圈停下來,比比大小分開跑!
    • 黃金法則: 在圓圈相遇時,數字小的走左邊(或上面的路),數字大的走右邊(或下面的路)。

第三階段:與時間賽跑

這是活動最高潮,孩子將親眼看見「秩序」是如何從「混亂」中自動產生的。

  1. 各就各位:
    • 6 位孩子拿著亂數卡片(例如 5, 1, 6, 3, 4, 2),站在入口的六個格子裡。
  2. 開始執行:
    • 老師/家長喊:「開始!」
    • 孩子們沿著線走。
    • 第一關: 兩兩相遇,比大小,分開走。
    • 第二關: 遇到新夥伴,再比大小,再分開走。
    • 觀察: 所有的比較是同時發生的!沒有人在發呆,大家都在忙。
  3. 終點揭曉:
    • 當大家都走到出口時,請他們把卡片舉起來。
    • 驚喜時刻: 「天啊!原本亂七八糟的數字,怎麼變成 1, 2, 3, 4, 5, 6 排得好好的?」
    • 老師/家長: 「我有指揮你們嗎?沒有!是這個地圖(演算法)讓你們自動排好的!」

第四階段:概念連結 (Concept Connection)

為什麼這樣比較快?

  • 老師/家長:「剛剛我們在那邊跑來跑去,其實總共做了 12 次的比較(比大小)。但是,我們感覺好像只花了一點點時間,為什麼?」
  • 孩子:「因為我們大家同時做比較啊!」
  • 老師/家長:「賓果!這就是超級電腦的秘密,叫做『平行處理 (Parallel Processing)』。」
  • 應用場景: 這就是為什麼電腦可以同時讓你看 YouTube、下載遊戲、又一邊做其他事,因為它有很多「手」在同時做事。

第五階段:除錯與挑戰 (Debug & Challenge)

如果規則改了會怎樣?

透過改變規則,測試孩子對演算法邏輯的理解。

  • 挑戰一:反向思考
    • 提問: 「如果我們把規則倒過來:『大的走左邊,小的走右邊』,你們覺得結果會變成怎樣?」
    • 實驗: 讓孩子跑一次看看。
    • 發現: 最後的順序會變成從大到小(6, 5, 4…)!。
  • 挑戰二:音樂與文字
    • 提問: 「這個魔法軌道只能排數字嗎?」
    • 實驗: 試試看拿著寫有 A, B, C, D 的卡片,或是畫著不同音符(Do, Re, Mi)的卡片。
    • 結論: 只要能「比大小」的東西,這個網路通通能排!。

教學觀察重點表 (Clinical Interview Guide)

這張表幫助您引導孩子觀察「平行」的威力,而不是只在意輸贏。

觀察點❌ 較無效的反應 (只看結果)✅ 較有效的引導 (工程師思維)
當孩子走錯邊時「你走錯了,重來。」「咦?這裡好像『塞車』了。如果你拿的是 5,他拿的是 3,根據『小左大右』的規則,軌道應該把你帶去哪裡?」(把錯誤歸咎於執行,而非孩子能力)
解釋為什麼要畫這麼複雜的線「這就是排序網路的公式。」「這就像是設計一個工廠的輸送帶。只要輸送帶(線)畫對了,不管丟什麼數字進去,出來都會是整齊的產品。這就是自動化的厲害!」
比較序列與平行「平行處理比較快。」「如果你只有一個人(比如做飯只有一個爐子),你會怎麼做?如果有很多人(四個爐子),你又會怎麼做?哪一種比較省時間?」

老師/家長的建議

「粉筆與地板」是這堂課最好的工具。

當孩子在圓圈處停下來等待另一位夥伴時,那是「同步 (Synchronization)」的完美展示——在平行運算中,快的必須等慢的,才能進行下一步比較。這個「等待」的過程,就是最棒的身體學習!

順便提一下,雖然這被稱為“網絡”,但它只是計算機科學中眾多網絡類型中的一種。常見的「網路」是通訊網絡,例如行動電話使用的電信網絡,當然還有互聯網!此外,還有一些網路用於表示諸如路線圖和航線之類的資訊。需要注意的是,本活動中的排序網絡並非上述任何一種網絡類型,它被稱為比較器網絡,因為在這種網絡中,每個節點比較的是兩個值,而不是將不同的設備(例如手機和計算機)連接在一起。

排序網路演示

網路大小
排序模式
速度
1.0x
移動次數
0
進度
0/6
網路拓撲圖
INPUT
COMPARATOR
OUTPUT

參考來源:csunplugged sorting networks