Difference between revisions of "Comparing Different Computers with N Queens Program"

From dftwiki3
Jump to: navigation, search
(N-Queens on a 16 MHz Arduino)
Line 251: Line 251:
 
512,952
 
512,952
 
3,387,865
 
3,387,865
NA
+
23,779,229
 
NA
 
NA
 
NA
 
NA
Line 386: Line 386:
 
12x12
 
12x12
 
13x13
 
13x13
 +
14x14
 
</source>
 
</source>
 
|
 
|
Line 395: Line 396:
 
512,952
 
512,952
 
3,387,865  
 
3,387,865  
 +
23,779,229
 
</source>
 
</source>
 
|}
 
|}
 
</center>
 
</center>
 
<br />
 
<br />
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++).  
+
Note that 3,387,865 ms is 56 min, 28 seconds, and that 23,779,229 is 6 hours and 36 minutes!  The Arduino is almost 6 and a half hours computing a result that took a Desktop machine less than a millisecond to compute (Java or C++).  
 
<br />
 
<br />
 
<br />
 
<br />

Revision as of 08:45, 21 April 2016

--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:

  1. Macbook Pro, 2009, 2.53 GHz, Intel Core 2 Duo, 8GB 1067MHz DDR3, 2 cores
  2. Macbook Pro, 2014, 2.8 GHz Core i7, 16GB 1600MHz DDR3, 4 cores
  3. MacPro, 2009, Intel(R) Xeon(R) CPU E5462, 4 cores
  4. MacPro, 2014, Intel(R) Xeon(R) CPU E5-1650 v2 @ 3.50GHz, 6 cores
  5. Beowulf2, (year?) Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz, 1 core
  6. Laptop 1 = MSI GE62 Apache Pro 219, 2015, i7 5700hq @2.7GHz, 16.0 GB 1600MHz DDR3L, 4 cores
  7. Linux 8 = AMD FX(tm)-8320 Eight-Core Processor, 3.5 GHz, 2GB cache
  8. 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
23,779,229
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA


Comparing Java to C


This calls for a quick comparison of the Java to C implementation available 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).

NxN Java
1.7.0_60
C
Compiled with g++
& -O3 optimization
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
14x14
493
2,585
14,016
81,831
512,952
3,387,865 
23,779,229


Note that 3,387,865 ms is 56 min, 28 seconds, and that 23,779,229 is 6 hours and 36 minutes! The Arduino is almost 6 and a half hours computing a result that took a Desktop machine less than a millisecond to compute (Java or C++).