MemSpd2K.zip Memory PC Benchmark
Category |
Cache Benchmark, Memory Benchmark with calculations |
Metrics |
Megabytes Per Second at different memory demands |
Contents |
Benchmark, description and source code |
Results |
See MemSpd2K Results.htm
View
|
Linux variation See |
linux_openmp.tar.gz containing benchmarks and source code
compiled using Linux GCC with 32-Bit and 64-Bit versions.
|
- The tests are run with a range of data sizes to provide measurement via L1 cache, L2 cache and RAM
- They have moderate processing using 32 bit integers, 32 bit single precision and 64 bit double precision floating point
- The way in which memory is allocated highlighted a severe performance problem on the first Intel P4 CPUs
|

RandMem.zip PC Serial/Random Access Memory PC Benchmark
Category |
Cache Benchmark, Random Access Memory Benchmark |
Metrics |
Megabytes Per Second at different memory demands |
Contents |
Benchmark, description and source code |
Results |
See RandMem Results.htm
View
|
Linux See |
memory_benchmarks.tar.gz containing benchmarks and source code
compiled using Linux GCC with 32-Bit and 64-Bit versions.
|
- Demonstrates cache and memory speeds with indexing overheads using serial and random access
- Four tests run are serial read, random read, serial read/write and random read/write using 32 bit integers and 64 bit double precision floating point numbers
- Random access produces relatively slow performance where memory bus burst transfers are 64 bytes (or more)
- RandMP, a dual core CPU variety, is also available From Here
|

FFTGraf.zip FFT Benchmark For PCs
Category |
FFT Benchmark, CPU Floating Point Benchmark, Cache Benchmark, Memory Benchmark |
Metrics |
Milliseconds per pass at different FFT sizes |
Contents |
Original, optimised and SSE/SSE2/3DNow benchmarks, description and all source code |
Results |
See FFTGraf Results.htm
View
|
- Runs code for Fast Fourier Transforms (FFTs) of size 1024 (1K) to 1048576 (1024K) using single and double precision floating point
- Produces performance information using data from caches or memory
- Much data access is on a skipped sequential or random basis producing relatively slow performance where memory burst reading is involved
- Version 1 - original optimised C/C++ code
- Version 2 - further optimised for more efficient use of caches and assembly code to make more effective use of burst data
- Version 3 - assembly code converted to use SSE, SSE2 and 3DNow instructions
- There are also 64 bit versions From Here
|
Example graph

Single precision and double precision
The graph shows size plotted against milliseconds divided by size in K.
|

On-Line Benchmarks
See details and run from Online Benchmarks.htm
File space was limited on the original server used for these benchmarks, so the facility to run tests without downloading and unzipping was avoided. These benchmarks are:
- Whetstone Benchmark Java Version - This Classic Benchmark measures processor speed, executing floating point and integer calculations. Results can be compared with other PC CPUs and computers from the distant past.
- Loading Time Images - These are single images, sized 100 kBytes and 1 MBytes, in uncompressed BMP, compressed GIF and compressed JPG formats. The smaller sizes are for use on dial-up connections.
- Loading Time Numerous Icons - The tests load either 100 or 400 GIF icon files, each sized 70 Bytes. These incur heavy and varying overheads depending on system hardware, operating system, connection speed and type of browser.
- See JavaDraw for more On-line Benchmarks
|

Disk and Peripherals Tests
DiskGraf.zip DiskGraf and CDDVDSpd Storage Media PC Benchmarks
Category |
DiskGraf - Disk Benchmark, DMA/Bus Speed Benchmark, Other Storage Media Benchmark, Network Speed Benchmark |
Metrics |
Megabytes Per Second serial write/read and DMA read at different block sizes then milliseconds per read random access, CPU utilisation |
Contents |
Benchmark, description, program to display graphs from log file data plus DiskGraf Source Code |
Results |
See DiskGraf Results.htm
View
|
Linux See and Details |
linux_disk_usb_lan_benchmarks.tar.gz containing benchmarks and source code
compiled using Linux GCC with 32-Bit and 64-Bit versions.
|
- This measures disk write and read speeds of multiple files at different block sizes, producing graphs of speed and CPU utilisation
- Also it does the same for bus/DMA speeds, by repetitively reading data from the disk’s buffer, and measures random reading time of various sized files
- The benchmark can also be used to measure speeds of other peripherals such as USB or Firewire disks, Compact Flash Memory Card Readers or network drives
- There is also a 64 bit version From Here
|

