Mon 28 Nov 2011 02:17:52 PM UTC, comment #3:
> I have also read your paper. I am aware of the original CMB
> protocol and its time creep problem. I teach some of the
> basics of distributed simulation in one of my classes.
Ok I wasn't aware of that sorry.
> As I recall, the original CMB protocol does not work for zero
> lookahead, unless you implement some dead lock detection and
> avoidance scheme.
Yes that's right. When I speak about "classical CMB" it's the
one from CMB and Fujimoto's modification for zero-lookahead
handling which temporarily adds an epsilon value to the user provided lookahead in order to avoid the deadlock.
This is implemented in CERTI as well and this is necessary even
for TAR/TARA.
Our modification is different is computes a global maximum on rtig side in order to be able to make the best possible jump
into the future for all federate.
The printout you gave is from RTIG console.
You should have more information
in the RTIA/federate console (if you have some).
If you are running on Windows you may have to enable RTIA
console with "RTIA_CONSOLE_SHOW" cmake option.
Another way to get the trace of time management messages
is to set some environment var in RTIG console.
setting RTIG_MSG=D will trace every RTIA<->RTIG messages
and/or setting RTIG_NULLMSG=D will trace NULL message
related on the RTIG side.
You have similar var on RTIA side, RTIA_MSG and RTIA_NULLMSG.
On RTIA you also have RTIA_TM which trace even more information
about time management.
Do you federates join the federation with a 0 lookahead or
do they join with srictly positive lk and the modify_lookahead
to 0?
A fast try on my side with current CERTI CVS seems to
exhibit a problem if:
- classical CMB is used (our modified CMB does not have the issue)
and
- federate join with non-zero lk and modify to zero
before calling any TM service.
I won't have much time this week but may be you can attach
a small test code which exhibits the trouble and i'll try to look into it may be next week.
The RTIA trace looks like this:
RTIA: Statistics (processed messages)
List of federate initiated services
--------------------------------------------------
1 Message::OPEN_CONNEXION (MSG#1)
1 Message::CREATE_FEDERATION_EXECUTION (MSG#3)
1 Message::JOIN_FEDERATION_EXECUTION (MSG#5)
1 Message::PUBLISH_INTERACTION_CLASS (MSG#31)
1 Message::SUBSCRIBE_INTERACTION_CLASS (MSG#35)
1 Message::ENABLE_TIME_REGULATION (MSG#81)
1 Message::ENABLE_TIME_CONSTRAINED (MSG#83)
2 Message::QUERY_LBTS (MSG#85)
1 Message::MODIFY_LOOKAHEAD (MSG#88)
1 Message::QUERY_LOOKAHEAD (MSG#89)
2 Message::NEXT_EVENT_REQUEST_AVAILABLE (MSG#95)
2 Message::GET_INTERACTION_CLASS_HANDLE (MSG#117)
6 Message::TICK_REQUEST (MSG#142)
4 Message::TICK_REQUEST_NEXT (MSG#143)
List of RTI initiated services
--------------------------------------------------
4 NetworkMessage::MESSAGE_NULL (MSG#2)
3 NetworkMessage::SET_TIME_REGULATING (MSG#7)
1 NetworkMessage::TIME_REGULATION_ENABLED (MSG#9)
1 NetworkMessage::TIME_CONSTRAINED_ENABLED (MSG#10)
Number of Federate messages : 25
Number of RTIG messages : 9
TCP Socket 3 : total = 489 Bytes sent
TCP Socket 3 : total = 632 Bytes received
UDP Socket 5 : total = 0 Bytes sent
UDP Socket 5 : total = 0 Bytes received
|