Essays/JKT Benchmark

From J Wiki
Jump to navigation Jump to search

The JKT benchmark is the time to generate and invert a 50 by 50 matrix of random integers between 0 and 1000. In J, that would be the result of 6!:2 '%.?50 50$1000' . Most of the following numbers come from an e-mail from Eugene McDonnell to Roger Hui, cc David Steinbrook, Joey Tuttle, and Ken Iverson on 1990-07-16.

    System Seconds
IBM PC, 8088, 4.77 MHz, MS/DOS, no math chip 2801.21
IBM XT, 8088, 4.77 MHz, MS/DOS 1680
Apple Macintosh Plus, 68000, 7.8336 MHz, MacOS, no math chip 1207.08
Atari ST, 68000, Mac Simulator, no math chip  935.1
Packard-Bell PC/AT, MS/DOS, no math chip  525.495
QSP Super Micro 286AT, 8 MHz MS/DOS, no math chip  521.099
AT&T 3B1, 68010, 10MHz, UNIX, no math chip  442.332
IBM PS/2 55, 386 SX, 20 MHz, MS/DOS, no math chip  341.044
IBM PS/2 70, 386, 25 MHz, MS/DOS  230.879
Apple Macintosh IIx, 68030, 16.67 MHz, MacOS  227.25
Apple Macintosh SE/30, 68030, 16.67 MHz, MacOS  201.55
Sun 3/60, 68020, 16.67 MHz, UNIX  162.027
Philips P9070, 68020, 16.67 MHz, UNIX  158
Apple Macintosh IIci, 68030, 25 MHz, MacOS  152.35
Sun 386i/250, 25 MHz, DOS window PC/AT emulator  111.758
Apple Macintosh IIfx, 68030, 40 MHz, MacOS   76.83
Sun 386i/250, 25 MHz, UNIX   73.947
Sun Sparcstation 1+ (Sun 4/65), UNIX   28.0322
IBM RS/6000/320, 20 MHz, AIX   20.36
Mips R3240, Mips R3000, 25 MHz, UNIX   12.05
added in 2012
Apple iPhone 3GS    0.037303
Apple iPhone 4    0.026273
Apple iPad    0.009606
Amazon EC2 instance (m2.2xlarge)    0.001916
Apple Macintosh iMi7    0.00101715
added in 2013
Kindle Fire HD 7"    0.0141098
Raspberry PI    0.0287843
Trenton Systems Intel Xeon E311225 3.1GHZ (Quad Core)    0.0008023
Mini MK802    0.0308065
Mini MK808 (Dual Core)    0.0317240
Surface Pro    0.0012768
Motorola DROID RAZR M    0.0230487
added in 2014
Intel i-7 3520M 2.9GHZ (Quad Core)    0.000723671
Google Nexus 10    0.005293831
Samsung Galaxy S4    0.00833136
Apple iPad v4    0.004887
Google Chromebook CR-48 1.6 GHz Atom    0.00780248
Motorola Droid 3    0.01746150
Asus T-100 1.33 GHz Intel Atom    0.003088
Kindle Fire v1    0.0169942
Digital Ocean VPS 1 core small droplet    0.00181026
added in 2015
Amd a8-5500 3.2gz    0.00109824
Intel x86-32 atom z3735F 1.33ghz (windows 8.1)    0.008
Intel x86-32 atom z3735F 1.33ghz (jandroid kitkat 4.4)    0.004759
Kindle Touch    0.0313126
added in 2020
Intel Core i7-6500U 2.50GHz (Win10)    0.0001567
Intel Core i7-9700K 3.60GHz (Win10)    0.0001183
Arm V7 652MHz (Android 8.1.0)    0.003595
Apple A9 (iOS 13.3.1)    0.001791
Apple Cyclone (iOS 12.4.2)    0.003937
Arm Cortex A7 1.3 GHz (Fire OS 5.3.6.4)    0.004825
Intel Core i7 950 3.07GHz (Win10)    0.0002807
added in 2021
Intel Core i5 M 520 2.40GHz (Win7)    0.000215165
Intel Core i9-10900F 2.80GHz (Win10)    5.60851e_5

Matrix inverse (%.) as a benchmark in J is revealing because it is implemented as described in the QR Decomposition essay. The method was chosen not because it is particularly efficient or good numerically but because it is algorithmically interesting; it does allow %. to immediately benefit from improvements to matrix multiplication, memory allocation, and other primitives used in QR.