Tilted Forum Project Discussion Community  

Go Back   Tilted Forum Project Discussion Community > Interests > Tilted Technology


 
 
LinkBack Thread Tools
Old 03-25-2008, 06:37 AM   #1 (permalink)
Addict
 
hiredgun's Avatar
 
Rusty on hardware - building data-crunching PC

Five or six years ago I used to build PCs (budget gaming or general home use) but I have been out of the game so long that it feels a bit intimidating trying to get back into it. I am not so lazy that I will simply ask you all to come up with full builds, but I could certainly use a few pointers to help me back on my feet.

What I need to do is build a new PC whose sole purpose will be to process very large amounts of data. So graphics is a non-issue; a very cheap optical drive will suffice; and the box will definitely be running Linux (probably Debian or openSUSE) as the primary OS.

My instinct tells me that since intense data analysis is computationally intensive, I want to jump for a quad core or even dual quad core. Is this correct? (I am potentially worried that a Linux distro might not take full advantage of the most modern processors... so am I better off with a dual core?)

My guess is also that I should get a decent, but not necessarily gaming-strength amount of RAM - say 2GB.

For the hard drive, I would eventually like a hardware RAID array to insure against the loss of data, but for the moment a single ordinary high-speed drive will do. 7200rpm is what I should be looking for in terms of speed, right? Or are faster drives widely available now at decent prices?

For anyone who can't take the time to give specific hardware recommendations, I would also truly appreciate being pointed to any particular threads or articles that give a concise overview of the current state of hardware... what are the common features of today's motherboards, what chipsets are now in wide use, what kinds of RAM are available now... etc. If such a resource exists, that is.
hiredgun is offline  
Old 03-27-2008, 03:20 AM   #2 (permalink)
Junkie
 
Location: Melbourne, Australia
Well, there's a lot of multi-processor linux servers out there - even using old style one 'core' per chip. On that basis I'd think linux will be fine with a multi-core CPU. I like solaris myself - but linux has been around for a couple of decades now.

Because I don't know what you intend to run, what might be the bottleneck of the system. In my world (database land) it's rare that the disk systems can keep more than a few CPUs fed. But that's partly because of the way the systems are set up, and how the queries are written (often badly).

So getting back to your system. Can you define
- how big your program is
- how big your data set is (will it fit in memory... might it fit in CPU cache)

These are the factors drive your decision, ie to spend on faster memory or more cores, or less cores with more cache etc.
Nimetic is offline  
Old 03-27-2008, 02:48 PM   #3 (permalink)
I'm a family man - I run a family business.
 
Redjake's Avatar
 
Location: Wilson, NC
The main factor you need to consider is not hardware - it's what your software applications will utilize. No reason to get a quad-core CPU if your data-cruncher won't even use it.

Reminds me of the days when dual-CPU PIIIs came out and everyone jumped on them, only to realize Quake III was about the only game that would ever even touch the second CPU

Make sure your application will utilize the hardware, then we can spec it out.

Now is the right time to purchase - you can get an insane amount of power for cheap!!!!
__________________
Off the record, on the q.t., and very hush-hush.
Redjake is offline  
Old 03-27-2008, 07:16 PM   #4 (permalink)
Addict
 
hiredgun's Avatar
 
Ah, good questions. If only I had answers.

As far as the data set, it is likely to be far larger than our memory capacity (perhaps as much as a few TBs... hopefully only some small subset of that).

As for the software, well... it's not entirely clear at this point. Most likely we will be writing most of the analysis tools ourselves (obviously borrowing heavily from existing libraries). Essentially we will be mirroring a fairly large database locally, and then writing scripts that parse that data looking at particular fields and attempting to find patterns.

It sounds like you guys have a good deal of experience in optimizing this stuff, which is wonderful. I've fallen so far out of the loop though that even very basic advice would be nice. Say, for example... what class of motherboard would I buy for various setups?
hiredgun is offline  
Old 03-28-2008, 05:36 PM   #5 (permalink)
Young Crumudgeon
 
Martian's Avatar
 
Location: Canada
Are there any budget concerns here, or is it simply a case of 'build the machine that will parse this data in the shortest possible time?'

If you're mirroring off-site data to an on-site network drive, network setup is going to be a crucial factor. Local storage should probably be optimized for speed rather than capacity. Setting up a striped array of Western Digital Raptors will give you a nice fat pipe with low seek times, which should be helpful. Feed the system through a gigabit ethernet connection to try to minimize bottlenecking there.

Linux is your OS of choice if you're writing your own software, which I imagine you've already concluded. I don't know that Debian or Suse will be the best distro though; you're probably going to be better off with a minimalist distro like Slackware. I like Debian (and am writing this on a box running Ubuntu), but from the sounds of it you don't really need the package management or all the extras, so why not go with a distro that doesn't use all that stuff? Less is more here.

Linux is fully capable of multithreading, but bear in mind that your software will need to be optimised to take advantage of it. From a logical standpoint, two or four cores on one processor is the same as two or four processors with one core each. I've never done any coding in this vein, so I don't know what you'll need to do to take advantage of it, but I'd imagine that there's a library and documentation available on the interwebs. I'd research that; once you have an idea of how difficult it will be to optimise your code to take full advantage of multiple cores, you'll be able to get a better handle on how beneficial a dual or quad core system will be. If one ignores cost as a factor, the Intel processors far superior in the area of raw data processing than the AMD equivalents, however.

As for a motherboard, my initial thought is something built around an X38, such as the Asus P5E3. I'm going to have to do some research into architecture before I can be completely sure on that, though.
__________________
I wake up in the morning more tired than before I slept
I get through cryin' and I'm sadder than before I wept
I get through thinkin' now, and the thoughts have left my head
I get through speakin' and I can't remember, not a word that I said

- Ben Harper, Show Me A Little Shame
Martian is offline  
Old 03-29-2008, 12:03 AM   #6 (permalink)
Junkie
 
Location: Melbourne, Australia
>>>Essentially we will be mirroring a fairly large database locally,


Ok. How often do you have to sync? This could a painful process. Gigabit ethernet is fast - but not sure if fast enough. It's worth calculating the transfer time.



>>>and then writing scripts that parse that data looking at particular fields and attempting to find patterns.


On this note.... Here's the questions. This is just informal weekend thoughts ok. I'm on my day off (and am just running on minimum coffee).

- How much data do you expect to hold in memory at one time.

- Can you realistically work on a small chunk of data at a time?
Independant of the rest (this has implications for your programming too)

- Will you be doing large hashes/sorts or other calculations that will spill to disk,
causing contention between reading an writing activity?


On CPUS... Suggest you look at the intel models. Unless you are scaling past 4cores.

The AMD/Intel commodity processors are well compared on tomshareware.com by the way. ie they have graphs. Anandtech is another site. Although like Toms... they only deal with retail/commodity processors.
Nimetic is offline  
 

Tags
building, datacrunching, hardware, rusty


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -8. The time now is 04:24 AM.

Tilted Forum Project

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Optimization by vBSEO 3.6.0 PL2
© 2002-2012 Tilted Forum Project

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360