Software Tuning, Performance Optimization & Platform Monitoring
Discussion regarding monitoring and software tuning methodologies, Performance Monitoring Unit (PMU) of Intel microprocessors, and platform updating.
1708 Discussions

Best hardware solution to compile C++/Fortran code for E5 2600 v3

Ziad_B_
Beginner
500 Views

Hi,

Not sure this is the right forum but it seems to be the most applicable. We develop C++/Fortran code with MPI to run on centOS clusters with Xeon E5 2600 v3 procs. I'm looking for the best hardware solution for a small workstation to compile/test code that will eventually be shipped as compatible binaries to the cluster. The obvious choice that comes to mind is the single socket E5 1600 v3. Can it be done with the much cheaper E3 procs as well? Or any other CPU for that matter. The goal is to avoid building a multi-socket workstation altogether.

Otherwise, are there freely available servers where one can do this? Any suggestion is welcome.

Thanks

0 Kudos
10 Replies
Bernard
Valued Contributor I
500 Views

I am not an expert on MPI, but I think that if your solution can easily be parallelised you can test it on Xeon E3, however if bear in mind that the number of available physical cores/logical cpus will be less when compared to Xeon E5. In this case the results of code parallelisation testing will be somehow skewed. 

0 Kudos
Ziad_B_
Beginner
500 Views

Hi iliyapolak,

Thanks for your comment. We're more concerned about having fully compatible code wrt the compiler. The code uses only MPI so threading isn't really an issue either.

However comparing the E3 v3 procs with the E5 v3 procs on Ark highlights some differences like Fast/Flex Memory Access being available for E3 but not E5. The supported bus and socket types are also different, DMI/FCLGA1150 for E3-v3 and QPI/FCLGA2011-3 for E5-v3. Will these differences likely have an effect and can we compile with the same options or should adjustments be made?

0 Kudos
TimP
Honored Contributor III
500 Views

Particularly if you are developing for MPI OpenMP hybrid, a single socket platform will not expose the thread and rank pinning issues of a dual socket node.  Depending on your application, that may be of more interest than the difference between I3 and I5.

I can't guess how you would write code incompatible between I3 and I5.

0 Kudos
Ziad_B_
Beginner
500 Views

Tim P. wrote:

Particularly if you are developing for MPI OpenMP hybrid, a single socket platform will not expose the thread and rank pinning issues of a dual socket node.  Depending on your application, that may be of more interest than the difference between I3 and I5.

I can't guess how you would write code incompatible between I3 and I5.

The source code is universal and is usually compiled on the platform we plan to run it on, with the correct options of course. That's what we've done so far and it works pretty well so there are no source code incompatibility issues here.

We don't use MPI/OpenMP hybrid so thread and rank pinning should not be an issue. What I'm wondering about is whether a binary compiled for a single-socket E3-v3 node will run similarly on a dual-socket E5-v3 node without recompiling.

Edit: bold highlight

0 Kudos
Bernard
Valued Contributor I
500 Views

@Ziad

@Tim summed it pretty well.

>>>binary compiled for a single-socket E3-v3 node will run similarly on a dual-socket E5-v3 node without recompiling.>>>

Similarly in terms of what? In terms of machine instruction compatibility or in terms of performance?

0 Kudos
Ziad_B_
Beginner
500 Views

@iliyapolak

In terms of machine instruction compatibility.

E3 has additional extensions SSE4.1/4.2 but these can be disabled.

Will it be necessary to turn off the Fast/Flex Memory Access on E3 ― can it be done?

64-bit instructions set is the same so no worries there. If that is the only concern then I should be able to use any Intel 64-bit CPU.

Is setting up a virtual machine with virtual E5 a better option? A couple of people already recommended that.

0 Kudos
Bernard
Valued Contributor I
500 Views

Basically Xeon E3 and E5 of the same family are the same processors architecturally. In order to not create confusion I really meant similarity at the level of Execution Ports, Execution Units, ISA etc....

>>>Is setting up a virtual machine with virtual E5 a better option?>>.

I am not sure how much or to what extend  is E5 virtualized?

0 Kudos
Bernard
Valued Contributor I
500 Views

@Ziad

What model of Xeon E3 and E5 you are talking about?

0 Kudos
Ziad_B_
Beginner
500 Views

iliyapolak wrote:

@Ziad

What model of Xeon E3 and E5 you are talking about?

Xeon E5 2630 v3@2.4GHz, 8 cores

Xeon E3 1231 v3@3.4GHz, 4 cores

I also have the option to use Xeon E5 1620 v2 or E5 1630 v3

These are all on dedicated servers I'm planning to lease for a couple of months.

0 Kudos
Ziad_B_
Beginner
500 Views

iliyapolak wrote:

I am not sure how much or to what extend  is E5 virtualized?

This would be a virtual server leased from our hosting provider. Apparently they emulate 4 Xeon E5 2620 v3 procs. I have my doubts myself since they did not give any details about the emulation.

The server is available free of charge for a 15 days trial period so I might try it after all.

0 Kudos
Reply