2015年9月23日

[隨筆] 研究的實驗結果這回事

最近看了許多跟系統架構相關的文章,讓我想到剛升碩一時不知天高地厚的跑去修了虛擬機器這門課,然後因為各種聽不懂大受打擊的事情 XD 當時這門課的期末專題是要想辦法找出 QEMU 中可以改善的地方,然後做實驗說明改善的結果跟幅度,現在想想當初能順利做完這個專題還拿到高分實在是運氣破表 XD

當時的報告我還有留著,有興趣的可以看看這個檔案。簡單來說就是當時意外發現 QEMU 中的 branch prediction 機制非常簡單,也發現跟 branch prediction 相關的研究論文其實不少,所以就挑了篇看得懂 + 實做不難的論文來嘗試了。

這種類似做研究的東西其實最難的部分是實驗要怎麼進行才有說服力,就算是個有真材實料在解決真實世界的問題的研究,只要沒有提出令人信服的實驗 ,那這東西你做得再好就是個渣。想當然爾,我並不認為當初找到的東西在實際情況下真能有非常好的改善幅度,設計實驗其實就是當時最大的難關。所幸,大學時代花了不少工夫去研究 C++,知道甚麼情況下一定會讓 QEMU 用上 branch prediction,所以就故意設計了一個實驗能讓 QEMU 原先的機制運作在 worst case,然後我實做的東西能運作在 best case。於是乎,最後的實驗數據超好看的,效能的改善幅度有 10 幾倍呢!(大笑)

雖然這個專題的實驗最邪惡的地方在於 benchmark 是自己設計的,但是就算是公開且眾人信服的 benchmark,鑽進去挖 benchmark 的特性然後特化自己的程式也不是甚麼很稀奇的事情,再加上運用各種美化手段、改變呈現的技巧,很多論文看起來很好看,實際上都是噱頭的情形還真的是很常見


備註
這份報告殘留著大學時期報告沒有被噹過的痕跡,現在連自己看了都很想巴死自己重寫 XDD


沒有留言:

張貼留言