I need to produce C++ code binaries to be used on a cluster with Xeon E5 2600 v3 dual-socket nodes. For confidentiality reasons the binaries can only be compiled locally so we have to build a smaller workstation to support compiling and binary testing. For cost reasons it's preferable to build a single-socket machine and use the absolute cheapest CPU that can produce compatible binaries. I thought of Xeon E3 v3 CPUs since the code uses MPI and no OpenMP so there would not be issues with thread and rank pinning. Can other Intel CPUs be used as well?

Someone even suggested doing it on a virtual machine but I have reservations about it.


  • 2
    Virtual machine would actually be preferable. We usually set up a VM just for compilation reasons. You still get to use the exact CPU that the binary would be running on and you don't mess up the environment when setting up the compilation. If you still want to use a HW workstation, get a 64-bit CPU. All intel CPUs share the same instruction set, save for the very server specific ones. For example all Xeon family CPUs will have same set of instructions.
    – user588
    Jan 25 '16 at 22:49
  • @Andriy Lysak - Using a 64-bit CPU is a minimum. However would it be necessary/possible to disable Fast/Flex memory access on E3? They are not available for E5. Guess the same applies for all options on the compile processor that are not available for E5. I'm no expert on virtual machines but can you really set up the exact type of processor with all its instruction extensions?
    – zbinkz
    Jan 26 '16 at 11:39
  • 1
    For VMs you dont set up the cores by hand, those are handled by the hypervisor (whichever one you pick) all you set up is how many cores the Vm should have, your VM then by default has access to the entire core or cores that were assigned to it. As to disabling any compilation features: that is compiler specific. If you want to disable Fast/Flex mem access all together, that will depend on the BIOS features of the MB. I am not aware of any make of MB that would give you low level access to each set of instructions.
    – user588
    Jan 26 '16 at 18:04
  • That makes it a lot simpler. All that is required then is to create a 64-bit VM and activate/disactivate whatever instruction set extensions. However, to have something compatible with Intel procs I think the VM should run on an Intel physical processor. I just got a 15-day trial with our hosting provider on a VM with 4 emulations of E5 2600 v3 procs!!!?? No idea how they set it up (probably on a server running such procs) and they're not providing a lot of details but it doesn't hurt to try it. Will post the outcome eventually.
    – zbinkz
    Jan 26 '16 at 20:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.