IOSpeed Storage Media PC Benchmark
Category |
IOSpeed - Disk Benchmark, DMA/Bus Speed Benchmark, Other Storage Media Benchmark, Network Speed Benchmark, as DiskGraf + CDDVDSpd and same as above Linux tests. |
Metrics |
Megabytes Per Second serial write/read and DMA read, milliseconds per write and read random access, then time to write, read and delete numerous small files |
Contents |
Benchmark, Description, Source Code |
Results |
See IOSpeed.htm
View
|
- Measures speed writing and reading five files each of 8 MB, 16 MB and 32 MB
- Measures writing and reading speed of cached files
- Repetitively reading same data to measure bus speed
- Measures response time random reading and writing 1 KB blocks from data size between 2 MB and 128 MB
- Speed and running time is measured writing, reading and deleting 500 small files, between 2 KB and 64 KB
|

PC Peripherals
DiskGraf.zip CDDVDSpd Storage Media PC Benchmark
Category |
CDDVDSpd - CD Benchmark, DVD Benchmark, LAN Benchmark, USB Benchmark, Firewire Benchmark, Compact Flash Benchmark, Disk Benchmark |
Metrics |
Megabytes Per Second and Run Time writing/reading/deleting large and small files |
Contents |
Benchmark, description and source code |
Results |
See CDDVDSpd Results.htm
View
|
- Option to read files of 1 MB+ from any source
- Option to write, read and delete one large and 520 small files
- Large/small file size selectable between 1MB/2KB to 1GB/2MB
- Writing speed of small files can be excessively slow on some devices e.g. Compact Flash Memory via Windows XP
- There is also a 64 bit version From Here
|

PC System Tests
BMPSpd.zip Image Processing System PC Benchmark
Category |
CPU Benchmark, Graphics Benchmark, Memory Benchmark, Disk Benchmark, Paging Benchmark |
Metrics |
For increasing image sizes - seconds to edit/enlarge, save, load/display and rotate; milliseconds per repeat and Megabytes Per Second scrolling |
Contents |
Benchmark, description and source code |
Results |
See BMPSpeed Results.htm
View
|
Linux See and Details |
linux_image_processing_benchmarks.tar.gz containing benchmarks and source code
compiled using Linux GCC with 32-Bit and 64-Bit versions.
|
The benchmark generates BMP files of 0.5, 1, 2, 4 etc. MB up to 512 MB and carries out the following tests:
- Enlarge with blur editing (copy with add/divide instructions) and display
- Save enlargement to disk
- Load from disk, format and display
- Copy from memory scrolling
- Make an extra copy rotating 90 degrees and display
- Extra copies for editing can result in memory demands of up to 2.5 times RAM size, leading to paging to/from disk
- There is also a 64 bit version From Here
|

RAMFill.zip Memory and Disk Occupancy/Test Programs
Category |
System testing aids |
Metrics |
Milliseconds to write and read/compare |
Contents |
8 programs and description, 4 to occupy RAM and 4 to use disk space |
- Data size is 4, 16, 64 and 256 MB
- The programs also carry out simple tests to check data for correctness
- Disk test data for reading can be resident in the RAM based Windows File Cache space
- Can be a useful test of system paging using multiple copies
|

PC Graphics Tests
All the graphics packages contain the benchmark which runs at the current screen settings and an optional driver program that changes display size and colour settings and runs the tests at each setting.
VideoWin.zip Windows Graphics PC Benchmark
Category |
Graphics Benchmark Windows Functions |
Metrics |
Millions of Pixels Per Second and Frames Per Second |
Contents |
Benchmark, Description and Source Code |
Results |
See VideoWin Results.htm
View
|
The first six tests use a small display area and the last two are full screen.
- BitBlt copy a pattern from memory
- Draw circles
- Fill space with colours
- Set pixel colours
- Draw lines
- BitBlt copy a pattern from one part of the screen to another
- Draw 10000 random length/direction lines
- Draw 1000 ellipses as a 3D like object
- There is also a 64 bit version From Here
|

