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