Performance/Benchmarking¶
Note
This section is inspired by my discusions with Isaac Ahlgren, who is working with me and Neil Klingensmith on research in context-based authentication and secure containerization. More to come!
Motivation¶
Understanding theoretical running time is greatly emphasized in CS curricula. This is vitally important but can be greatly improved by measuring actual performance (empirical/experimental analysis), which is a longstanding tradition in subdisciplines, e.g. high-performance and distributed computing systems. This section aims to help students understand the state-of-the-art for measuring CPU, I/O, and Networking (a form of I/O) performance.
Tools¶
The following benchmarks are common for analyzing CPU, I/O, and Network performnance.
Title |
Description |
URL |
---|---|---|
Cinebench |
Based on the Cinema 4D software, it tests the performance of CPUs at rendering 3D scenes. |
|
Geekbench |
A cross-platform benchmark that measures the CPU and memory subsystem performance through different workloads. |
|
Prime95 |
Although mainly used for stress testing CPUs (especially for overclockers), it’s also used for CPU benchmarking. |
|
SPEC CPU |
The Standard Performance Evaluation Corporation (SPEC) CPU benchmark is a well-respected benchmark for comparing high-performance CPUs in various applications. |
|
Linpack / Intel Linpack |
Linpack is a software library for performing numerical linear algebra on digital computers. The Intel-optimized version is often used for benchmarking high-performance computing systems. |
|
Iometer |
This is an I/O subsystem measurement and characterization tool for single and clustered systems. |
|
CrystalDiskMark |
A disk benchmark software that analyzes the drive’s read and write speeds across multiple data block sizes. |
|
ATTO Disk Benchmark |
ATTO Disk Benchmark measures storage systems’ performance with various transfer sizes and test lengths for reads and writes. |
|
fio |
It is a versatile I/O workload generator that can be used both for benchmarking and for verifying storage subsystems. |
|
HD Tune |
HD Tune is a hard disk / SSD utility that includes various functions like measuring the drive’s performance, scanning for errors, checking the health status. |
|
iPerf / iPerf3 |
iPerf is a widely used network testing tool that can create TCP and UDP data streams and measure the throughput of a network that is carrying them. |
|
Netperf |
Netperf is another benchmark that can be used to measure the performance of different types of networking. |
|
Ping and Traceroute |
While they are not benchmarks in the traditional sense, ping and traceroute are often used in network diagnostics to measure round-trip time for packets and to trace the route packets take to reach a destination. |
Built into most operating systems |
CPU Benchmarking¶
Top CPU-Only Benchmarking Tools
Cinebench: Based on the Cinema 4D software, it tests the performance of CPUs at rendering 3D scenes.
Geekbench: A cross-platform benchmark that measures the CPU and memory subsystem performance through different workloads.
Prime95: Although mainly used for stress testing CPUs (especially for overclockers), it’s also used for CPU benchmarking.
SPEC CPU: The Standard Performance Evaluation Corporation (SPEC) CPU benchmark is a well-respected benchmark for comparing high-performance CPUs in various applications, often used in professional and scientific computing contexts.
Linpack / Intel Linpack: Linpack is a software library for performing numerical linear algebra on digital computers. The Intel-optimized version is often used for benchmarking high-performance computing systems, focusing on CPU and memory performance.
I/O Benchmarking¶
Top I/O Benchmarking Tools
Iometer: This is an I/O subsystem measurement and characterization tool for single and clustered systems. It’s widely used by storage vendors and industry analysts to benchmark network and local storage.
CrystalDiskMark: It is a disk benchmark software that analyzes the drive’s read and write speeds across multiple data block sizes.
ATTO Disk Benchmark: ATTO Disk Benchmark measures storage systems’ performance with various transfer sizes and test lengths for reads and writes.
fio (Flexible I/O Tester): It is a versatile I/O workload generator that can be used both for benchmarking and for verifying storage subsystems.
HD Tune: HD Tune is a hard disk / SSD utility that includes various functions like measuring the drive’s performance, scanning for errors, checking the health status, and securely erasing all data.
Network Benchmarking¶
Top Network Performance Benchmarking Tools
iPerf / iPerf3: iPerf is a widely used network testing tool that can create TCP and UDP data streams and measure the throughput of a network that is carrying them. It’s very effective for testing bandwidth and quality of a network link.
Netperf: Netperf is another benchmark that can be used to measure the performance of different types of networking. It provides a number of predefined tests such as TCP and UDP throughput tests and can provide detailed information about network latency and jitter.
Ping and Traceroute: While they are not benchmarks in the traditional sense, ping and traceroute are often used in network diagnostics to measure round-trip time for packets and to trace the route packets take to reach a destination. They can provide useful information for understanding network latency and routing issues.