VideoDD1.zip DirectDraw PC Benchmark
Category |
Graphics Benchmark DirectDraw Functions |
Metrics |
Millions of Pixels Per Second and Frames Per Second |
Contents |
Benchmark, description and source code |
Results |
See DirectDraw Results.htm
View
|
- DirectDraw BltFast from an off screen surface in video RAM to the screen primary surface
- DirectDraw Blt (with stretch) from an off screen surface in video RAM to the screen primary surface
- DirectDraw Blt with COLORFILL to the screen primary surface
- As Test 3 but using DirectDraw WaitForVerticalBlank (VSYNCH) to clamp the speed to the screen refresh Hz
- DirectDraw BltFast from a large surface in main RAM to the screen primary surface
- There is also a 64 bit version From Here
|

VideoD3D.zip Direct3D PC Benchmark
Category |
Graphics Benchmark Direct3D Functions |
Metrics |
Frames Per Second |
Contents |
Benchmark, description, source code and texture files |
Results |
See Direct3D Results.htm
View
|
- Rotating egg, solid shading
- Rotating egg, wireframe
- Rotating egg, solid with WaitForVerticalBlank (VSYNCH) set to demonstrate monitor refresh Hz
- Wireframe drawing of 500 cubes within cubes, generating 6688 triangles per frame
- The last four tests involve a camera moving up and down a tunnel with increasing numbers of moving objects, textures and lighting effects.
This produces up to 2220 triangles per frame
The Direct3D Retained Mode used for this benchmark is not supported on the latest compilers.
In order to test a 64 bit CPU with D3D, a variety was produced using DirectX 9 functions,
including some of the same tests as above. A 32 bit variety was compiled and is also in Video64.zip
and described in 64 Bit Graphics Tests.htm From Here.
This can also be used to check the availability of Pixel Shader 2.0 and Vertex Shader 2.0.
|

TestOGL.zip VideoGL1 OpenGL PC Benchmark
Category |
Graphics Benchmark OpenGL Functions |
Metrics |
Frames Per Second |
Contents |
Benchmark, description, source code and texture files |
Results |
See OpenGL Results.htm
View
|
Linux See and Details |
linux_opengl_benchmarks.tar.gz containing benchmarks and source code
compiled using Linux GCC with 32-Bit and 64-Bit versions. Also, see below.
|
- The first six tests are similar to those in VideoD3D with a camera moving up and down a tunnel with increasing numbers of moving objects and textures
- The last two tests represents a real application for designing kitchens. The first is in wireframe format, drawn with 23,000 straight lines. The second has colours and textures applied to the surfaces, the textures being obtained from photographs of ceramic tiles
- There is also a 64 bit version From Here
- The Linux version has four of the tunnel tests and both those for kitchen design, but texture sizes are different
The original VideoGL1 uses OpenGL functions initiated through Windows functions. The Linux version uses GLUT, OpenGL Utility Toolkit, with identical functions. GLUT works across all PC and workstation platforms. So, identical code was compiled to run under Windows. The execution files are included in the tar.gz file.
|

Java PC Benchmarks.zip Including JavaDraw Benchmarks
Category |
Graphics Benchmarks On-Line and Off-Line Java Drawing Functions |
Metrics |
Frames Per Second |
Contents |
Benchmarks, source codes and image files, also off-line Java Whetstone Benchmark files |
Results |
See javadraw.htm
View
|
The benchmarks are in JavaDraw.class files that can be translated and run on both Windows and Linux based systems. The off-line versions are run from a Windows Command Prompt or Linux Terminal. The on-line varieties are run via .HTM files stored on a host system.
Six 10 second tests are run:
1. Display PNG Bitmap Twice Pass 1 2. Display PNG Bitmap Twice Pass 2
3. Plus 2 SweepGradient Circles 4. Plus 200 Random Small Circles
5. Plus 320 Long Lines 6. Plus 4000 Random Small Circles
|

