FMI u l-istess simulazzjoni kullimkien
Il-mudell m’għandux jiżviluppa personalità
Mudell ta’ simulazzjoni għandu jkun sieket b’mod speċifiku ħafna: l-istess input, l-istess mudell, l-istess output. Dan jidher ovvju sakemm il-mudell jiċċaqlaq minn workstation għal cluster, minn laptop għal hardware-in-the-loop, minn kompilatur għal ieħor, jew minn għodda ta’ bejjiegħ għal uffiċċju ta’ sikurezza li ma japprezzax żfin interpretattiv. Imbagħad differenzi numeriċi ċkejkna jsiru laqgħat. Il-laqgħat isiru spreadsheets ta’ rikonċiljazzjoni. Il-spreadsheets ta’ rikonċiljazzjoni jsiru l-oqbra fejn wara nofsinhar tajba ta’ inġinerija jmorru jmutu.
FMI teżisti biex tagħmel l-iskambju ta’ mudelli u l-ko-simulazzjoni prattiċi bejn għodod differenti. Il-Functional Mock-up Interface tagħti lit-timijiet mod standard biex jippakkjaw u jmexxu mudelli minflok iġorru bl-idejn kodiċi ta’ integrazzjoni fraġli minn ambjent ta’ simulazzjoni għal ieħor. Dak diġà huwa utli. Imma interface standard ma jagħmilx l-aritmetika deterministika awtomatikament. Flussi tax-xogħol tradizzjonali tal-FMI spiss jiddependu fuq imġiba floating-point IEEE 754, libreriji tal-pjattaforma, għażliet tal-kompilatur, ordni ta’ eżekuzzjoni, u differenzi fil-backend. Ħafna mill-ħin dak huwa tajjeb. Imbagħad ma jkunx tajjeb, u d-differenza normalment tinstab minn xi ħadd b’deadline u wiċċ li jgħid li l-akkwist wiegħed li dan kien se jkun faċli.
Dweve FMI jattakka l-parti boring u għalja: ir-riproducibilità. Is-sit jiddeskrivi implimentazzjoni Rust tal-FMI għal Model Exchange u Co-Simulation b’aritmetika deterministika fixed-point, mibnija fuq Numerus. Il-forma tal-implimentazzjoni hija usa’ minn demo: workspace FMI b’ħafna crates b’rappreżentazzjoni tal-mudell, parsing tal-iskema, import, export, runtime, solver, orkestrazzjoni, memorja, backends għal CPU, GPU, FPGA, eżekuzzjoni edge u distribwita, FFI, fuzzing, benchmarks, docs, u testijiet. Jiddependi fuq crates Numerus għall-aritmetika fixed-point u deċimali, flimkien mal-istack komuni Dweve għas-simulazzjoni, logging, immaniġġjar ta’ ħsarat, trasport, tensors, u ħażna.
L-għan mhuwiex li s-simulazzjoni tinstema’ mistika. L-għan huwa li l-istess FMU jieqaf jgħid stejjer kemmxejn differenti għax qam fuq magna differenti.
FMI jagħti l-envelope, l-aritmetika xorta tikteb iċ-ċekk
FMU huwa envelope utli. Iġorr deskrizzjoni tal-mudell, binarji jew artefatti tas-sors, riżorsi, varjabbli, stati, arloġġi, dipendenzi, u biżżejjed metadata biex għodda oħra tista’ tinstanzja u timxi l-mudell. FMI 3.0 iżid arloġġi aktar sinjuri, eżekuzzjoni skedata, ittajpjar imtejjeb tal-varjabbli, u makkinarju ta’ ko-simulazzjoni. Is-sors ta’ Dweve FMI huwa organizzat madwar dak l-envelope: fmi-schema jipparsja u jivvalida deskrizzjonijiet tal-mudell, fmi-import jillowdja arkivji FMU, fmi-export jibni arkivji, fmi-model jirrappreżenta varjabbli u stat tal-mudell, u fmi-runtime għandu l-ħajja taċ-ċiklu, aċċess għall-varjabbli, arloġġi, avvenimenti, derivattivi, u salvataġġ jew restawr tal-istat.
Dak l-envelope huwa meħtieġ, imma mhuwiex biżżejjed. L-aritmetika taħt xorta tiddeċiedi jekk run huwiex riproducibbli. Id-docs tar-runtime jgħidu li l-aritmetika fixed-point tuża Numerus Q31_32 għall-komputazzjoni deterministika. Il-metadata tal-workspace isemmi Q31.32 bħala l-format fiss default, Dec64_6 bħala l-format deċimali default, u Q16.16 għall-ħin. Il-paġna pubblika titkellem dwar profili Q31.32, Q16.16, u Dec64_6, bl-MPFR użat bħala r-rotta ta’ referenza. Dan jagħti lill-proġett kuntratt ċar: simulazzjoni b’valuri reali għandha tiġi mappjata fi profili numeriċi deterministiċi minflok tħalli lil kull backend jimproviżizza.
Hemm punt importanti ta' onestà hawnhekk. L-APIs u l-uċuħ ta' kompatibbiltà li jiffaċċjaw l-FMI xorta jistgħu jaċċettaw jew joħorġu valuri b'punt li jvarja (floating) għax l-istandard u l-għodod eżistenti jistennewhom. Id-dikjarazzjoni li jimpurtaha mhijiex purità teatrali f'kull konfini. Id-dikjarazzjoni li jimpurtaha hija li l-mogħdija deterministika ċentrali hija mibnija madwar profili ta' punt fiss Numerus u validazzjoni kontra referenza ta' preċiżjoni għolja fejn it-tqabbil ikun sinifikattiv. L-adapterijiet tat-truf jistgħu jitkellmu l-lingwa ta' barra. Il-kuntratt ta' ġewwa m'għandux isir xi ħaġa li ma jimpurtahiex minnha.
Il-profil numeriku huwa deċiżjoni tal-mudell
Il-punt fiss mhuwiex setting maġiku wieħed. Mudell li jeħtieġ valuri ta' ħin kompatti, mudell b'firxiet fiżiċi wesgħin, u mudell li jirrapporta kwantitajiet deċimali ma għandhomx l-istess pressjoni. Q16.16, Q31.32, u Dec64_6 mhumiex stikers għal preżentazzjoni. Huma kuntratti differenti dwar firxa, riżoluzzjoni, rappreżentazzjoni, u fejn l-iżbalji jitħallew jgħixu.
Dan huwa fejn it-timijiet ta' simulazzjoni spiss isiru wisq każwali. Huma jittrattaw l-imġiba numerika bħala proprjetà tal-għodda aktar milli proprjetà tal-mudell. Imbagħad l-għodda tinbidel, jew il-backend jinbidel, jew il-mudell jiġi inkorporat, u f'daqqa waħda l-assunzjoni l-qadima ssir piż ta' validazzjoni. Dweve FMI jagħmel il-profil numeriku parti mill-arkitettura aktar milli temp ta' sfond. Dan huwa inqas glamuruż minn demo kbira. Tajjeb. Demos kbar rarament jispjegaw min jippossjedi l-konfini tal-arrotondament.
Il-crate tas-solver jirrakkonta l-istess storja. Jesponi karatteristiċi ta' sistemi ODE, RK4, RKF45, Euler, konfigurazzjoni orjentata lejn BDF, kontroll adattiv tal-pass, sejbien ta' avvenimenti, u ħin deterministiku tas-solver. Il-crate tar-runtime jippossjedi ċ-ċiklu tal-ħajja tal-FMU, il-modi ta' avvenimenti u ħin kontinwu, aċċess għal varjabbli, derivattivi ta' input, derivattivi direzzjonali u adjoint, caching ta' Jacobian, arloġġi, u serjalizzazzjoni tal-istat. Xejn minn dan mhuwa utli jekk is-saff numeriku ma jistax jintwera li huwa affidabbli meta jiċċaqlaq fuq hardware differenti. Is-solver jista' jkun intelliġenti. Il-mudell jista' jkun eleganti. Jekk l-istess ġirja teħtieġ tliet rikonċiljazzjonijiet, l-eleganti hija l-aktar biss għamara.
Il-ko-simulazzjoni hija fejn il-gideb żgħir isir għali
FMU wieħed huwa diġà biżżejjed xogħol. Diversi FMUs imqabbdin flimkien huma fejn l-iżbalji numeriċi u operattivi jsiru soċjali. Mudell termali jitma' mudell ta' kontroll, il-mudell ta' kontroll jitma' mudell ta' attwatur, il-mudell ta' attwatur jitma' mudell mekkaniku, u kulħadd jittama li l-ordni tal-pass mhux qed joħloq nonsense bil-kwiet. Il-ko-simulazzjoni teħtieġ ġestjoni tal-konnessjonijiet, ordni ta' eżekuzzjoni, skambju ta' data, koordinazzjoni tal-pass, ġestjoni ta' loops alġebrin, u mod kif tgħid le meta l-graff ikun ħażin.
Is-sors għandu fmi-orchestration għal dak ix-xogħol. Jimmaniġġja ko-simulazzjoni b'ħafna FMUs, konnessjonijiet, sejbien ta' ċikli, ordni topoloġika, skedar ta' partizzjonijiet, sejbien u soluzzjoni ta' loops alġebrin, storja ta' valuri, ordni ta' eżekuzzjoni, ħin ta' simulazzjoni, u statistika ta' orkestrazzjoni. Hemm fmi-cc għall-komunikazzjoni bejn FMUs imqabbdin u fmi-dist għal eżekuzzjoni distribwita b'koordinaturi, reġistrazzjoni ta' nodes, messaġġi, talbiet ta' pass, risponsi ta' pass, u valuri ta' status. Dak huwa t-tip ta' makkinarju li n-nies jinsaw dwaru meta jgħidu li l-integrazzjoni hija biss konnessjoni ta' outputs ma' inputs. Hija konnessjoni, iva. Hija wkoll ħin, ġestjoni ta' dipendenzi, stat, falliment, u prova li l-konnessjoni għamlet dak li qalet.
Il-ko-simulazzjoni tagħmel id-determiniżmu aktar importanti, mhux inqas. Jekk FMU waħda titbiegħed ftit u dik il-valur titma' lil FMU oħra, id-diskrepanza tista' tinfirex. Jekk l-ordni tal-eżekuzzjoni tinbidel bejn in-nodi, id-diskrepanza tista' tinħeba sakemm jasal pass aktar tard. Jekk backend juża triq matematika kemmxejn differenti, id-diskrepanza tista' tidher bħala mġiba tal-mudell. Hekk it-timijiet jispiċċaw jiddebaggjaw il-fiżika bil-minuti tal-laqgħat. Ħadd m'għandu jkollu jagħmel dan sakemm ma kienx ħażin ħafna f'ħajja preċedenti.
Il-backends huma għażliet ta' skjerament, mhux veritajiet ġodda
Is-siġra tas-sors tissepara l-miri tal-eżekuzzjoni fi crates tal-backend: CPU, GPU, FPGA, edge, u distribwit. Il-backend edge jiffoka fuq apparati b'riżorsi limitati, memorja limitata, u overhead baxx. Il-backend FPGA jitkellem dwar aritmetika b'punt fiss, trasferimenti DMA, ġestjoni tal-bitstream, eżekuzzjoni tal-kernel, u hardware-in-the-loop. Il-crate distribwit jikkoordina diversi nodi. Il-paġna pubblika tiddeskrivi l-mogħdijiet CPU SIMD, GPU, FPGA, edge, u distribwit. Dan ma jfissirx li kull mira hija ugwalment matura għal kull xogħol. Ifisser li l-arkitettura tqis l-għażla tal-backend bħala kwistjoni ta' l-ewwel klassi.
Il-prinċipju tad-disinn kruċjali huwa li l-iskjerament għandu jibdel fejn is-simulazzjoni taħdem, mhux xi tfisser is-simulazzjoni. Mogħdija CPU tista' tkun l-aktar faċli għall-kitba u l-verifikazzjoni. Mogħdija GPU tista' tagħmel sens għal xogħol parallel kbir. Mogħdija FPGA tista' tkun meħtieġa għal ħin reali jew hardware-in-the-loop. Mogħdija edge tista' tkun meħtieġa ħdejn il-magna. Eżekuzzjoni distribwita tista' tkun meħtieġa għal sistemi kkoppjati kbar. Dawk huma għażliet operazzjonali. M'għandhomx joħolqu identità numerika ġdida għall-mudell.
Hawnhekk ukoll jimpurta l-open source. Fis-sigurtà, l-enerġija, ir-robotika, l-apparat mediku, il-karozzi, l-ajruspazju, il-kontroll industrijali, u t-tewmin diġitali, it-talbiet ta' riproduċibilità ma jistgħux jgħixu biss fi slides tal-bejjiegħ. Xi ħadd irid jispezzjona l-implimentazzjoni, jiffissa verżjoni, imexxi t-testijiet, jaqra l-każijiet ta' falliment, u jiddeċiedi jekk l-evidenza hijiex tajba biżżejjed. Implimentazzjoni open source tal-FMI tagħti lit-timijiet rotta aħjar lejn dik l-evidenza. Ma tiċċertifika xejn b'mod maġiku. Tagħmel ix-xogħol ispezzjonabbli, li huwa l-ewwel pass utli.
Il-validazzjoni għandha tkun gate, mhux dashboard
L-istorja tal-validazzjoni ta' Dweve FMI mhix biss dwar traċċi sbieħ. Il-README u s-sit jiddeskrivu kontrolli ta' referenza MPFR, ekwivalenza bejn il-backends, replays deterministiċi, testijiet ta' konformità, fuzzing, u fallimenti ttajpjati. Is-sors għandu fmi-test, fmi-fuzz, fmi-bench, fmi-conformance, testijiet tal-proprjetajiet, harnesses tal-fuzzing, u serjalizzazzjoni tal-istat. Din hija d-direzzjoni t-tajba. Fl-infrastruttura tas-simulazzjoni, il-validazzjoni m'għandhiex tkun dashboard fejn linja ħamra tidher inkwetanti u xi ħadd iwiegħed li jaraha. Għandha tkun gate.
Il-gate għandha diversi partijiet. L-importazzjoni trid tipparsja l-arkivju tal-FMU u l-modelDescription b'mod korrett. Il-validazzjoni tal-iskema trid tirrifjuta definizzjonijiet ta' varjabbli, dipendenzi, clocks, u attributi invalidi. Il-kontrolli numeriċi jeħtieġu oracle meta t-talba tkun dwar l-eżattezza. Il-parità tal-backends teħtieġ l-istess stat bejn il-miri tal-eżekuzzjoni. Ir-replay jeħtieġ stat salvat u loġs tal-avvenimenti biex jerġa' jibni l-ġirja. Il-falliment jeħtieġ żbalji ttajpjati, mhux rapport ta' diskrepanza misterjuż li jibgħat lit-tim jgħaddas fil-loġs. Diskrepanza għandha timblokka l-mogħdija tar-rilaxx sakemm tinftiehem jew tiġi aċċettata b'mod espliċitu. Dan jinstema' iebes biss jekk l-alternattiva għadha ma bagħtitx il-kont tiegħek.
Fejn dan jgħodd l-ewwel
Id-dominji ovvji huma dawk fejn l-iżbalji fis-simulazzjoni jsiru żbalji fiżiċi: il-karozzi, l-ajruspazju, il-kontroll industrijali, l-apparat mediku, l-enerġija, ir-robotika, u l-infrastruttura. Mudell ta' brejk, kontrollur ta' pompa, mudell tal-grilja, ċellula robotika, linja ta' fabbrika, jew kontrollur ta' HVAC ma jsirx aktar sigur għax preżentazzjoni tgħid diġital twin. Isir aktar sigur meta l-mudell, l-inputs, il-profil numeriku, il-backend, il-verżjoni, u t-traċċa tar-replay ikunu kkontrollati biżżejjed biex ikunu jistgħu jiġu investigati.
Hemm ukoll aspett ta' akkwist, għax ovvjament hemm. Jekk kull backend jeħtieġ storja ta' validazzjoni separata, kull bidla fil-ħardwer issir eżerċizzju żgħir ta' riċertifikazzjoni. Jekk l-istess FMU jista' jintwera darba u mbagħad jitħaddem fuq it-target li jaqbel mal-istrizzjoni operazzjonali, it-timijiet jiksbu libertà mingħajr ma jippretendu li l-validazzjoni hija b'xejn. Is-sit jesprimi dan bħala li tipprova darba u tħaddem kullimkien. It-traduzzjoni tal-inġinerija hija ftit inqas romantika: naqqas in-numru ta' postijiet fejn l-istess mudell jista' ma jaqbilx miegħu nnifsu.
Dan huwa partikolarment rilevanti fl-Ewropa. Is-sovranità mhix biss fejn jinsab is-server. Hija wkoll jekk każ ta' sigurtà jistax jiġi spezzjonat, ripetut, u mċaqlaq mingħajr ma wieħed jitlob permess lil fornitur wieħed. Implementazzjoni miftuħa, aritmetika deterministika, replay riproduċibbli, u parità tal-backend ma jsolvux il-politika waħedhom. Iżda jagħmlu l-parti teknika inqas dipendenti fuq kaxxa sewda b'tim tal-bejgħ imwaħħal magħha.
X'għandek tirrevedi qabel ma tafdah
L-ewwel mistoqsija ta' reviżjoni hija liema uċuħ ta' FMI 3.0 jintużaw fil-fatt mill-mudell tiegħek. Model Exchange, Co-Simulation, Scheduled Execution, clocks, derivattivi, avvenimenti, varjabbli binarji, strings, arrays, u dipendenzi mhumiex l-istess xogħol. FMU sempliċi u simulazzjoni akkoppjata ta' bosta FMUs jpoġġu pressjoni differenti fuq ir-runtime u l-orchestrator.
It-tieni mistoqsija hija liema profil numeriku jiddikjara l-mudell u għaliex. Jekk it-tweġiba hija kwalunkwe default li ħadem fl-eżempju, dik mhix disinn. Il-profil għandu jaqbel mal-firxa, ir-riżoluzzjoni, ir-rappreżentazzjoni tal-ħin, it-tolleranza, u t-target ta' skjerament. Għandu jkun viżibbli biżżejjed li reviżur jista' jisfidah mingħajr ma jaqra s-solver kollu.
It-tielet mistoqsija hija liema evidenza tivvjaġġa mar-riżultat. Liema verżjoni tas-sors? Liema verżjoni tal-FMU? Liema modelDescription? Liema profil Numerus? Liema backend? Liema kontrolli tal-oracle? Liema stat tar-replay? Liema testijiet ta' konformità jew proprjetà? Jekk dawk it-tweġibiet huma mferrxa fuq wiki u l-memorja ta' xi ħadd, is-simulazzjoni għadha mhix lesta biex tiġi fdata f'fluss ta' xogħol serju.
Il-lezzjoni
Il-lezzjoni ta' Dweve FMI mhix li l-istandards tas-simulazzjoni huma boring. Huma boring eżattament bil-mod li l-pontijiet huma boring meta jibqgħu wieqfa. FMI jagħti l-envelope tal-iskambju. Il-punt fiss appoġġjat minn Numerus jagħti l-pożizzjoni tal-aritmetika deterministika. Il-crates tar-runtime u tas-solver jagħmlu l-mudell jimxi. L-orchestration tgħaqqad l-FMUs mingħajr ma tippretendi li l-ħin huwa trivjali. Il-backends iċaqilqu l-eżekuzzjoni lejn il-ħardwer li jaqbel max-xogħol. Il-validazzjoni tbiddel l-identiċità fi grad minflok tama.
Dak huwa x-xogħol. Mhux pretensjoni kbira li n-numri huma solvuti għal dejjem. Mhux demo tleqq fejn kollox jaqbel għax ittieħdet biss triq waħda. Sistema ta' simulazzjoni li taf il-formati tagħha, tiddikjara l-kuntratt numeriku tagħha, taħdem fuq backends differenti, u tonqos b'leħen għoli meta l-istess mudell jieqaf ikun l-istess mudell.
Il-mudell m'għandux jiżviluppa personalità. Għandna biżżejjed minn dawk fil-laqgħat.