Minutes from the April 7-8 1999 MPI/RT Forum meeting that was held in Bedford, MA. These minutes were approved with a vote of 7/0/1 by the forum during the June 1999 meeting. Attendees: Arkady Kanevsky (co-chair) Mercury Computers arkady@mc.com Charles R. Petersen AF Research Lab, Rome pedersen@rl.af.mil Tony Lee NAVAIRWARCTR Pax River leeat@navair.navy.mil Ken Cain (host) MITRE kcain@mitre.org Manoj Apte MSU manoj@erc.msstate.edu Dennis Cottel SPAWAR dennis@spawar.navy.mil Nathan Doss LM/GES nathan.e.doss@lmco.com Tom McClean Lockheed Martin (LM/GES) Thomas.P.Mcclean@lmco.com Anna Rounbehler Self arounbe@aol.com Henk Spaanenburg Mercury Computers hspaanenburg@mc.com Shane Hebert MSU shane@erc.msstate.edu Zhenqian Cui MPI Software Technology Inc. zcui@mpi-softtech.com Raghu Angadi MSTI angadi@mpi-softtech.com Michael Grieco ASEC/NSA mjgrieco@jswg.org James Lebak MIT/LL jlebak@ll.mit.edu Steve Paavola SKY Computers paavola@sky.com Dimitris Christodoulou SKY Computers dimitris@sky.com Rick Massary NAWCAD massaryrj@navair.navy.mil Chris Lirakis BBN Technologies clirakis@BBN.com Matt Daily BBN Technologies mdaily@bbn.com Thomas McMahon MSTI thom@mpi-softtech.com Srigurunath Chakravarthi MSTI ecap@mpi-softtech.com Anthony Skjellum (co-chair) MSTI tony@cs.msstate.edu SUMMARY There wers 1 official vote on a clarification to MPI/RT-1.0 document and several straw votes on the MPI/RT-1.1 proposals. 1. The meeting came to order at 8:30am on Wednesday February 3. 2. The clarification was requested on inserting and removal of NULL element into CSET. The following clarification was officially voted on: “Insertion of NULL object of any type into CSET does not do anything (no op) and returns MPIRT_SUCCESS without any changes to CSET. Removal of NULL object of any type from CSET returns an error MPIRT_ERR_CSET_MEMBER_NOT_FOUND.” The official vote was 11/0/0. 3. The proposal on Container Iterators (version 5) (Nathan) was discussed. The three options (two stated in the proposal and one by Greg email) of what happen to the container iterator while the container is modified where considered. The straw vote was taken to remove options 1 and 3 and leave only version 2. The vote passed 13/0/4. It was agreed to leave MPIRT_CSET_RETRIEVE_NEXT for backward compitability. The whole proposal was straw voted on and passed 14/0/2. Nathan agreed to convert the proposal into a chapter which will be merged with MPI/RT-1.0 document (after all the clarifications will be done) which will be a base for MPI/RT-1.1 document. 4. The proposal on Receptor Wait (version 3) was presented by Dennis. The following changes were agreed to for the proposal: A new section 14.5 for “timed waiting” will not be added. The “receptor” parameter is no longer optional, so MPIRT_RECEPTOR_NULL can not passed into MPIRT_RECEPTOR_WAIT. Separately, There was agreement to create an MPIRT_SLEEP functionality. The modified proposal passed a straw vote 18/0/3. Dennis agreed to update a proposal and identify all the changes need for it in MPI/RT-1.0 document. The bulk of the proposal will go into Chapter 4. 5. The sleep proposal was discussed. Functionality identical to the MPIRT_RECEPTOR_WAIT for the NULL receptor was agreed upon. The MPIRT_SLEEP function will provide that. The straw vote on the proposal passed 18/0/1. Dennis agreed to update a proposal and identify all the changes need for it in MPI/RT-1.0 document. The bulk of the proposal will go into Chapter 14. 6. The Unreliable channel proposal (version 1) by Arkady/Leonard was briefly discussed. It was agreed that a clear definition of what an unreliable channel is is needed as well as the requirements for the delivery of a message on it. The meaning of QoS for this type of channel also need to be clarified. No vote was taken on this proposal. 7. The Half channel proposal by Shane was discussed. It was agreed that the wait_function is not needed. The stop_function was renamed abort_function. The need of xfer_complete for the status of the transfer completion was discussed and will be added for the next version of the proposal. The discussion of relationship between a user, MPI/RT and device vendor of the “remote” endpoint of half channel was discussed. It was reduced to "who provides the half channel functions that are part of the half channel definition." Shane agreed to update the proposal for the next meeting. No votes were taken for this proposal. 8. The k-slack channel proposal by Shane was dicussed. The relationship between this specification and QoS was considered. A clear indication how this functionality will benefit the MPIRT users was requested. The need for this functionality for the MPI/RT-1.1 vs. MPI/RT-2.0 was also considered. Shane agreed to investigate these issue further for the next meeting. 9. The RT mode changes mode proposal (version 1) by Arkady was discussed. It was agreed that we will keep existing COMMIT and UNCOMMIT operations but they will be written in terms of the RT mode functionality for a single transaction at a time form. Since some object should be passed around from one mode to another without really being used but simply for their state preservation a FLAG for identifying these object in the “mode container” should be added. No sets operations should be allowed on all objects after admission test (even if they are not used in the current RT mode), since these objects promised to be unchanged for future transits. Since admission testing is a separate functionality now an Admit for RT mode should be added. There was a long discussion on a situation when an object is in a certain state on starting RT mode of the transition but need to be at a different state at the end of the transition for the new RT mode. The prime example of it is a buffer iterator initial buffers which may be in some other buffer iterator when transition starts. It was agreed that for this proposal we should state that this situation is possible and that users can prevent it by having empty initial buffer lists for buffer iterators. Users can insert buffers into buffer iterator themselves after transition. It was pointed out that the MPI/RT-1.0 should clearly state that the buffers from the initial buffer list are required to be in the buffer iterator only after COMMIT. All parts of the “global” object must specify the same information. Admission_test is synchronous and collective. Arkady agreed to update the proposal for the next meeting. No votes were taken on this proposal. 10. Three proposals for relaxing data descriptor requirements between buffer and buffer iterator and across a channel were presented by Steve and Shane. The proposals are as follows: a) relax the restriction that buffer dataspec and length must match the bufiter specs, b) allow variable length data transfers, and c) allow the transfer start address to be offset from the start of the buffer. Each proposal was first discussed in isolation. The implication of one proposal on the others and possible ,configurations of proposals were discussed. It was agreed that more details are need for that. Steve agreed to provide these for the next meeting. No votes were taken on this proposal. 11. The future meeting were considered. The next meeting was scheduled for June 8-10, Tuesday – Thursday, with the last day half day meeting in Moorestown New Jersey. Nathan Doss will host the meeting and will provide all the information. (Data Reorg will take place on Thursday second half of the day and Friday – June 10-11.) The other future meeting will be held in late August, October, and December. 12. There were many clarifications and corrections requested for the current MPI/RT-1.0 document: A. Defined an error that will be returned for commitable objects operations that are only defined for when an object is committed in the case when the object is not committed, MPIRT_OBJECT_NOT_COMMITTED. B. Document which errors each operation can return. C. Clarify what data is in buffer in the out-bufiter if the transfer not successful. How is implementation allowed to abort a transfer. D. Can objects (commitable) be decorated at any time? After Commit? E. Elaborate on scatter_channel (as it is done for gather_channel). F. Define a missing CVECTOR_NULL in text. G. All operations should return int. Fix returns for operations in 3.2.3. H. Dup should be defined for all object not just leaves of the object hierarchy. (implications for bindings) I. Fix C++ bindings. Does it have extra * or not? Check C bindings especially for container operations J. Define MPIRT_OBJECT_NULL. (static member of base class) K. What should is_equal operation return? (binding implications). What does it return for “comparison” for object_null, channel_null, pt_channel_null? L. What is the meaning of the group WORLD if INIT is not a synchronization point? Should we add an error MPIRT_ERR_TIMEOUT for commit to return when one of the group WORLD members was not created? M. Clarify which channel will transfer a buffer for shared bufiter for BEST_EFFORT QOS. N. Clarify the meaning of MPIRT_QOS_BEST_EFFORT for triggers. O. What is the requirement for MPIRT_QOS_BEST_EFFORT from COMMIT? Commit succeed even though there is no “bandwidth” for that best-effort channel? There is a time at the end of a very long period? P. There are several others that were send electronically to the exploder and not presented at the meeting. The editorial board chaired by Tony and Arkady will clean up MPI/RT-1.0 document and will Present an update document at the next meeting. The binding issue will be resolved within two weeks. 13. Mike Greco provided a written update on RT-CORBA and related OMG activities.