OpenMPMFLOPS.zip OpenMP Parallel Computing Benchmark
Category |
Parallel Computing Benchmark - using multiple processors automatically |
Metrics |
Floating Point MegaFLOPS and GigaFLOPS |
Contents |
Benchmark, sample results and source code |
Description |
See OpenMP MFLOPS.htm
View
Includes links to free compatible Microsoft C++ compilers.
|
Linux See |
linux_openmp.tar.gz containing benchmarks and source code
compiled using Linux GCC with 32-Bit and 64-Bit versions.
|
OpenMP is a system independent set of procedures and software that arranges automatic parallel processing of shared memory data when more than one processor is provided. This option is available in the latest Microsoft C++ compilers.
The benchmark executes the same functions, using the same data sizes, as the
CUDA Graphics GPU Parallel Computing Benchmark (See below).
Varieties provided are:
- 64-Bit Compilation for multiple or single CPUs, using SSE instructions
- 32-Bit Compilation for multiple or single CPUs, using original PC i387 instructions
- 32-Bit Compilation for single CPU only, using SSE instructions
The benchmark has been run using 64 Bit Windows 7 and earlier 64 Bit versions of Windows. It demonstrates that a single program can provide significant performance gains with dual and quad core processors.
The ZIP file now contains other benchmarks converted to run using OpenMP and described in
OpenMP Speeds.htm.
Observations are that performance with smaller data arrays can be extremely slow, due to high startup overheads, and wrong numeric results can be produced with careless use of OpenMP directives.
|

GigaFLOPS-Benchmarks.zip - New MP MFLOPS, CUDA, OpenMP and Qpar Tests
Category |
Parallel Computing Benchmarks - using multiple Cores/CPUs or GPUs |
Metrics |
Floating Point MegaFLOPS and GigaFLOPS |
Contents |
Benchmarks, sample results and source code |
Description |
See GigaFLOPS Benchmarks.htm
View
|
Linux Versions |
Details can be found Here
|
In this series, four types of benchmarks are available, using OpenMP and Qpar, Microsoft’s proprietary equivalent, both with automatic multiprocessing, CUDA for GeForce graphics, and MPMFLOPS, CPU benchmark with multithreading (up to 64 threads). All carry out the same calculations of the form x[i] = (x[i] + a) * b - (x[i] + c) * d + (x[i] + e) * f with 2, 8 or 32 operations per input data word. They also check the numeric result for consistency, and this identifies differences in numeric calculations on using the various instruction sets.
See above for more information on the OpenMP benchmark and below for CUDA.
|

CudaMFLOPS1.zip Graphics Parallel Computing Benchmark
Category |
Parallel Computing Benchmark - using the numerous graphics processing elements Graphics Processor Reliability/Burn-in Test |
Metrics |
Floating Point MegaFLOPS and GigaFLOPS |
Contents |
Eight Benchmarks - Single and Double Precision, 32 bit and 64 bit, CUDA 2.3 and 3.1, sample results and source code. |
Description |
See CUDA1.htm
View
Includes links to free CUDA software and compatible C++ compiler.
See also CUDA2.htm for Double Precision results
View
See also CUDA3 x64.htm for details of versions produced using CUDA Toolkit 3.1 and compiled for 64 bit PCs
View
|
Linux See |
linux_cuda_mflops.tar.gz containing benchmarks and source code
compiled using Linux GCC with 32-Bit and 64-Bit versions.
|
CUDA, from nVidia, provides C/C++ extension programming functions to use GeForce graphics processors for general purpose computing. The graphics can have tens to hundreds of processing elements that can be easily used for parallel computing. The first benchmark, CudaMFLOPS1, demonstrates some best and worst case performance using varying data array size and increasing processing instructions per data access.
A double precision version is now available where most but not all speeds are much slower than using single precision.
There are three scenarios:
- New Calculations - Copy data to graphics RAM, execute instructions, copy back to host RAM
- Update Data - Execute further instructions on data in graphics RAM, copy back to host RAM
- Graphics Only Data - Execute further instructions on data in graphics RAM, leave it there
The benchmark program can also be used as a graphics processor reliability/burn-in test via a command parameter specifying running time. Numeric results are checked for consistent values and errors are reported
- Example Results.
|

