Enhance “modmesh” building process with “devenv” and “CNTUG Infra Labs”

前言

很高興在今年3月認識了@SteveYi來參與scisprint因此可以得知雲端原生台灣社群CNTUG組織, 以及CNTUG Infra Labs計畫, 並成功申請到帳號試用

正文

modmeshdevenv是開源社群sciwork所維護的專案, 由@yyc主導開發, 其中modmesh是可以用來解偏微分方程(partial differential equations)(PDE)的數值軟體, 軟體是由C++撰寫核心運算的部分, Python撰寫資料視覺化以及UI(使用Pyside6)的部分, 軟體使用Qt3D來將PDE的運算結果以mesh呈現, 目前支援在Windows, macOS, Ubuntu 22.04三種作業系統上編譯執行, 而我當時正在強化modmesh編譯流程使用的工具鏈(toolchain), 在我自己的電腦上常常需要編譯很久(當時遇到Qt3D的RHI backend在不同作業系統間行為不一樣, 因此需要測試不同版本間Qt的執行結果), Infra Labs提供的計算資源能夠幫助我更有效率的進行編譯測試。

另外介紹devenv, devenv是以純bash撰寫的環境管理工具, 可以讓需要編譯的各種軟體(像是OpenSSL, Python, Qt, XCB等任何可以從source code編譯的軟體)提供隔離的環境進行編譯及版控, 有點像NVM或是Conda等工具, 這樣就可以避免污染/use/local底下的軟體環境, 也不需要root/sudo等權限, 其中modmesh所需要(prerequisite)的各種套件的build script目前都已經包含在devenv中, 也歡迎大家來pull request(PR)新的build script或是強化devenv的功能。

使用心得

我原本使用的硬體規格為Xeon E5-2670 (8c16t) 16GB DDR3 RAM配華南金牌主機板的洋垃圾組合(圖中O.E.M)
在Infra Labs申請到Xeon Gold 6230R (8c8t) 8GB DDR4 RAM的虛擬機器(圖中OpenStack), 可以看到即便掛在虛擬機器上, 6230R的8個logical cores也比E5-2670的16個logical cores強50%以上, 可見不同世代的CPU差距之大。

詳細各項benchmark指標可以參考comparison

在試用Infra Labs期間, 可以明顯感受到編譯Python, Qt, PySide6的時候速度快了很多, 並且成功找出modmesh中一個由pip版本更新導致github actions CI failed的原因並修正了它, 也在devenv中強化了Qt的build script, 讓它在編譯不成功時的error log更加詳細以及用ninja取代make增加Qt的編譯速度和穩定性。

詳細PR可以參見:
modmesh: fix pip building error #222
devenv: Qt build script update #154

最後, 再次感謝CNTUG提供硬體資源, 讓我體驗在雲端開發數值軟體的機會, 未來希望還可以有更多的機會來回饋給CNTUG。

sciwork還有許多有趣的project可以參與, 歡迎大家來Discord聊天討論。


已發佈

分類:

作者:

標籤:

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料