Imbench is a micro-benchmark suite designed to focus on the basic building blocks of common system applications, such as databases, simulations, software development, and networking. The benchmarks are designed to measure system latency and bandwidth for data movement between the processor and memory, network, file system, and disk. The goal is to produce numbers that real applications can reproduce, rather than marketing performance numbers. The benchmarks focus on latency and bandwidth because performance issues are usually caused by these factors. Each benchmark captures a unique performance problem present in one or more important applications.
Imbench was developed to identify and evaluate system performance bottlenecks in machines from 1993-1995. It is portable and comparable across a wide range of Unix systems. It has been run on AIX, BSD, HP-UX, IRIX, Linux, FreeBSD, NetBSD, OSF/1, Solaris, and SunOS, and part of the suite has been run on Windows/NT. Imbench is freely distributed under the Free Software Foundation's General Public License with the restriction that results may be reported only if the benchmarks are unmodified.
Imbench includes a database of results from systems current as of late 1995. The benchmarks are written using standard, portable system interfaces and facilities commonly used by applications. The benchmarks measure data transfer between processor, cache, memory, network, and disk. They do not measure other parts of the system, such as the graphics subsystem, nor are they a MIPS, MFLOPS, throughput, saturation, stress, graphics, or multiprocessor test suite. They are frequently run on multiprocessor systems to compare their performance against uniprocessor systems, but they do not take advantage of any multiprocessor features.
The benchmarks are designed to be simple, portable, and accurate in measuring a wide variety of operations crucial to performance on today's systems. They have been used to discover and correct critical performance problems. Imbench has uncovered a problem in Sun's memory management software that made all pages map to the same location in the cache, effectively turning a 512KB cache into a 4KB cache.
The benchmarks are designed to measure the proper sizing of various benchmark parameters to ensure they measure the right component of system performance. They are written using standard, portable system interfaces and facilities. They are compiled with optimization -O except for benchmarks that calculate clock speed and context switch times, which must be compiled without optimization. They are linked using the default manner of the target system.
The benchmarks are designed to measure memory bandwidth, IPC bandwidth, and cached I/O bandwidth. They measure the rate at which a particular facility can move data. They measure the ability to copy, read, and write data over a varying set of sizes. They measure the data movement ability of different facilities, including library bcopy, hand-unrolled bcopy, direct-memory read and write, pipes, TCP sockets, the read interface,Imbench is a micro-benchmark suite designed to focus on the basic building blocks of common system applications, such as databases, simulations, software development, and networking. The benchmarks are designed to measure system latency and bandwidth for data movement between the processor and memory, network, file system, and disk. The goal is to produce numbers that real applications can reproduce, rather than marketing performance numbers. The benchmarks focus on latency and bandwidth because performance issues are usually caused by these factors. Each benchmark captures a unique performance problem present in one or more important applications.
Imbench was developed to identify and evaluate system performance bottlenecks in machines from 1993-1995. It is portable and comparable across a wide range of Unix systems. It has been run on AIX, BSD, HP-UX, IRIX, Linux, FreeBSD, NetBSD, OSF/1, Solaris, and SunOS, and part of the suite has been run on Windows/NT. Imbench is freely distributed under the Free Software Foundation's General Public License with the restriction that results may be reported only if the benchmarks are unmodified.
Imbench includes a database of results from systems current as of late 1995. The benchmarks are written using standard, portable system interfaces and facilities commonly used by applications. The benchmarks measure data transfer between processor, cache, memory, network, and disk. They do not measure other parts of the system, such as the graphics subsystem, nor are they a MIPS, MFLOPS, throughput, saturation, stress, graphics, or multiprocessor test suite. They are frequently run on multiprocessor systems to compare their performance against uniprocessor systems, but they do not take advantage of any multiprocessor features.
The benchmarks are designed to be simple, portable, and accurate in measuring a wide variety of operations crucial to performance on today's systems. They have been used to discover and correct critical performance problems. Imbench has uncovered a problem in Sun's memory management software that made all pages map to the same location in the cache, effectively turning a 512KB cache into a 4KB cache.
The benchmarks are designed to measure the proper sizing of various benchmark parameters to ensure they measure the right component of system performance. They are written using standard, portable system interfaces and facilities. They are compiled with optimization -O except for benchmarks that calculate clock speed and context switch times, which must be compiled without optimization. They are linked using the default manner of the target system.
The benchmarks are designed to measure memory bandwidth, IPC bandwidth, and cached I/O bandwidth. They measure the rate at which a particular facility can move data. They measure the ability to copy, read, and write data over a varying set of sizes. They measure the data movement ability of different facilities, including library bcopy, hand-unrolled bcopy, direct-memory read and write, pipes, TCP sockets, the read interface,