GPU computing server box, check out the parts on New Egg

TheChuckster

Junior Member
Nov 23, 2007
5
0
0
This box is going to be doing some intense GPU number crunching on large social graphs for a personal research project. Just need some reliable parts that don't have to be powerful since the GPU(s) will be doing all the heavy lifting here. I plan on expanding the number of GPUs in here later, hence the extra PCI express slots on the motherboard. Any how, here's what I threw together. I was wondering if you could please look it over and double-check that I picked out some pretty good components. Thanks in advance.

Western Digital Caviar Green WD10EARS 1TB 64MB Cache SATA 3.0Gb/s 3.5" Internal Hard Drive -Bare Drive
http://www.newegg.com/Product/Produc...82E16822136826
$69.99

ASUS P8H67-M PRO/CSM (REV 3.0) LGA 1155 Intel H67 HDMI SATA 6Gb/s USB 3.0 Micro ATX Intel Motherboard
http://www.newegg.com/Product/Produc...82E16813131711
$109.99

Intel Core i3-2100 Sandy Bridge 3.1GHz LGA 1155 65W Dual-Core Desktop Processor Intel HD Graphics 2000 BX80623I32100
http://www.newegg.com/Product/Produc...82E16819115078
$119.99

G.SKILL 4GB (2 x 2GB) 240-Pin DDR3 SDRAM DDR3 1333 (PC3 10600) Dual Channel Kit Desktop Memory Model F3-10600CL9D-4GBNT
http://www.newegg.com/Product/Produc...82E16820231253
$22.99

COOLER MASTER Elite 430 RC-430-KWN1 Black Steel / Plastic Computer Case
http://www.newegg.com/Product/Produc...82E16811119227
$39.99 after mail-in rebate

CORSAIR Builder Series CX600 V2 600W ATX12V v2.3 80 PLUS Certified Active PFC Power Supply
http://www.newegg.com/Product/Produc...82E16817139028
$49.99 after mail-in rebate card

EDIT: added requested information

1. What YOUR PC will be used for. That means what types of tasks you'll be performing.
It will be running graph clustering algorithms on multiple GPUs using CUDA. The GPUs do most if not all of the work here.

2. What YOUR budget is. A price range is acceptable as long as it's not more than a 20% spread
$500ish

3. What country YOU will be buying YOUR parts from.
United States

4. IF YOU have a brand preference. That means, are you an Intel-Fanboy, AMD-Fanboy, ATI-Fanboy, nVidia-Fanboy, Seagate-Fanboy, WD-Fanboy, etc.
Intel/Nvidia, don't care but prefer reputable, reliable brands for everything else, particularly the motherboard and the PSU.

5. If YOU intend on using any of YOUR current parts, and if so, what those parts are.
I already have two Nvidia Geforce GTX 595 cards.

*

7. IF YOU plan on overclocking or run the system at default speeds.
Default speeds, reliability is important.

8. What resolution will you be using?
A monitor will RARELY be connected to this machine... it will be running a UNIX operating system and acting like a server.

9. WHEN do you plan to build it?
Plan on building it within the next month.

*

X. Do you need to purchase any software to go with the system, such as Windows or Blu Ray playback software?
No, everything will be FOSS or in-house developed Python and CUDA C software by a small team.
 
Last edited:

krnmastersgt

Platinum Member
Jan 10, 2008
2,873
0
0
Firstly answer the questions in this sticky:
http://forums.anandtech.com/showthread.php?t=80121

That aside, general comments on your current hardware choices:
Hard Drive: Green drives have lower RPM's which result in less power but also slower data transfer, is data throughput not an issue for your number crunching?
Motherboard: Paying way too much for that, do you need USB 3.0 at all? If not then you could easily grab an H61 board for MUCH less (around half the price of that board). Not sure why that one's so pricey actually.
CPU: While the 2100 is a fine choice, doesn't sound like you'll need much more than a Pentium G530.
Case: Fine for the purpose I suppose, might be able to find cheaper though.
PSU: Overkill considering you don't even have a GPU in the above parts list. Though even if you do start adding video cards in, this could easily power 2 of them without much issue (unless you're spending serious cash on powerful cards).
 

Ken g6

Programming Moderator, Elite Member
Moderator
Dec 11, 1999
16,632
4,562
75
So, for this GPU computing, are you using some existing software or are you developing your own? Are you going CUDA or OpenCL? Do you need double-precision floating point math?

Did you know that some GPU programs also use a significant amount of CPU time? Not everything can be done efficiently on a GPU; sometimes it's just better to run part of an app on the CPU. So do you know how much CPU these app(s) will take?

I also worry about the RAM. I understand that some GPU apps work most efficiently when part of GPU memory can be mapped one-to-one with main memory. In such cases, the improvement only works if that memory is blocked from being swapped to disk. So I'd suggest at least 8GB main RAM. It's not even $20 more.
 

