Overview
Hpcbench is a Linux-based network
benchmark evaluating the high performance networks such as Gigabit
Ethernet, Myrinet and QsNet. Hpcbench measures the network latency
and achievable throughput between two ends. Hpcbench is able to log
the kernel information for each test, which includes the CPU and
memory usage, interrupts, swapping, paging, context switches,
network cards' statistics, etc.
Hpcbench consists of three independent
packages that test UDP, TCP and MPI communications
respectively. A kernel resources tracing tool "sysmon" is also
included, whose output is similar to that of vmstat, but has more
information of network statistics.
Programming language: C, MPI.
Recommended OS and compiler: Linux (kernel 2.4/2.6) and gcc.
Features
UDP communication:
-
Microsecond resolution
-
Roundtrip time test (UDP ping)
-
Throughput test
-
Unidirectional and Bidirectional test
-
UDP traffic generator (can run
in single mode)
-
Fixed size and exponential test
-
Log throughputs and process resource usage of each test
-
Log system resources information of
client and server (Linux only)
-
Create plot configuration file for gnuplot
-
Configurable message size
-
Other tunable parameters:
-
Port number
-
Client and server's UDP socket buffer size
-
Message size
-
Packet (datagram) size
-
Data size of each read/write
-
QoS (TOS) type (Pre-defined six levels)
-
Test time
-
Test repetition
-
Maximum throughput restriction (Unidirectional and UDP traffic generator)
TCP communication:
-
Microsecond resolution
-
Roundtrip Time test (TCP ping)
-
Throughput test
-
Unidirectional and Bidirectional test
-
Blocking and non-blocking test
-
Fixed size and exponential test
- Linux sendfile() test
- Log throughputs and process resource usage of each test
- Log system resources information
of client and server (Linux only)
- Create plot configuration file for gnuplot
-
Configurable message size
- Other tunable parameters:
- Port number
- Client and server's TCP socket buffer (window) size
- Message size
- Data size of each read/write
- Iteration of read/write
- MTU (MSS) setting
- TCP socket's TCP_NODELAY option setting
- TCP socket's TCP_CORK option setting
- QoS (TOS) type (Pre-defined six levels)
- Test time
- Test repetition
MPI communication:
- Microsecond resolution
- Roundtrip Time test (MPI ping)
- Throughput test
- Unidirectional and Bidirectional test
- Blocking and non-blocking test
- Fixed size and exponential test
- Log throughputs and process resource usage of each test
- Log system resources information
of two processes (nodes) (Linux only)
- Create plot configuration file for gnuplot
- Tunable parameters:
- Message size
- Test time
- Test repetition
|