顯示具有 high school 標籤的文章。 顯示所有文章
顯示具有 high school 標籤的文章。 顯示所有文章

2010年3月21日 星期日

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

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

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

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

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

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

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

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

2010年3月17日 星期三

高中趣事 - 學習如何寫一個 shell

高中有不少有趣的事, 趁著現在還記得的時候, 來記錄一下好了。

高中時受到資源限制, 社團裡有些書是用印的。有些書是因為絕版了, 為了方便學習只好作惡。但有些書不知為啥, 明明用印的也沒較便宜, 學長卻跑去用印的, 實在是頗.......嗯, 不精明的的行為。

有本教 linux programming 的書, 附錄有附上作者自己寫的簡易 shell。原書應該有附光碟, 但.....咳咳, 所以我沒拿到光碟。我想說就把它 key 進電腦裡, 邊 key 邊學也不壞啊。想我剛學 HTML 時, 就是三天熱血灌腦 (簡稱腦殘) 地把書上全部範例 key 進電腦執行, 同時學會 HTML 和英文盲打 (這樣頭才不會一直上下轉動而扭到), 超划算的。

就在 key 完數十頁、近千行的程式碼後, 按下 make, 迎面而來的是一堆 compile error。我弄了半天, 最後發覺書上沒印清楚, 有些頁的最後一行沒印出來.......。

忘了後來怎麼修的, 我記得有把程式弄到可以跑, 但後來也沒學到啥。花一堆時間 key 完殘缺不全的程式, 卻毫無收獲。這故事告訴我們, 要尊重版權啊!!

話說回來, 我當時怎麼沒想到上網搜, 或寄信和原作者要呢? 當時年紀小, 傻傻不懂事只有熱血。現在懂事了, 熱血卻沒當年的一半, 唉呀呀。