This experiment is designed to test the performance (events issued) and variability in service provided by Globus I/O when multiple sockets are active at once.
The experiment program consisted of a server (which did the measurements) and a number of client processes. The server engaged in a "pingpong" communication pattern with all of the clients simultaneously. The pingpong pattern is done until 1 second elapses, then the test continues on with the next message size.
The graphs below show the measurements obtained for this test. The data point for each message size is the average number of data ping-pongs which were completed before the 1 second expired. The error bars show the highest- and lowest-recorded number of ping-pongs for the experimental run. A higher average indicates that more events were dispatched by Globus I/O. A smaller range indicates that file descriptors were given fairer treatment by the event driver.
The "1.1.2 release" data is from the test program linked against an unmodified version of globus 1.1.2.
The "Modified to continue processing events after one is handled" data is from the test program linked against a version of globus with a modification to the core event driver to try to handle all descriptors which are indicated as "ready" by select().
The "Modified to continue processing events after one is handled and start with different FD numbers" includes the same change as the previous, with an additional modification of starting to process the results from the select() using a different starting point each time the event driver is called.
All tests were run with 5 contending client processes on the same mulitprocessor sparc.
Graphs follow for tests run with a multi-threaded runtime and single-threaded runtime for all processes.