Performance Monitoring
Benchmarks and other tests were carried out whilst running Windows Perfmon performance logging to measure CPU and I/O activity on a one second sampling basis.
For such as disk and LAN activity, measurements used were bytes read and written along with reads and writes (blocks transferred), or packets sent and received over a network. The statistics help to explain why performance is different from expectations.
|
File |
Description |
|
Monitor1.htm |
USB and Firewire disk and CPU activity copying files using Copy/Paste, Xcopy and Robocopy via 64-Bit Vista, XP x64 and 32-Bit Vista, using Optimise For Performance, Optimise For Quick Removal with consideration of the use of Windows File Cache. |
View Report
|
Monitor2.htm |
Benchmark results plus disk and CPU activity copying files via 64-Bit Vista, using one of the current fastest disk drives via eSATA and USB connections. |
View Report
|
Monitor Gigabit LAN.htm |
Benchmark results plus LAN, disk and CPU activity copying files and running benchmarks over Gigabit LAN connections, between PCs with 64-Bit Windows 7, 64-Bit Vista and 64-Bit Windows XP. |
View Report
|

PC Reliability and Burn-in Tests
Diagnostic test programs tend to check all functions but at a slow rate and via DOS. These tests run via Windows and exercise the hardware at high speeds using a wide variety of number values or data patterns with results being checked for correctness. All Benchmarks/Tests can be run via command lines to log results and exit automatically. A series of commands in a BAT file can produce a comprehensive system burn-in test, in some cases for more than one CPU. See documentation in ZIP files and Results below.
|
File |
Description |
|
Burn9XNT.zip |
CPU floating point test and disk/buffer/bus test |
Download
|
BusSpd2K.zip |
Uses 64 bit MMX instructions to test CPU/L1 cache, L2 cache or RAM. |
More Details
Download
|
SSE3DNow.zip |
Uses SSE, SSE2 or 3DNow instructions and random floating point numbers to test CPU/L1 cache, L2 cache or RAM. High CPU temperatures can be produced. |
More Details
Download
|
BenchNT.zip |
The Livermore Loops floating point benchmark (CPU/cache test) can be run in Reliability Testing Mode. |
More Details
Download
|
Graphics |
Single tests from these benchmarks can also be selected and run for extended periods. Tests using CUDA for nVidia graphics are also available. |
More Details
CUDA Details
|
More64bit.zip |
BusSpd2K and SSE3DNow Reliability Tests have been modified and compiled for 64 bit operation as IntBurn64 and SSEburn64. These can also be used as dual core or quad core CPU burn-in and performance tests. |
Details -
Dual Core Quad Core
Download
|
Video64.zip |
A new D3D benchmark, using DirectX 9 functions, has been produced, with 32 and 64 bit versions. Included are facilities for use as burn-in tests in conjunction with the above CPU programs. |
More Details Burn-in Tests
Download
|
Burnin32.htm |
Sample results with temperature graph, including dual core processors. |
View
|
Burnin64.htm |
Sample results Windows XP x64 and 64-Bit Vista with temperature graph, including dual core processors. |
View
|
Burnin4cpu.htm |
Sample results 64-Bit Windows 7 with temperatures and performance gains using a quad core processor. |
View
|
linux burn-in apps.htm |
Program details and sample results 32-Bit and 64-Bit Ubuntu with temperatures and performance gains using various processors. |
View
Download
|

Paging Tests
Programs compiled for 32 and 64 bit working are available to demonstrate maximum memory that can be allocated for a single data array within Virtual Memory and measure associated data transfer rates with paging to/from disk. They are normally run initially with lower demands with little or no paging. Other benchmarks can show the impact of paging on a simulated real application handling bitmap images.
Latest report is for Vista tests using ReadyBoost, showing significant performance improvements with heavy paging.
File |
Description |
|
BusSpd2K.zip |
Uses one of the twelve Reliability Tests to minimise testing time. |
More Details
Download
|
More64bit.zip |
For IntBurn64, the 64 bit version of BusSpd2K Reliability Tests. |
Download
|
BMPSpd.zip |
Image Processing Benchmark with large bitmaps. |
More Details
Download
|
Video64.zip |
For BMPSpeed64 64 bit version. |
More Details
Download
|
Paging.htm |
Sample results Windows XP, 2000, XP x64, 64-Bit Vista and Windows 7 |
View
|
ReadyBoost.htm |
ReadyBoost tests with heavy paging on 64-Bit Vista |
View
|
RAMFill.zip |
Simple programs that can more than fill RAM |
More Details
Download
|

