暢談對Linux GCC 4.4的理解
這里我發表一下個人對Linux GCC 4.4理解,和大家討論討論。以社區支持的方式開發Linux發行版Fedora Core Linux,而Red Hat公司原來Red Hat Linux的開發團隊也將繼續參與這一發行版本的開發工作。與lat_ops相比,par_ops更像是一個進階測試。通過對前者的修改與擴展,par_ops著力于體現處理器在指令層面的并行處理能力。
它使用了一些類似教科書上講述并行計算時采用的示范代碼,只要處理器與Linux GCC 4.4編譯器支持,就可以以并行方式同步執行,其結果反應了每指令周期不同操作達到的并行度。這部分的測試結果比較混亂,除了一些并行度相同的操作外,很難在其他項目中尋找一個線形的變化規律。
縱向的比較反而更容易說明問題,o32模式和針對MIPS1指令集架構編譯的代碼并行度相對較低,n32模式下針對R4600處理器編譯的代碼則在很多操作中擁有最高的并行度。Linux GCC 4.4對龍芯2F處理器的優化能力似乎還有提升的空間,雖然n64模式下針對龍芯2F編譯的代碼執行并行度最高,但在o32和n32模式下,對浮點型變量的操作并行度與R4600還有明顯差距。
總體來說,在指令層面,使用Linux GCC 4.4針對龍芯2F進行優化編譯的效果還是比較明顯的,這一點在64位環境下尤為突出。我們還使用-O2與-O3參數分別編譯了針對龍芯2F、n32模式優化的代碼,考察兩者之間的性能差異。也許是測試程序的代碼太過簡單,lat_ops與par_ops靠進一步優化獲得的性能提升與編譯增加的時間絕不成正比。
實際應用測試
接下來進行的實際應用性能測試相信更讓人感興趣。Linux GCC 4.4根據現有測試條件,我們選取了一些比較常見的應用作為測試項目,并將它們歸納為桌面與網絡兩大類。桌面部分包括病毒檢測、壓縮打包和音頻編碼三種應用,考量指標是完成任務需要的時間;網絡部分則通過在不同系統環境下構建完整的LAMP(Linux/Apache/MySQL/PHP)服務,使用思博倫通信的Avalanche 2500應用層性能測試儀考察不同測試用例的每秒最大新建事務數。
【編輯推薦】