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.