EVPath
Functions
Performance-query functions

These functions intrusively test the characteristics of a connection, measuring available bandwidth and current round-trip latency. More...

Functions

long CMprobe_latency (CMConnection conn, long msg_size, attr_list attrs)
double CMprobe_bandwidth (CMConnection conn, long size, attr_list attrs)
double CMregressive_probe_bandwidth (CMConnection conn, long size, attr_list attrs)

Detailed Description

These functions intrusively test the characteristics of a connection, measuring available bandwidth and current round-trip latency.


Function Documentation

long CMprobe_latency ( CMConnection  conn,
long  msg_size,
attr_list  attrs 
)

Probe the approximate round-trip latency on a particular connection by sending a burst of data.

This is an intrusive probe.

Parameters:
connThe CMConnection to be tested.
msg_sizeThe size of message to be sent in the test. (Latency varies dramatically with the message size.)
attrsCurrently this parameter is ignored, but it *should* allow control over the number of messages sent.
Returns:
The return value is in units of microseconds.
Note:
CM measures latency by sending a message and waiting for a response. This round-trip is called a "ping". In the current implementation, CM performs 2 ping operations to "warm up" the connection. It then performs 5 additional ping operations, measuring the time required for each. The return value is the average of these final operations.
double CMprobe_bandwidth ( CMConnection  conn,
long  size,
attr_list  attrs 
)

Probe the available bandwidth on a particular connection by sending a burst of data.

This is an intrusive probe.

Parameters:
connThe CMConnection to be tested.
sizeThe size of message to be sent in the test. (Bandwidth varies dramatically with the message size.)
attrsCurrently this parameter is ignored, but it *should* allow control over the number of messages sent.
Returns:
The return value is in units of MBytes per second.
Note:
In the current implementation, CM sends $N$ messages to probe available bandwidth, where $N$ is calculated as $100000/size$. That is, CMprobe_bandwidth sends about 100Kbytes of data.
double CMregressive_probe_bandwidth ( CMConnection  conn,
long  size,
attr_list  attrs 
)

Probe the available bandwidth on a particular connection by sending several streams and do a linear regression.

This is an intrusive probe.

Parameters:
connThe CMConnection to be tested.
sizeThe size of message to be sent in the test. (Bandwidth varies dramatically with the message size.)
attrsCurrently this parameter is ignored, but it *should* allow control over the number of messages sent.
Returns:
The return value is in units of KBytes per second.
Note:
In the current implementation, CM sends $N$ messages to probe available bandwidth, where $N$ is calculated as $100000/size$. That is, CMprobe_bandwidth sends about 100Kbytes of data.