// LB-EBT GVT algorithm for the |
S0 LVT = 0; GVT = 0; ebi = 0; eventProcessed = 0; eventSnt = 0; MTS = ; is empty; EBMap is |
empty; TMCMAP[ebi] = 0; MTSMAP[ebi] = ; LVTMAP[ebi] = ; / initialization of processor / |
S1 Configuring the schedules, generating the communication topology, and generating LPs. |
S2 while (GVT < StopTime) |
S3 for any basic messages BM(j, ts, ed) |
S4 process(BM.ed); eventProcessed++; LVT = BE.ts; |
S5 if BM(j, ts, ed) is a remote basic message from |
S6 TMCMAP[BM.j]− = 1; /record the count of received remote messages/ |
S7 end if |
S8 for any remote basic message BM(ebi, ts, ed) sent |
S9 MTS = min(MTS, BE.ts); |
S10 eventSnt++; |
S11 end for |
S12 end for |
S13 if (eventProcessed >= EB.Size LVT > StopTime) / finish an EB / |
S14 [ebi]+ = eventSnt; record the current EB to EBMap; |
S15 eventSnt = 0; eventProcessed = 0; ebi++; |
S16 send control messages to / request leaf to send an messages / |
S17 end if |
S18 for any control message |
S19 if LeafP(i) and index of control message is not less than ebi |
S20 send EB report message to |
S21 end if |
S22 end for |
S23 for any EB Report message |
S24 for each key k in EBR.TMMAP |
S25 TMCMAP[k]+ = EBR.TMMAP[k]; |
S26 end for |
S27 MTSMAP[EBR.ebi] = min(MTSMAP[EBR.ebi], EBR.MTS); |
S28 LVTMAP[EBR.ebi] = min(LVTMAP[EBR.ebi], EBR.LVT); |
S29 if all processor in have reported EBR messages |
S30 record the current EB to EBMap; |
S31 TMCMAP[ebi]+ = EBMap[ebi].SntC; |
S32 MTSMAP[EBR.ebi] = min(MTSMAP[EBR.ebi], EBMap[ebi].MTS); |
S33 LVTMAP[ebi] = min(LVTMAP[ebi], EBMap[ebi].LVT); |
S34 eventSnt = 0; eventProcessed = 0; ebi++; |
S35 if is the root processor / calculate the new value of GVT / |
S36 GVT = ((MTSMAP[k]TMCMAP[k] > 0, LVTMAP[k])); |
S37 send GN(ebi, gvt) to ; / send GVT notifying message to its children / |
S38 else |
S39 send to ; / send EB report to parent / |
S40 end if |
S41 end if |
S42 end for |
S43 for any GVT notifying message GN(j, gvt) |
S44 GVT = GN.gvt; / update GVT / |
S45 if notLeafP(i) |
S46 send GN(j, gvt) to ; / send GVT notifying message to its children / |
S47 end if |
S48 end for |
S49 end while |