ElFenix

Elite Member
Super Moderator
Mar 20, 2000
102,393
8,552
126
if you're going to be expanding the number of gpus later i'd get more than 2 pci-e slots. afaik gpu computing is not particularly bandwidth intensive so pci-e x1 slots are acceptable.
 

TheChuckster

Junior Member
Nov 23, 2007
5
0
0
Firstly answer the questions in this sticky:
http://forums.anandtech.com/showthread.php?t=80121

That aside, general comments on your current hardware choices:
Hard Drive: Green drives have lower RPM's which result in less power but also slower data transfer, is data throughput not an issue for your number crunching?
Motherboard: Paying way too much for that, do you need USB 3.0 at all? If not then you could easily grab an H61 board for MUCH less (around half the price of that board). Not sure why that one's so pricey actually.
CPU: While the 2100 is a fine choice, doesn't sound like you'll need much more than a Pentium G530.
Case: Fine for the purpose I suppose, might be able to find cheaper though.
PSU: Overkill considering you don't even have a GPU in the above parts list. Though even if you do start adding video cards in, this could easily power 2 of them without much issue (unless you're spending serious cash on powerful cards).

Throughput isn't an issue since the data I'm crunching is obtained from the web. I really need help picking out a better board though, preferably reliable and more fairly priced with extra PCI-e slots and ATX form factor. CPU is important. Also, I already have two Nvidia Geforce GTX 595 cards at home.
 

TheChuckster

Junior Member
Nov 23, 2007
5
0
0
So, for this GPU computing, are you using some existing software or are you developing your own? Are you going CUDA or OpenCL? Do you need double-precision floating point math?

Did you know that some GPU programs also use a significant amount of CPU time? Not everything can be done efficiently on a GPU; sometimes it's just better to run part of an app on the CPU. So do you know how much CPU these app(s) will take?

I also worry about the RAM. I understand that some GPU apps work most efficiently when part of GPU memory can be mapped one-to-one with main memory. In such cases, the improvement only works if that memory is blocked from being swapped to disk. So I'd suggest at least 8GB main RAM. It's not even $20 more.

I am developing my own using pyCUDA. I have a computer graphics background but also an engineering education so I am looking to apply it to more general purpose scientific stuff. I actually have a graph clustering algorithm implemented on the GPU right now that is giving me some awesome results! I actually profiled my code and split it up between CPU and GPU optimally. My CUDA kernels never execute in over a half second total and they push data around extremely efficiently (1 thread per graph node) so performance well exceeds my initial CPU-only implementation. Everything is low memory access, high computation. The parallelism of the GPU really lends itself well to performance in this graph algorithm. I'll save the technical details for a Hacker News post once I'm ready to release this.
 

krnmastersgt

Platinum Member
Jan 10, 2008
2,873
0
0
I think something along the lines of this MSI H67 for $60 AR should do the trick. Not a particularly great chipset however it does seem to offer 2 full PCI-E 2.0 16x slots, you won't be able to add a third to the rig but it should be sufficient for the 2 you already have.

If you do want to add a third card and get full data throughput with the card, you may be looking into the really high end boards which start from somewhere between $150 to $200. Not to mention a more powerful PSU and such, it'd cost quite a bit more just to add that third card.
 

Ken g6

Programming Moderator, Elite Member
Moderator
Dec 11, 1999
16,632
4,562
75
If you want a third card, this Biostar board would be among the best cheap options. The problems are that the third slot is at x4 and at the bottom of the board, so you'd need a larger case to fit a double-slot card down there. Or can you work with heterogeneous GPUs?

I asked about double precision because if you use that you'll want 570s (or Big Kepler someday). If not, the 670s looks better.
 

krnmastersgt

Platinum Member
Jan 10, 2008
2,873
0
0
Honestly factoring in the cost of the upgraded motherboard, larger case, higher wattage PSU, fans to provide sufficient airflow to a 3 card set-up; I think it'd be cheaper to just build another system using budget parts again and run it alongside this current build.
 

mfenn

Elite Member
Jan 17, 2010
22,400
5
71
www.mfenn.com
Honestly factoring in the cost of the upgraded motherboard, larger case, higher wattage PSU, fans to provide sufficient airflow to a 3 card set-up; I think it'd be cheaper to just build another system using budget parts again and run it alongside this current build.

Agree.
 

mfenn

Elite Member
Jan 17, 2010
22,400
5
71
www.mfenn.com
OP, what is the size of your data sets? If it is too large to fit into the GPU's memory, you will be disappointed by the limitations of a PCI x4 slot. If it's small enough to fit into GPU memory, then you will of course pay a penalty when loading and storing, but it won't be too bad.

Also, how do you plan to actually go about loading your data? Do you use UVA regions? If not, you will probably need to either increase the amount of system memory or write a streaming data input procedure.