王藝遙,齊和平,李學(xué)艷,毛玉輝,柴 彪
(北方自動控制技術(shù)研究所,太原 030006)
分布式仿真的主要思想是將單個仿真程序并行地在多個處理器上并發(fā)運(yùn)行,提高并行性以打破仿真順序中時間和空間的局限,滿足仿真性能要求。分布式仿真致力于提高系統(tǒng)并發(fā)性,不可避免地會因?yàn)榫W(wǎng)絡(luò)延遲、時鐘不一致、節(jié)點(diǎn)掉線等各種問題造成因果順序錯亂。在理想條件下,仿真事件推進(jìn)和通信的時延應(yīng)當(dāng)與實(shí)際系統(tǒng)事件發(fā)生的時延一致,但是實(shí)際仿真過程中,信息傳輸延遲并不是穩(wěn)定的,通常不可預(yù)測,且整個仿真系統(tǒng)的各個組成部分不能確保完全一致的系統(tǒng)時間,因此,可能出現(xiàn)因果紊亂的情況。
為解決這一問題,保證仿真結(jié)果的真實(shí)性、可靠性與可讀性,需要對并行仿真系統(tǒng)做因果關(guān)系約束。并行仿真系統(tǒng)通過多個帶有時間戳的邏輯進(jìn)程完成消息通信,處理器的性能和復(fù)雜的網(wǎng)絡(luò)架構(gòu)造成了消息通信的隨機(jī)性,需要通過消息傳輸策略維護(hù)并發(fā)事件之間的邏輯關(guān)系,這種方法被稱為同步策略。
典型的同步策略有保守策略和樂觀策略。最早的保守策略由Chandy、Misra 和Bryant 3 人提出,因此,稱為CMB 協(xié)議。在CMB 協(xié)議中,各個邏輯進(jìn)程的事件都帶有時間戳,每個消息都需要保證時間戳不會小于本地局部仿真時間,才可執(zhí)行當(dāng)前事件。由此,所有事件都會嚴(yán)格按照順序執(zhí)行,整個仿真系統(tǒng)的因果性得到保證。由于保守策略對時序的嚴(yán)格要求,需要不斷判斷事件是否可以執(zhí)行,若有一個處理器上事件為空,邏輯進(jìn)程將等待,直到事件不為空,這可能導(dǎo)致循環(huán)等待,進(jìn)而產(chǎn)生死鎖。……