X-Gene 1, Atom C2000 and Xeon E3: Exploring the Scale-Out Server World
by Johan De Gelas on March 9, 2015 2:00 PM ESTBenchmark Configuration
All tests were done on Ubuntu Server 14.04 LTS. We tested the HP Moonshot remotely. Our special thanks goes out to the team of HP EMEA Moonshot Discovery Lab of Grenoble (France). We tested both the Supermicro MicroCloud and the different motherboard configurations in our lab.
ASRock's C2750D4I
CPU | Intel Atom C2750 |
RAM | 4x 8GB DDR3 @1600 or 4x 16GB DDR3 @1333 (Intelligent Memory) |
Internal Disks | 1x Intel MLC SSD710 200GB |
Motherboard | ASRock C2750D4I |
PSU | Supermicro PWS-502 (80+) |
Intel's Xeon E3-1200 v3 – ASUS P9D-MH
CPU | Intel Xeon processor E3-1240 v3 Intel Xeon processor E3-1230L v3 |
RAM | 4x 8GB DDR3 @1600 |
Internal Disks | 1x Intel MLC SSD710 200GB |
Motherboard | ASUS P9D-MH |
PSU | Supermicro PWS-502 (80+) |
Intel's Xeon E3-1200 v2
CPU | Intel Xeon processor E3-1220 v2 Intel Xeon processor E3-1265L v2 |
RAM | 4x 8GB DDR3 @1600 |
Internal Disks | 1x Intel MLC SSD710 200GB |
Motherboard | Intel S1200BTL |
PSU | Supermicro PWS-502 (80+) |
Supermicro's MicroCloud SYS-5038ML-H8TRF
We enabled four nodes, each with an Intel Xeon E3-1230L v3. Each node was configured with:
CPU | Intel Xeon processor E3-1230L v3 |
RAM | 4x 8GB DDR3 @1600 |
Internal Disks | 1x Intel MLC SSD710 200GB |
Motherboard | Super X10SLD-F |
PSU | Dual Supermicro PWS-1K62P-1R (1.6 KW, 80+ Platinum) for 4 nodes |
We first tested with only one PSU, but that did not work out as the firmware kept all Xeons at their minimum clock speed of 800 MHz. Only with both PSUs active were the Xeon able to use all their p-states. Supermicro confirmed that four active nodes should be enough to make the PSU run efficiently.
HP Moonshot
We tested two different cartridges: the m400 and the m300. Below you can find the specs of the m400:
CPU/SoC | AppliedMicro X-Gene 2.4 |
RAM | 8x 8GB DDR3 @ 1600 |
Internal Disks | m2 2280 Solid State 120GB |
Cartridge | m400 |
And the m300:
CPU/SoC | Atom C2750 2.4 |
RAM | 8x 8GB DDR3 @ 1600 |
Internal Disks | m2 2280 Solid State 120GB |
Cartridge | m300 |
Other Notes
Both servers are fed by a standard European 230V (16 Amps max.) power line. The room temperature is monitored and kept at 23°C by our Airwell CRACs. We use the Racktivity ES1008 Energy Switch PDU to measure power consumption in our lab. We used the HP Moonshot ILO to measure the power consumption of the cartridges.
47 Comments
View All Comments
JohanAnandtech - Tuesday, March 10, 2015 - link
Are you sure this is up to date? gcc tells me -march=native is not supported.JohanAnandtech - Tuesday, March 10, 2015 - link
Update. march=native does not work. I have tried -march=armv8-a but does not do much (it is probably the default). O3 makes the biggest difference. Omit it and you get 5.7 GB/s. With -O3, I am at 18 GB/s and more (stream m400)Alone-in-the-net - Tuesday, March 10, 2015 - link
Apologies. For AArch64 the only is "armv8-a", for intel, -march=native sets it to use the one for your CPU.https://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/AArch...
https://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/i386-...
From version 4.9.x and above of GCC, you can really start to add tuning for the CPU.
https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/AArch...
-mtune=name
Specify the name of the target processor for which GCC should tune the performance of the code. Permissible values for this option are: ‘generic’, ‘cortex-a53’, ‘cortex-a57’.
Additionally, this option can specify that GCC should tune the performance of the code for a big.LITTLE system. The only permissible value is ‘cortex-a57.cortex-a53’.
Where none of -mtune=, -mcpu= or -march= are specified, the code will be tuned to perform well across a range of target processors.
Alone-in-the-net - Tuesday, March 10, 2015 - link
Also support for the XGene1 as a compilation target is only from GCC5.https://gcc.gnu.org/gcc-5/changes.html
Support has been added for the following processors (GCC identifiers in parentheses): ARM Cortex-A72 (cortex-a72) and initial support for its big.LITTLE combination with the ARM Cortex-A53 (cortex-a72.cortex-a53), Cavium ThunderX (thunderx), Applied Micro X-Gene 1 (xgene1). The GCC identifiers can be used as arguments to the -mcpu or -mtune options, for example: -mcpu=xgene1
The_Assimilator - Monday, March 9, 2015 - link
So AMD, how's that bet on ARM you made looking now?extide - Monday, March 9, 2015 - link
Don't count them out yet. I really wish that intel didn't abandon ARM for the Atom, I bet they could come out with a sweet armv8 core if they had to, and on their process it would be sweet.BlueBlazer - Monday, March 9, 2015 - link
That AMD Opteron A1100 looking more like abandonware as more time passes on, and that was like 8 months ago. Until now not a single real world deployment nor was used in any of AMD's own SeaMicro servers. Currently available as development kit with a rather steep price tag.tuxRoller - Monday, March 9, 2015 - link
You REALLY should be using GCC 5. that includes many improvements for the armv8 isa. I'd suggest grabbing a nightly of Fedora 22, but Ubuntu 15.04 may be using gcc5 as well.Wilco1 - Monday, March 9, 2015 - link
Agreed, nobody doing anything on AArch64 should contemplate using GCC4.8. Even 4.9 is way out of date. GCC5.0 with latest GLIBC gives major speedups across the board.JohanAnandtech - Tuesday, March 10, 2015 - link
"Way out of date?" We tried out 4.9.2, which has been released on October 30th 2014. That is about 4 months old. https://www.gnu.org/software/gcc/releases.html. Latest version is 4.8.4, 5.0 has not even been released AFAIK.