Comparing Different Computers with N Queens Program
--D. Thiebaut (talk) 11:05, 24 October 2014 (EDT)
This is an example of how one can generate a quick comparison of the processing power of different systems using a CPU-bound (not using disk or network) application. This app in this case is a java program that finds the solution to the N-Queens problem while counting the number of probes it makes to the 2-D board. The source code is available here.
Here are some results gathered in Oct. 2014 on several systems I have access to. NxN is the dimension of the board. The different systems are:
- Macbook Pro, 2009, 2.53 GHz, Intel Core 2 Duo, 8GB 1067MHz DDR3, 2 cores
- Macbook Pro, 2014, 2.8 GHz Core i7, 16GB 1600MHz DDR3, 4 cores
- MacPro, 2009, Intel(R) Xeon(R) CPU E5462, 4 cores
- MacPro, 2014, Intel(R) Xeon(R) CPU E5-1650 v2 @ 3.50GHz, 6 cores
- Beowulf2, (year?) Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz, 1 core
- Laptop 1 = MSI GE62 Apache Pro 219, 2015, i7 5700hq @2.7GHz, 16.0 GB 1600MHz DDR3L, 4 cores
- Linux 8 = AMD FX(tm)-8320 Eight-Core Processor, 3.5 GHz, 2GB cache
- Arduino = Diecimilia, ATMega168 processor @ 16 MHz.
All times in the table below are in milliseconds (ms).
NxN | Macbook Pro 2009 |
Macbook Pro 2014 |
MacPro 2009 |
MacPro 2014 |
Linux Mint Beowulf2 |
Laptop 1 | Linux 8 | Arduino | ||
---|---|---|---|---|---|---|---|---|---|---|
8x8
9x9
10x10
11x11
12x12
13x13
14x14
15x15
16x16
17x17
18x18
19x19
20x20
21x21
22x22
23x23
24x24
25x25
26x26
27x27
28x28
29x29
30x30
|
0
0
0
0
1
0
26
17
37
28
87
19
144
36
750
81
242
92
248
284
1551
1518
33667
|
1
0
1
0
1
0
3
2
14
10
34
7
64
13
311
31
101
37
102
118
633
356
12586
|
0
1
0
0
1
0
8
5
27
19
67
13
119
26
662
63
199
72
201
232
1250
687
23558
|
1
0
0
0
0
0
5
2
18
13
41
9
70
17
384
39
119
44
121
142
734
413
14158
|
0
0
0
0
1
1
17
14
46
31
104
22
152
50
610
101
226
111
227
257
1213
684
22889
|
0
0
0
0
0
0
0
0
1
1
5
1
24
1
221
3
56
7
58
69
469
244
9041
|
0
0
0
0
0
1
9
6
33
23
60
16
99
29
463
58
157
64
161
184
938
522
17252
|
493
2,585
14,016
81,831
512,952
3,387,865
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
|}
</center>
<br />
==Comparing Java to C==
<br />
This calls for a quick comparison of the Java to C implementation available [[N-Queens in C|here]], compiled by a C++ compiler with O3 optimization, and running on the fastest of the machines above, a MacBook Pro, 15" Retina Display, with a 2.8GHz 4-core processor. The computation uses only one core. All times are in milliseconds (ms).
<br />
<center>
{| class="wikitable"
|-
! NxN
! Java<br />1.7.0_60
! C<br />Compiled with g++<br />& -O3 optimization
|-
|
<source lang="text">
8x8
9x9
10x10
11x11
12x12
13x13
14x14
15x15
16x16
17x17
18x18
19x19
20x20
21x21
22x22
23x23
24x24
25x25
26x26
27x27
28x28
29x29
30x30
|
1
0
1
0
1
0
3
2
14
10
34
7
64
13
311
31
101
37
102
118
633
356
12586
|
0
0
0
0
0
0
0
0
1
0
4
0
17
1
159
2
40
5
40
49
319
170
6320
|
For more information on the difference between Java, C, Python, and Assembly, go to this page.
N-Queens on a 16 MHz Arduino
The code for the N-Queens on the Arduino is available here.
NxN | Elapsed Time in ms |
---|---|
8x8
9x9
10x10
11x11
12x12
13x13
|
493
2,585
14,016
81,831
512,952
3,387,865
|
Note that 3,387,865 ms is 56 min, 28 seconds! The Arduino is spending almost an hour computing a result that took a Desktop machine less than a millisecond to compute (Java or C++).