Program Source Code
As shown under Files, most zip files now include C++ source code, some having assembly code using SSE, SSE2 and 3DNow instructions. Assembly code using standard instructions is
included in the source for WhatCPU, MemSpd2K, BusSpd2K and FFTGraf.
Whetstone Benchmark source codes are in Whets.bas (Basic), Whetsvb.txt (Visual Basic), WhetsVB.xls (Visual Basic/Excel Spreadsheet), Whets.for and Whetd.for (Single and double precision Fortran), OnLineTests.zip (HTML/Java).
There is also Whets.c, a general C/C++ version, with timers for various computer systems.
These can be obtained via OldOnes.htm. See New Programs for various benchmark source codes as compiled to run at 64 bits. Some of these also include 64 bit assembly code.

Historic Data and Older Benchmarks
Speed measurements provided are in terms of Kilo (thousands) of Instructions Per Second (KIPS), Millions of Instructions Per Second (MIPS) and/or Millions of Floating point Operations Per Second (MFLOPS). CPU MHz is also shown, when available.
|
File |
Description |
|
CPUMix.htm |
Processor speed calculations in KIPS, based on mixes of instructions for commercial and scientific applications for some computers from pre-1960 to the 1970's. |
View
|
MIPS.htm |
Published speed claims for more than 2000 computers produced between 1980 to 1996. Costs and other configuration details are also shown.
Details of IBM’s larger mainframes and PC CPUs up to 2004 have also now been included in the latter. |
View
|
Whetstone.htm |
Whetstone benchmark results mainly 1970's to 1990's. From 1980's results include derived MIPS and MFLOPS ratings. An extra section has been added just for PCs, to include results up to 2006. |
View
|
OldOnes.htm |
Numerous older files including CPU, memory, disk and graphics benchmarks to run via DOS and OS/2, older versions with additional facilities, source codes and results. |
View
|

About Roy
E-Mail: roy@roylongbottom.org.uk
Roy Longbottom (born 1935) joined an organisation that later became the Central Computer and Telecommunications Agency (CCTA), the British Government computer purchasing department, in 1960.
He was initially a technical consultant on computer reliability. This was followed by a period of responsibility for planning and supervising acceptance trials at departments and universities, then by added responsibility for evaluating new scientific computers (including the first supercomputers). Many of the projects included benchmarks.
He then moved on to become a full time Performance Engineer/Consultant with work including sizing of systems, benchmarks and trouble shooting for commercial applications. These included huge mainframe based on-line systems, numerous UNIX configurations and, later, PC networks.
His first involvement in programming was during the acceptance trials period, when he wrote a suite of programs (in Fortran) to exercise all of the hardware via Operating Systems, including checking for
correct results. These were used successfully during hundreds of pre-delivery and on-site acceptance tests. Some of the programs (mainly
FOPRxx processor tests) were adopted by various suppliers for inclusion in their development tests.
His book "Computer System Reliability" was published (Wiley) in 1980.
During the 1980's, for personal gratification, he wrote (and sold) software for the Z80 based Sinclair Spectrum (T/A ROYBOT), the first product being an assembler. This was followed by a sort of Operating System, a graphics package and database manager.
He obtained an early retirement in 1993 then, for a period, acted as a paid consultant (ROYBOT Ltd.). He also spent time on learning "C", Visual Basic and Java to produce versions of the Whetstone benchmark in these languages specifically for PCs. This was followed by the same PC format versions of the other Classic Benchmarks.
In 1997, he arranged for the Classic Benchmarks to be uploaded to Compuserve's Benchmark and Standards Forum. The other benchmarks were written and uploaded during the following period. The material was transferred to the PC Hardware (PCHW) Forum in 1999, then to the new Compuserve PC Hardware Forum in 2004.
Besides producing this site Roy Longbottom's PC Benchmark Collection (New Home), Roy has created others for family and friends:
Roy Longbottom Ancestry - roylongbottom.org.uk/ancestry/
Son’s Ceramic Tile Showroom - artceramica.co.uk
Friend's Cleaning Business - roomstoclean.com
Friend's Cleaning Business - commsroomcleaning.com
Artist Friend - rayhardcastleart.com

End - Updated January 2016
|
|