SGNIPS
SGNIPS is a fictional term, which would sound like the most (in)famous MIPS (mega instructions per second).
SGNIPS is intended for a Crobots benchmarking test only.
Def. SGNIPS = CROBOTS virtual machine cycles per second.
To calculate your PC's SGNIPS (for each single CPU / core available) follow this procedure:
Note: Test your PC under a CPU low-load (not other heavy processes running); do not run the command line with less than four robots: in this case you will obtain fake (not comparable) results. Run multiple tests to obtain a statistically better result. To calculate your overall PC's multi-core SGNIPS (for all single CPU / core available) follow this procedure (only for UNIX/Linux with Python >=2.6 support):
Note: Test your PC whilst a CPU low-load - not other heavy processes running; do not run the command line with different tournament parameters and/or configuration: in this case you will get fake (not comparable) results. Run multiple tests to get a better and statistically reliable result.
Due to the unavoidable overhead (logging and count post-processing) and the trivial multi-processing support, the overall multi-core SGNIPS might be not (surely it won't) the single SGNIPS value multiplies the number of the CPUs / cores used.
To calculate your PC's SGNIPS (for each single CPU / core available) follow this procedure:
- Download and install the Crobots virtual machine binary suitable for your CPU / architecture from here;
- Download and save in your Crobots path the robot 'bench.r' source code;
- Compile to '.ro' binary the 'bench.r' robot with
crobots -c bench.r
If your Crobots executable version does not support the binary compiling (-c option), skip this step; -
Trace the time execution of this command line (UNIX):
crobots -m500 -l200000 bench.ro bench.ro bench.ro bench.ro </dev/null >/dev/null 2>&1
or command line (Windows):crobots -m500 -l200000 bench.ro bench.ro bench.ro bench.ro <NUL 2>NUL >NUL
or any equivalent command line suitable for your OS.
If your Crobots executable version does not support the binary compiling (-c option), replace 'bench.ro' with 'bench.r'. - If T is the execution time in seconds, the formula is:
SGNIPS = (200010*500) / T
~/crobots$ time crobots -m500 -l200000 bench.ro bench.ro bench.ro bench.ro </dev/null >/dev/null 2>&1
real 0m11.413s
user 0m11.373s
sys 0m0.008s
~/crobots$ bc -l
(200010 * 500) / 11.413
8762376.23762376237623762376
That PC (each single CPU / core) runs at approx. 8762376 SGNIPS!
Note: Test your PC under a CPU low-load (not other heavy processes running); do not run the command line with less than four robots: in this case you will obtain fake (not comparable) results. Run multiple tests to obtain a statistically better result. To calculate your overall PC's multi-core SGNIPS (for all single CPU / core available) follow this procedure (only for UNIX/Linux with Python >=2.6 support):
- Download and install the Crobots virtual machine binary suitable for your CPU / architecture from here;
- Download and save in your Crobots path the robot 'bench.r' source code;
- Compile to '.ro' binary the 'bench.r' robot with
crobots -c bench.r
If your Crobots executable version does not support the binary compiling (-c option), you cannot forth more proceed!; - Download, save and setup in your path the GoRobots Batch Tournament Manager from here;
- Test the execution with a command line that looks like:
gorobots -type 4vs4 -config conf/BenchConf.yml -test
-
If the previous test succeeds, get the time execution of this command line:
gorobots -type 4vs4 -config conf/BenchConf.yml
- If T is the execution time in seconds, the formula is:
Multi-core SGNIPS = (15*200010*500) / T
~/crobots$ gorobots -type 4vs4 -config conf/BenchConf.yml
2023/08/08 18:49:15 GoRobots v1.5.1-20211224
2023/08/08 18:49:15 Detected CPU(s)/core(s): 2
2023/08/08 18:49:15 Using 2 CPU(s)/core(s)
2023/08/08 18:49:15 Start processing 4vs4 ...
2023/08/08 18:50:40 Completed in 1m24.527178054s
~/crobots$ bc -l
(15 * 200010 * 500) / (60 + 24.527178054)
17746658.93899451389817244637
That machine runs at approx. 17746658 multi-core SGNIPS!
Note: Test your PC whilst a CPU low-load - not other heavy processes running; do not run the command line with different tournament parameters and/or configuration: in this case you will get fake (not comparable) results. Run multiple tests to get a better and statistically reliable result.
Due to the unavoidable overhead (logging and count post-processing) and the trivial multi-processing support, the overall multi-core SGNIPS might be not (surely it won't) the single SGNIPS value multiplies the number of the CPUs / cores used.
Crobots Benchmarks
| CPU/Architecture | Operating System | C Compiler version | SGNIPS | CPUs / Cores | Multicore SGNIPS |
|---|---|---|---|---|---|
| Sun Ultra-1 | SunOS 5.8 | gcc-2.95.4 | 240,000 | 0 | |
| Pentium 200 MMX | Linux 2.2.17 | gcc-2.95.1 | 350,000 | 0 | |
| HP 9000/800/L3000- 5x | HP-UX B.11.11 U | cc | 498,000 | 0 | |
| Celeron 333 | Linux 2.4.18 | gcc-2.95.4 | 650,000 | 0 | |
| HP 9000/800/S16K- A | HP-UX B.11.11 U | cc | 790,000 | 0 | |
| PentiumIII 450 | Linux 2.4.18 | gcc-2.95.4 | 962,000 | 0 | |
| G4 800 | MacOS X 10.2.8 | gcc-3.3.1 | 1,000,050 | 0 | |
| Sun SunFire V100 SparcV9 550 MHz | SunOS 5.9 | gcc-3.4.5 | 1,004,000 | 0 | |
| G4 1000 | MacOS X 10.3 | gcc-3.3.1 | 1,111,200 | 0 | |
| AMD K6-2+ 550 MHz | Windows 98 | 1,149,500 | 0 | ||
| Celeron 600 | Linux 2.2.21 | egcs-2.91.66 | 1,333,000 | 0 | |
| PowerPC64 (Playstation3) | Linux | gcc-3 | 1,852,000 | 0 | |
| PentiumIII 800 | Windows 2000 | 2,000,000 | 0 | ||
| Athlon 1000 | Windows ME | 2,500,000 | 0 | ||
| PentiumIII 1.133 | Linux 2.6.18-6 | gcc-4.1.2 | 2,940,700 | 2 | 4,534,340 |
| ATOM 330 1.6 Ghz 2 core 4 thread | Windows 7 Home 64 bit | 2,941,323 | 0 | ||
| ATOM 330 1.6 Ghz 2 core 4 thread | Ubuntu 10.10 | gcc-4.4.5 | 3,030,455 | 0 | |
| IBM 9117-570 PowerPC64 Power5 1.9GHz | AIX 5.3 | C for AIX Compiler, Version 6 | 3,125,000 | 0 | |
| IBM 9117-570 PowerPC64 Power5 1.9GHz | AIX 5.3 | gcc-3.3.2 | 3,218,000 | 0 | |
| Centrino U1300 @ 1,06 Ghz | Windows XP | 3,315,000 | 0 | ||
| Athlon XP-M 1800+ | Linux 2.6.15 | gcc-3.3.6 | 3,448,500 | 0 | |
| G5 Dual 1.8GHz | MacOS X 10.4.9 | gcc-4.0.1 | 3,448,500 | 0 | |
| Intel Celeron Northwood 2GHz | Windows XP SP2 | 3,846,000 | 0 | ||
| Intel Core Duo T2300 @ 1.66GHz | Ubuntu 11.10 | gcc 4.6.1 | 5,024,114 | 0 | |
| PentiumIV 2.66GHz | Windows XP | 5,265,000 | 0 | ||
| Xeon 3 Ghz HT cache 512kb | Linux | gcc-3.2.3 | 5,882,000 | 4 | 12,530,700 |
| Centrino Core2 T5500 1,66GHz | Windows XP | 5,882,000 | 0 | ||
| Xeon 5130 2 Ghz cache 4MB | Linux 2.6.18 | gcc-3.2.3 | 5,970,000 | 0 | |
| Intel Xeon CPU E5506 @ 2.13GHz | Linux 2.6.32-5-amd64 | gcc-4.4.5 | 6,771,277 | 0 | |
| Intel Core2 Duo E6400 2.1 Ghz | Linux Debian Lenny | gcc-4.3 | 6,900,228 | 0 | |
| Intel Core i7 2630QM 2GHz 4 core / 8 thread | Windows 7 Home 64 bit | 9,091,000 | 0 | ||
| Intel Core i7 720QM 1.6GHz 4 core / 8 thread | Windows 7 Home 64 bit | 9,091,000 | 0 | ||
| Intel(R) Xeon(R) CPU E5540 @ 2.53GHz | Linux 2.6.26 | 9,127,000 | 8 | 40,170,180 | |
| Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz | Windows 7 Ultimate | 9,407,800 | 8 | 45,797,422 | |
| Intel(R) Core(TM)2 Duo CPU E7500 @2.93GHz | Ubuntu 14.04 | gcc | 9,834,300 | 2 | 17,746,658 |
| Intel(R) Core(TM)2 Duo CPU E7500 @2.93GHz | Windows 7 64 bit Professional | 10,310,000 | 2 | 17,601,760 | |
| Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz | Ubuntu 14.04 | 11,557,260 | 4 | 37,435,420 | |
| Intel Core i7 920 3.6Ghz | Ubuntu 8.10 x64 | 12,500,625 | 0 | ||
| Intel Core i7 980X 4Ghz 6 Core / 12 Thread | Windows 7 Home 64 bit | 14,286,429 | 0 | ||
| Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz | Ubuntu 16.04 | 16,290,110 | 4 | 22,487,180 | |
| Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz | macOS Darwin 18.7.0 | clang | 17,241,250 | 12 | 83,242,000 |
| Intel Core i5 750 2,66 Ghz | Windows 7 64 bit Professional | 18,718,764 | 0 | ||
| Intel Core 2 Duo (T8300) 2.4 Ghz | Windows 7 64 bit Professional | 18,824,470 | 0 | ||
| Intel(R) Core(TM) i7-8565U @ 1.80GHz 1.99GHz | Windows 10 Home 64 bit | win32 | 21,309,396 | 8 | 52,797,772 |
| Apple M1 Pro | macOS Ventura 13.4.1 (c) | clang | 25,563,650 | 10 | 198,580,577 |
| Apple M2 Pro | macOS Ventura 13.6 | clang | 26,732,157 | 12 | 170,419,015 |