Opteron/Xeon vs Phenom/Athlon/i7 in a reliable server

ncalipari

Senior member
Apr 1, 2009
255
0
0
Hello guys,

I need to build a server which will handle scientific computation over a mySql database.

I wrote a system based on iBatis ( http://en.wikipedia.org/wiki/IBATIS ) and now I need a reliable pc to run it on.

Being an academic project the budget is low (under $1300 for the hardware), but it may grow in the future. Keep in mind that reliability is a top issue, as the system should work 24/7

I think I should go toward cores over frequency, as MySql performs better in a multicore environment, so AMD should be the choice to go, as their 6-8 cores solutions are much more reasonably priced.

Anyhow an intel mobo + an intel cpu would be more stable, but more expensive (I wouldn't be able to afford more than 4 cores).

What would you choose? Opteron/Xeon over regular desktop processors? Which brand, considering the usage case?

cheers
 

classy

Lifer
Oct 12, 1999
15,219
1
81
Well I would think a 2500K will outperform any AMD processor in this scenario you have put forth. $1300 would be plenty to complete a project such as this.
 

classy

Lifer
Oct 12, 1999
15,219
1
81
Doing a quick google, it appears disk may be a bigger factor here rather than cpu
 

mnewsham

Lifer
Oct 2, 2010
14,539
428
136
I would (if going intel) go with the 2600k as it has hyperthreading and if more cores (threads) is better then you can double the i5-2500k for only 100 bucks.
 

ncalipari

Senior member
Apr 1, 2009
255
0
0
so hypertreading effectively multiply the number of effective cores? A quad core with HT is like an 8core without?


Doing a quick google, it appears disk may be a bigger factor here rather than cpu

Luckily the dataset can be hold in 16 gb of ram, so SSD+heaps of ram should cover this.

This project should be in the realm of cpu-bound problems.
 
Last edited:

classy

Lifer
Oct 12, 1999
15,219
1
81
I would (if going intel) go with the 2600k as it has hyperthreading and if more cores (threads) is better then you can double the i5-2500k for only 100 bucks.

My fault he is right. I thought the 2500 had hyper threading. But its not a lot more.
 

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
I think I should go toward cores over frequency, as MySql performs better in a multicore environment, so AMD should be the choice to go, as their 6-8 cores solutions are much more reasonably priced.

Anyhow an intel mobo + an intel cpu would be more stable, but more expensive
No, it won't be. Stability will be about the same. If you go with server parts, cheaper Opterons are pretty good values, but once you're into $200+ CPUs, Xeons start looking really good. For desktop components, the Intel 2500 and 2600 models are pretty much your only choices. Anything else will almost certainly have lower perf/$.

Cores v. frequency: they both matter. MySQL only prefers cores over speed for certain types of queries, so unless you've tested your software, don't assume that more cores is absolutely better. FI, just moving to a storage engine other than MyISAM will reduce the effectiveness of more cores on queries to those tables, all else being equal. Using transactions correctly all-around will also change performance in ways that definitely won't be benefited by more cores, but will really require testing to figure out. Also, having a well-normalized DB will generally make MySQL slower on simple queries (a well-normalized DB, properly using views, will handle heavy loads with varied queries better, but I doubt that's something you're going to care about).

Also, do you know much writing you will be doing, and of what sizes? If quite a bit of small writes, you may be more bottlenecked by a hard drive than by CPUs, in which case an SSD is in order, preferably an Intel 320 series, IMO (good RAID would cost too much). If it's mostly reading, you can just get gobs of RAM, and tune MySQL a bit for caches and buffers. OTOH, if you are writing or reading very large amounts, you may need a mechanical HDD for the capacity per dollar reasons.

And, doing scientific calculations, how do these scale out to threads, and what CPUs perform them best? This could very well have a greater impact than anything related to iBATIS and MySQL. I mean, if you are using iBATIS and MySQL just for a reliable data storage backend (the whole things looks like a waste of resources, to me, unless you're going to be using many computers, and when that happens, your current HW needs and assumptions will go out the window), they might have no more real performance impact than taking up some RAM, and adding write latencies.

Finally, how critical is it to NEVER have a piece of corrupted data? What you get with Xeons and Opterons is the ability to have good ECC from end to end. Even Phenom IIs w/ Asus or Biostar mobos can't get you quite to level of an Opteron. If you just need 24/7 operation, any set of quality equipment will do. Bits flipping is typically pretty rare, but consumer hardware works on the assumption that it's rare enough not to matter. Server hardware goes by the assumption that a flipped bit going undetected will mean the end of the world. a Phenom II w/ the right mobo can get you in the middle, as well (also, if not buying for a month or two, maybe wait for BD, and see if it's any good, and if it is, if prices change).

Here's what I would do:
Spec out low-end Xeon and Opteron servers from HP and Dell (lately, I'm becoming fond of HP, again), and then some midrange/high-end business desktops from them, as well. If your concern is stability, forget the penny-pinching typical consumer BS boxes. You can always make it yourself, but these should give you a good relative idea of what kind of performance you can get for what money, a bit quicker and easier (IE, how much cheaper can you build a desktop v. server, for your needs and budget). You can use these, and your actual reliability needs, to determine what kind of hardware to get. If you're definitely going to build, add 2-300 to the budget, when specing out the big vendor boxes.

Now, on a desktop system with decent specs, set up your software and do some performance testing (if you can't spare a whole system, use Virtualbox or VMWare on a PC with HW virtualization support). Even very basic testing should be enough to figure out if you're more limited by CPU, RAM, disk, or even your code in general, and prioritize on that.
 

ncalipari

Senior member
Apr 1, 2009
255
0
0
Thanks Cerb for your detailed post!

The system I designed basically perform statistical test over a set of data form a particle experiment.

There is a lot of read and updates, but most of the CPU is used to perform routines over data (deviation, correlation, principal component analysis, ... ).

The system is thread safe and each update of any row can be done independently from the others, so total cpu cycles (cycles*cores) is the most important number.


I wrote a benchmark class for my project, the problem is that I miss the HW. I have some low-spec notebooks and a big and old supercomputer ( http://cluster.mat.unimi.it/ ) just for theoretical analysis.

I don't know maybe if a can squeeze out more performances from the cycles of a Xeon or an opteron, or a phenom. Maybe I would benefit more from a bigger cache, maybe from a faster bus.

I should try my system on different architectures, but I can't do it, so I can just make a guess with your help.



No, it won't be. Stability will be about the same. If you go with server parts, cheaper Opterons are pretty good values, but once you're into $200+ CPUs, Xeons start looking really good. For desktop components, the Intel 2500 and 2600 models are pretty much your only choices. Anything else will almost certainly have lower perf/$.

Cores v. frequency: they both matter. MySQL only prefers cores over speed for certain types of queries, so unless you've tested your software, don't assume that more cores is absolutely better. FI, just moving to a storage engine other than MyISAM will reduce the effectiveness of more cores on queries to those tables, all else being equal. Using transactions correctly all-around will also change performance in ways that definitely won't be benefited by more cores, but will really require testing to figure out. Also, having a well-normalized DB will generally make MySQL slower on simple queries (a well-normalized DB, properly using views, will handle heavy loads with varied queries better, but I doubt that's something you're going to care about).

Also, do you know much writing you will be doing, and of what sizes? If quite a bit of small writes, you may be more bottlenecked by a hard drive than by CPUs, in which case an SSD is in order, preferably an Intel 320 series, IMO (good RAID would cost too much). If it's mostly reading, you can just get gobs of RAM, and tune MySQL a bit for caches and buffers. OTOH, if you are writing or reading very large amounts, you may need a mechanical HDD for the capacity per dollar reasons.

And, doing scientific calculations, how do these scale out to threads, and what CPUs perform them best? This could very well have a greater impact than anything related to iBATIS and MySQL. I mean, if you are using iBATIS and MySQL just for a reliable data storage backend (the whole things looks like a waste of resources, to me, unless you're going to be using many computers, and when that happens, your current HW needs and assumptions will go out the window), they might have no more real performance impact than taking up some RAM, and adding write latencies.

Finally, how critical is it to NEVER have a piece of corrupted data? What you get with Xeons and Opterons is the ability to have good ECC from end to end. Even Phenom IIs w/ Asus or Biostar mobos can't get you quite to level of an Opteron. If you just need 24/7 operation, any set of quality equipment will do. Bits flipping is typically pretty rare, but consumer hardware works on the assumption that it's rare enough not to matter. Server hardware goes by the assumption that a flipped bit going undetected will mean the end of the world. a Phenom II w/ the right mobo can get you in the middle, as well (also, if not buying for a month or two, maybe wait for BD, and see if it's any good, and if it is, if prices change).

Here's what I would do:
Spec out low-end Xeon and Opteron servers from HP and Dell (lately, I'm becoming fond of HP, again), and then some midrange/high-end business desktops from them, as well. If your concern is stability, forget the penny-pinching typical consumer BS boxes. You can always make it yourself, but these should give you a good relative idea of what kind of performance you can get for what money, a bit quicker and easier (IE, how much cheaper can you build a desktop v. server, for your needs and budget). You can use these, and your actual reliability needs, to determine what kind of hardware to get. If you're definitely going to build, add 2-300 to the budget, when specing out the big vendor boxes.

Now, on a desktop system with decent specs, set up your software and do some performance testing (if you can't spare a whole system, use Virtualbox or VMWare on a PC with HW virtualization support). Even very basic testing should be enough to figure out if you're more limited by CPU, RAM, disk, or even your code in general, and prioritize on that.
 

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
If you can set up the system from scratch, do you think you could find someone who might let you use their desktop for little while? As in, disconnect their HDD, bring your own, and go at it? You could do it with a notebook, too for that matter. it would just be a shame to get a hefty CPU, and end up being more limited by HDD or RAM, or assume that you are limited by one or the other, and get more RAM or faster storage, and then find that you really should have spent a couple hundred more on a CPU. IMO, a Nehalem i5 (even dual+HT mobile) would be good enough to at least figure out whether disk or RAM are worth worrying about, and if you can really scale out to several threads as well as you think you can (you may find iBATIS/MySQL to be a limitation w/ many threads, that may take some tinkering to work around, FI).

In general, a SB Core i5 will be anywhere from about 15 to 40% better than a Phenom II, possibly even more w/ HT, per clock. There are are so few programs that are better on a Phenom II w/ more cores that it's hard to recommend a Phenom II, with your budget. If more threads are needed, a 2600K would probably be the best value among desktop parts, and wouldn't eat too much of the budget. If you go with server hardware, your budget could make low-end Opterons a nice option, though (OTOH, a used multi-socket Nehalem Xeon server could be cheaper and faster, if you can find a nice one).

The system is thread safe and each update of any row can be done independently from the others
If the writes can be independent of one another, make a point not to actually write until you have a bunch of them. One big insert or update query will be much faster compared to many small ones. If you can do that, in such a way that you aren't writing too much, and don't have more than several tens of HDD Ios a second, any old HDD might do (likewise, try to batch read queries, if you can). If you aren't using the DB to do pattern matching, filtering , or data transformation, but just to have organized storage, chances are that the DB will increase read and write latencies, but otherwise not be a performance factor.
 

Vette73

Lifer
Jul 5, 2000
21,503
9
0
Problem is with intel you will be chipset limited. The P67 chipset only has 2 6gb ports so if running SSDs that will limit you.

On AMD side you can get the 6core chip at best but will not be limited as the sb850 southbridge has 6 6gb ports and supports Raid 0, 1, 5, and 10.

So I would put your program on what ever system you have now and see if the CPU or the HDD will be the thing that will hurt/help the most.
 

ncalipari

Senior member
Apr 1, 2009
255
0
0
If you can set up the system from scratch, do you think you could find someone who might let you use their desktop for little while? As in, disconnect their HDD, bring your own, and go at it? You could do it with a notebook, too for that matter. it would just be a shame to get a hefty CPU, and end up being more limited by HDD or RAM, or assume that you are limited by one or the other, and get more RAM or faster storage, and then find that you really should have spent a couple hundred more on a CPU. IMO, a Nehalem i5 (even dual+HT mobile) would be good enough to at least figure out whether disk or RAM are worth worrying about, and if you can really scale out to several threads as well as you think you can (you may find iBATIS/MySQL to be a limitation w/ many threads, that may take some tinkering to work around, FI).

In general, a SB Core i5 will be anywhere from about 15 to 40% better than a Phenom II, possibly even more w/ HT, per clock. There are are so few programs that are better on a Phenom II w/ more cores that it's hard to recommend a Phenom II, with your budget. If more threads are needed, a 2600K would probably be the best value among desktop parts, and wouldn't eat too much of the budget. If you go with server hardware, your budget could make low-end Opterons a nice option, though (OTOH, a used multi-socket Nehalem Xeon server could be cheaper and faster, if you can find a nice one).

If the writes can be independent of one another, make a point not to actually write until you have a bunch of them. One big insert or update query will be much faster compared to many small ones. If you can do that, in such a way that you aren't writing too much, and don't have more than several tens of HDD Ios a second, any old HDD might do (likewise, try to batch read queries, if you can). If you aren't using the DB to do pattern matching, filtering , or data transformation, but just to have organized storage, chances are that the DB will increase read and write latencies, but otherwise not be a performance factor.

I already know that my system is cpu limited.

Typical actions are:

- Read one raw

- Compute mean, median, standard deviation, ....

- write results

or:

- read two columns

- perform correlation test

- write correlation index


Even on the cluster the system is more CPU than memory bound, also because actions are performed on tables, and tables easily reside on ram.

My question is which CPU will give me more performance on this task. Since system scale well, more threads the merrier, anyhow maybe also frequency matters.

It is better the intel architecture (Mhz over threads) or AMD architecture (Threads over MHZ) ?

It's a difficult question, but keep in mind that I do mostly mathematical calculation or string manipulation...
 

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
First, I wouldn't worry about the southbridge. SATA is fast enough that it should be no big deal (if you're reading to/writing from a DB app, the SATA interface is unlikely to become a limitation).

If you're sure it's purely CPU-limited, with desktop parts, an Intel i7 2600K or better would be your best bet, or probably a Xeon (it's your call how important one bit flip that might never even occur is to protect against, and that's what you'll get with server parts, for your needs). If you go single socket, I think you do a SB Xeon w/ HT, using unbuffered ECC RAM, for not much over normal desktop parts, easily staying within $1300. Now, if the whole one-bit-error thing doesn't matter so much, a 2600K will be a good overclocker, so you can get plenty of performance for your money with one, doing that...
 
Last edited:

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
Why do you prefer Intel?
Performance.
http://www.anandtech.com/bench/Product/203?vs=287
AMD is squeezing out as much as they can from matured 3-year-old CPUs, as they gear up to release BD, which we don't know the performance and pricing of. Right now, there's practically nothing that the best AMD CPUs can beat Intel at, except price, and with the 2500K's price, even trying to save money, it's hardly worth it, if your budget can fit it. Going with multi-CPU server/workstation parts, it kinda depends, on such a low budget, but it doesn't look like that much of a price bump to go w/ low-end single-socket Intel server parts, if you want.
 

ncalipari

Senior member
Apr 1, 2009
255
0
0
Performance.
http://www.anandtech.com/bench/Product/203?vs=287
AMD is squeezing out as much as they can from matured 3-year-old CPUs, as they gear up to release BD, which we don't know the performance and pricing of. Right now, there's practically nothing that the best AMD CPUs can beat Intel at, except price, and with the 2500K's price, even trying to save money, it's hardly worth it, if your budget can fit it. Going with multi-CPU server/workstation parts, it kinda depends, on such a low budget, but it doesn't look like that much of a price bump to go w/ low-end single-socket Intel server parts, if you want.

Do you think this is true also for xeon/opteron?

It is so difficult to find server CPUs benchmarks....
 

Chiropteran

Diamond Member
Nov 14, 2003
9,811
110
106
Right now, there's practically nothing that the best AMD CPUs can beat Intel at, except price, and with the 2500K's price, even trying to save money, it's hardly worth it, if your budget can fit it.

Unless ECC is important to you. You can get ECC support with any PhenomII quad or hex core with the right motherboard, but getting ECC on intel is very costly as it means you need to buy a Xeon CPU.

Also, the OP says he needs cores more than frequency. Intel's advantage is mostly related to their superior per thread performance, but if the OP's workload really scales out to 6 or more threads I'd be surprised if an i5 could really beat a 6 core thuban by much.
 

podspi

Golden Member
Jan 11, 2011
1,982
102
106
Consumer benchmarks don't mean much in this context. I was doing something similar to the OP and the X6 (vs the i5 750) was faster for me. OP, put a benchmark representing the type of work you do on a CD or thumbdrive and bring it to a brick and mortar store and test it out. If you're like me you'll have fun, (I'm cool) and you'll have a better idea how your application runs on the different architectures...

That being said, if you can't wait or test, the 2600K will probably be faster. It would be for my application, anyway. However, if you can pick up an 8 core Opteron you get ECC and it very likely would be faster.
 

aigomorla

CPU, Cases&Cooling Mod PC Gaming Mod Elite Member
Super Moderator
Sep 28, 2005
21,131
3,663
126
LGA1366 should support ECC. :T

I guess its down to how important ECC is.

And a AMD X6 is probably your most physical core route / dollar if that's important.