I am looking to build a powerful math laptop for solving a high dimensional differential equation that responds to constant outside stimulus, either from a file or from messages received. In some cases the messages will come quite fast, and so the machine has to be quite powerful to keep up.
I am not much of a hardware guy, I only understand some of the basics
of general CPUs, but don't know anything about the specifics of recent chips or motherboards.
I am looking at the Intel i7, either the Sandy Bridge chips, or
the earlier ones, Gulftown, Bloomfield, or Lynnfield. What are the advantages of the later chip, for a math problem like this? There is some opportunity for multi-threading in some part of the problem, and I will also want to run multiple instances of my code on different flavors of live input data.
Right now, I am only aware of clock-speed advantages that occur in bursts -- if lots of messages come in at once that might possibly help, but the advantage looks slight. I certainly expect to need a lot of cache, but how much will depend on the incoming message data, so it is hard to calculate.
What I am hoping to find out is that there either is or isn't some distinct difference in FLOPS, which I am doing a hell of a lot of. There are lots of log and exponential calculations, etc.
Does anyone out there think that the more recent chip is worth a 50% improvement in FLOPS, or is it
more marginal ~ 10%.
Thanks, I misspoke. I am selecting the components from a vendor's website. Obviously they
don't give me much choice, but they do let me choice the processor, and a few other things.
Do you have any information on this?
If you're writing the program yourself you should look into CUDA. With an Nvidia GPU running CUDA you'll get far more Giga Flops than you ever could with a CPU, and IIRC a GPU has much better transcendental math performance than CPUs do. Obviously you would have to look at your problem to see how CUDA could be used, I don't know how well differential problems can be solved with CUDA.
If CUDA isn't a possibility then I definitely agree about the Sandy Bridge i7. Good clock speeds and a efficient microarchitecture. Also, if you go with a Sandy Bridge you get access to AVX, which allows for up to 8 single precision floating point, or 4 double precision operations to be performed in one instruction. Again that would require looking at the problem to see if it is amenable to vectorization and modifying the program to take advantage of AVX, but the performance gains can be huge compared to x87 FP code or even SSE code.
So yes, if you go with a Sandy Bridge CPU and use AVX instead of SSE you could double the floating point performance. Keep in mind that floating point performance is a function of clock speed and vector operation width. If you have a 2.5GHz CPU with AVX that can process 8 single precision floating point operations per instruction you get a theoretical GFlop figure of 2.5GHz * 8 = 20 single precision GFlops PER core. The double precision GFlop rate should be about half the single precision rate because half the double precision operations can be performed per instruction. Keep in mind though that those figures are theoretical GFlops, and the effective GFlops will vary based on all kinds of other factors.
Hi Scorpion and jprahman,
Thank you for your input, it turned out to be spot on. However, Sandy Bridge, according to the vendors and a consultant I am working with, aren't yet available
on Ubuntu, so I had to scale back a bit, to whatever Lenovo was offering, an i7, but not the best of the bunch. It looks like the best thing would be one of those gaming chips, like the 980X, but this is mostly not available in laptops, I found one article that said it was put into a laptop by a company called Eurocom, but the
article said that the heat constraints ruined the performance completely. Dell offered the Sandy Bridge chip, but said that if I installed Linux it would void
their warranty, even for hardware. All the other vendors had lesser chips, and
since Ubuntu isn't available for the high end chips available Dell's site anyway,
there was nothing left but Ubuntu.
That said, I had been told that laptops can have essentially the same screaming
performance as a desktop these days, but the reviews of the 980X convinced me
otherwise -- it seems to be a huge improvement on any available laptop chip,
except for some of the Sandy Bridge chips. And when Intel's Sandy Bridge line comes out with an X chip (I think this is the Intel naming scheme for gaming chips?) it will probably have an even greater advantage.
But it also seems to be true that waiting for an Ubuntu distribution for the chip is
a big drag on performance -- it looks like Ubuntu is a generation and a half behind.
This is a REAL eye-opener.
@jp -- the CUDA thing looks like it will be worth looking into. Right now, I have to learn a few things about parallel programming, as well as how to get CUDA running,
(and whether it runs on Linux, etc.) And probably there is some hardware configuring as well. I think that this is something for the next generation of my
app, when I try to run it in production. Thank you for the suggestion.