2010年3月21日 星期日

高中趣事 - 平行處理初體驗

在學長的威嚇和利誘下, 我們從高一起就習於參加電腦科展。高二時和一位朋友 T, 想說來研究平行處理吧。於是從社團陳舊的書架裡找到一本講平行處理的書, 配合網上亂搜的一些中文說明文, 就做了起來。

我們選定 merge sort, 想說拆到兩台電腦排, 排完再傳回一台電腦合併, 這樣應該會快個近一倍吧? 相信有平行處理常識的人, 都會明白這是很傻很天真的想法, 更何況當時是 10M 區網的時代。

總之, 我們在 Red Hat 下寫 socket 傳資料、排序。剛開始怎麼跑都是比單台電腦還要慢。經過很長時間的調整, 速度終於比單台快了, 不過也接近校內科展展出的時間。急急忙忙弄海報, 演練報告等, 就去參賽了。

評審老師說, 我前陣子才去交大資工看過他們做平行處理, 怎麼和你們說得不太一樣? 我們當時年紀小, 老師也不太懂, 經過一串沒啥交集的問答後, 評審過程就這樣被嚕過去了 (好學生不要學)。評審老師帶著滿腹疑問給我們佳作還是優勝, 畢竟我們學校也沒啥人做資訊科展。

現在我還是很訥悶, 當年老師去交大看到的, 到底是什麼呢? 我後來到交大唸書, 沒發現有人在做平行處理。

科展結束幾天後, 我忽然發覺程式不太對勁, 仔細比對輸出才發現有不少資料在網路傳輸時不見了。當時我們輸入資料用亂數產生, 數字範圍又不夠大, 排序後輸出大概長成這樣:
1
1
1
...
1
2
2
...
2
...
100000

掉個一些資料, 用肉眼是看不出來的 --- 這就是速度變快的真相!! 這故事告訴我們, 有時不寫測試也不壞啊 (好學生不要學)。

2 則留言:

  1. Hilarious .. :) thanks for this post.

    I'll post a link to the ITRS google group.
    You need to add a "itrs" tag besides the "high school" tag for relevant posts in your 『高中趣事』 series.

    回覆刪除
  2. Oops, I originally would like to keep the school name and club name be secrets, though they're not secrets in fact. :)

    Anyway, I still hope to write them mysteriously. Keeping mysterious is necessary for a good story!

    回覆刪除