摘要 summary
在復雜產(chǎn)品的多學科仿真計算中,各科研機構或主機所都會面臨大量的設計資源、設計平臺和設計過程需要集成,MCLink立足打造一款低代碼仿真軟件設計集成開發(fā)平臺,助力用戶解決集成痛點。
近來自主可控的工業(yè)軟件研發(fā)大有星星之火可以燎原之勢,各大院所和學校的老師們紛紛擼起袖子加油干,不過在實際的開干中,大家往往會碰到“設計軟件集成、設計資源整合、設計過程疊加、設計數(shù)據(jù)復用”等眾多挑戰(zhàn)。
1. 自研算法和軟件如何迅速轉(zhuǎn)換為成熟軟件產(chǎn)品?
潛臺詞:雖然我們專業(yè)能力很強,但畢竟不是搞軟件工程的,做出的軟件界面不好看,甚至沒有界面,對用戶也不友好,怎么破?
功能強大、上手很難、沒有界面的CFD軟件OpenFoam
MCLink具備完善的界面擴展機制
2. 如何降低軟件集成開發(fā)技術門檻,提升開發(fā)效率?
潛臺詞:軟件集成的開發(fā)工作量太大,對系統(tǒng)抽象層次和體系結構的要求又很高,不比算法開發(fā)簡單,我們實在沒有精力去寫那么多代碼,不知道有沒有簡化的辦法?
低代碼+插件體系降低集成開發(fā)技術門檻
基礎庫視頻
3. 如何提升仿真計算前后處理的效率?
潛臺詞:我們的自研算法很不錯,但缺少前后置功能,只能使用國外的商業(yè)軟件來連接,這樣一來麻煩就多了,不但要投入不少經(jīng)費,還不能保證自主可控,最重要的是數(shù)據(jù)傳來導去非常麻煩。
價格昂貴、不可控的國外前后處理商業(yè)軟件
4. 多學科、多專業(yè)的耦合仿真和協(xié)同優(yōu)化如何組織?
潛臺詞:我們不同科室和專業(yè)之間想要協(xié)同設計太不容易了,使用的軟件太多太雜,數(shù)據(jù)形態(tài)各樣,仿真流程各異,協(xié)同過程中存在太多的妥協(xié)和簡化。
多學科、多專業(yè)的耦合仿真和協(xié)同優(yōu)化十分艱難
四大核心概念視頻
5. 如何提升集成平臺的擴展性和開放性?
潛臺詞:每次立項的時候我們都提出要支持擴展、開放接口,最后總是不了了之,這些擴展方式要么是不好用,要么是不會用,甚至根本就是不能用,這種系統(tǒng)的可成長性實在令人擔憂。
基于插件體系的擴展性和開放性至關重要
算法流水線
6. 如何提升數(shù)據(jù)再利用水平,提升知識挖掘能力,將數(shù)據(jù)價值最大化?
潛臺詞:我們的仿真和實驗數(shù)據(jù)七零八落,散布在各處,仿真過程數(shù)據(jù)實在是不好管理,很多都刪掉了,仿真計算的結果數(shù)據(jù)我們都留下了,但好久沒人碰,都落灰了。都說數(shù)據(jù)就是財富,那我們究竟如何變現(xiàn)呢?
數(shù)據(jù)再利用就是最大限度攫取數(shù)據(jù)剩余價值的過程
數(shù)據(jù)處理視頻
7.如何有效整合超算集群等設計資源,提升仿真計算效率?
潛臺詞:我們的高學歷工程師花了大量時間在復制數(shù)據(jù)、提交作業(yè)、監(jiān)控作業(yè)、收集結果等繁雜又容易出錯的事務上,實在是浪費人才資源。
仿真效率的底下源于工程師干了太多“雜活累活”
超算計算作業(yè)管理視頻
8.如何在Web上快速發(fā)布仿真計算能力,并能多端展示?
潛臺詞:總是讓用戶安裝大型軟件用戶也受不了,況且還有很多人習慣用手機看東西,如果好的計算結果或模型能一鍵發(fā)布到web端,這些難題就解決了。
Web發(fā)布能夠迅速實現(xiàn)多端共享
典型的算法/解算器集成流程如下:
01 新建快速集成
創(chuàng)建集成封裝的工作目錄,初始化解算器基本信息,集成產(chǎn)出的相關文件和包都會存放在此目錄中。
02 軟件目錄設置(含參數(shù)提?。?/strong>
將完整算例包導入,定義求解過程中涉及到的文件類型,提取界面參數(shù)和后續(xù)求解步驟需要引用的變量。
03 文件拷貝設置
若求解過程中需要將某文件拷貝到指定路徑,可以在此步驟設置拷貝規(guī)則。源文件以{變量名}的形式引用,運行求解器時會拷貝到目標地址,并可執(zhí)行創(chuàng)建目錄、解壓操作,linux環(huán)境還可以將源文件做成軟連接到目標目錄。
04 計算步驟設置
創(chuàng)建一個或多個計算步驟,每個步驟可定義本機或集群計算模式(采用進程還是調(diào)度器來管理軟件),選擇在什么路徑下運行哪個執(zhí)行文件,是否在shell解釋器執(zhí)行等。計算步驟可調(diào)整順序。
05 過程監(jiān)控設置
創(chuàng)建一個多個監(jiān)控項,每個監(jiān)控項可定義來自參數(shù)或文件的某個值(可以是變量值)為監(jiān)控對象,解算器運行過程中將定時獲取此值。高階監(jiān)控可選擇“函數(shù)”編寫Python代碼定義更加靈活的監(jiān)控規(guī)則。
06 結果回收設置
創(chuàng)建一個多個結果回收規(guī)則,與過程監(jiān)控類似,可從參數(shù)或文件回收結果,也可通過Python代碼定義更加靈活的結果回收規(guī)則。
07 封裝打包
保存當前集成工程,將上述集成過程定義的規(guī)則封裝打包,輸出一個適配器(egg文件),適配我們的科學計算中間件Mirror,即可運行求解。