Parallel Processing, Part 2: RAM and Hard Drives

Slobogob

Distinguished
Aug 10, 2006
1,431
0
19,280
It would've been interesting to see if the older Pentium 4s and Pentium Ds profit from Dual Channel. Overall an interesting article though. I wasn't surprised by the results though, since the core 2 architecture is quite resistant against bad memory.

The funny part is, i just bought a new mainboard to replace my old one so i can run my memory in dual channel AND have access to an RAID 0 controller to get a RAID going.
 

wirelessfender

Distinguished
Mar 19, 2007
273
0
18,780
I'm confused. So having a raid setup for speed doesnt affect gaming much at all? My friend has a raid 5 and boasts that his games will load faster than people with a single hard drive. Is this still true? From those bar graphs it doesnt look like it.
 

warezme

Distinguished
Dec 18, 2006
2,450
56
19,890


Is there a part 3, to this? I always thought parallel processing has to do with either multi-threaded application performance using several processors to crunch the info down at once or large scale multi-processor platforms doing huge number crunching like a server render farm.....???
 

KyleSTL

Distinguished
Aug 17, 2007
1,678
0
19,790
@wirelessfender: Yeah, I was wondering the same thing, all they did was run benchmarks. The fact there is little or no advantage (to RAID) as far as FPS in games goes, is not surprizing to me. But the real benefit is supposed to be load times, etc. Why didn't the author perform some good old stopwatch benchmarks for the setup (load times, file transfers, encoding, etc)?

The thing I'm really surprized about is that the dual channel memory had little effect. I would have thought this change should have a perceivable performance increase (5-10%, nothing huge). I wonder how running these tests on an AMD platform would have come out (because of the IMC, and lack of FSB). Or if they have lowered the multiplier and increased the FSB to run 1:1 at DDR667 or DDR800 but kept the operating frequency the same. I've heard all around that running ram on an Intel platform above 1:1 has VERY little effect on the performance (even in the synthetics). It could've even been educational to run the ram at DDR533 single-and-dual-channel and stock for the proc to see how that comes out. Somewhat of an unscientific approach to the question. A single control with multiple trials would have provided a better overall picture of hard drive and memory parallelism.
 


Load times are faster

But once its in ram its all up to the video card and cpu(and slightly to the sound card)

-----------

The memory is surprising to say the least.

My friend when running single channel has some serious reload to desktop times after some games(ETQW demo). This may have been due to half the memory(was not like that in dual...). but i am willing to bet there is also a memory speed thing there. unfortunately the memory was also found later to be not 100% compatible with the board....
 

joex444

Distinguished
Good stuff to know.

This article didn't prove that RAID makes no difference, it just showed that in games it won't increase frame rates (honestly, who thought it would?). There are tangible gains in the encoding segments, remember that a typical encode takes 2-4 hours, and they tested for 90 seconds, a 3-5% gain in speeds is somewhat meaningful, and capturing via IEEE1394 (esp HD content) will require a faster storage option, such as RAID.

That said, what they didn't show is if RAID makes Windows load faster or if it makes files copy quicker. I'm constantly working with 4-10GB files and moving those around on a single drive would suck. Like my sig says, I have RAID10 & RAID5 arrays. I can tell the difference, Vista benchmarked the RAID10 array at 130MB/s write (you can access the XML file for the vista index and get this data), something no single drive can do.

Basically, RAID won't make your applications run faster (except for a few rare ones, mainly video based), but should make them load faster. THG could test this if they cared to, but we've seen graphs of performance in terms of throughput, it would just duplicate these results.
 

russki

Distinguished
Feb 1, 2006
548
0
18,980
joex444 - no exactly correct. It makes sequential transfers faster. A lot of game loading requires decompressing textures, etc. and so RAID0 offers marginal benefits to gamers. There have been benchmarks done to prove that. Same for start-up.

File copying and media work absolutely do benefit; however, it is amazing that media work performance increase is, again, marginal.

File serving is where RAID shines, particularly with a good controller. And other application such as file moving, but that is hardly a very common operation.

The benchmark selection for RAID was, indeed, curious.
 

russki

Distinguished
Feb 1, 2006
548
0
18,980

One or both of two things are likely:
1) He is simply perceiving it as faster because he knows he has RAID
2) (and this is the more likely one) he is not comparing apples to apples - there are other factors interfering. Such as faster drivers in the first place hooked up to RAID. Maybe better file arrangement on the drive, etc.
 

choirbass

Distinguished
Dec 14, 2005
1,586
0
19,780
yeah, at least they made partial headway into benchmarking performance for games and raid 0... framerate comparisons werent quite what i was hoping for, but its at least better than many of the synthetic benchmarks that used to be only run for the most part, which often dont correlate very well for practical uses. they could have made a fairly large impact on their readerbase possibly, if they had chosen to benchmark load times instead, for a variety of different games even, instead of the nearly pointless fps comparisons.
 

MrCommunistGen

Distinguished
Jun 7, 2005
1,042
0
19,310
I think it would have been nice to have benchmarks done with 4 drive RAID 5 as well because I don't think many of us would actually use a 4 drive RAID 0. I say this because I'm sort of considering a RAID 5 for my next build. I know that in the server world its a big help but I was wondering more about normal desktop performance.

-mcg
 

Magnus

Distinguished
Apr 14, 2004
60
0
18,630
hmm i would love to see a load time bench in games, i think the load would be a much more fair bench than testing FPS since it hardly matters what drive you got for FPS.
 

DXRick

Distinguished
Jun 9, 2006
1,320
0
19,360
Why are there no multiprocessing tests, like running a virus sweep while while doing something else? What about batch processing files in Photoshop?

We need to see tests that actually involve HD access and multiple threads, where some threads are accessing the HD.
 
It was a bit stupid running fps benchmarks for harddrives. It does NOT increase fps. Sad part it doesn't bother using any real games that loads alot of data. Oblivion is just one example. HUGE amount of data being transfered throughout the ENTIRE game. It would be better knowing if raid vs single makes any difference in that respect (like the famous pauses of Oblivion).
It's already been proven raid does help with loading and writing data.
 

kittle

Distinguished
Dec 8, 2005
898
0
19,160


I dont think its stupid at all - it just proves the point (again) that a raid setup does nothing for FPS numbers.
 

kittyhawk

Distinguished
Sep 28, 2007
31
0
18,530
The Intel Pentium Dual Core (E21x0) CPUs should be included in the benchmarks.

This will allow us to see the impact of dual-channel vs single-channel RAM when a CPU with little (only 1MB) cache is used.
 

russki

Distinguished
Feb 1, 2006
548
0
18,980

Well I don't know who would expect the FPS to benefit, since most of the HDD interface is generally done at the level loading stage, after which the FPS part is limited by the processor / memory / GPU performance, I think that's what the poster was saying
 

gwolfman

Distinguished
Jan 31, 2007
782
0
18,980
Simple but good article. You should maybe have tried a different motherboard chipset for the memory to see if it acts the same way. I was very impress though to see how very little difference it made. That's good to know. I don't always have to recommend to people to buy dual sticks now, unless that's what they want.
 


As i said, and others. raid does NOT improve fps PERIOD. So the test for it is stupid, most ppl already know it. The REAL question is if it improves the loads within the games and/or improves the pauses within high loading games.
 

General_Disturbance

Distinguished
Aug 6, 2007
88
0
18,630
No, raid is not going to affect fps in general, unless you have a small amount of ram, and then you will have occasional hiccups as data is transfered from HDD to RAM when you enter new graphical areas inside the game or something. In general, a game tries to put all the data into ram because it can access it fastest from there. raid should increase load times and reduce said hiccups though.

Parallel or multi-threaded processing can be severely limited by the HDD. At work, I process terrabytes of image data at a time. It is far too much data to load into ram, so I have to read it and process it as it is read from the HDD. I've also multi-threaded the reduction software to use the 2 cores of my 4400+. You might see the problem here - how can you read data for 2 threads simultaneously from one HDD? You can't. I wrote it anyway to see what would happen, and it works out well.
1) One batch of data is loaded off the HDD and then sent for processing - all with thread 1.
2) The HDD is free to load data for the other thread 2.
3) When thread 2 is done reading a few milliseconds later, thread 1 has just finished processing its data and now thread 1 can freely access the HDD again, while thread 2 now computes.

The process is self-structuring for maximum efficiency without any programming on my part, other than setting up the 2 threads. Wicked! However, you can see it is a balancing game. I was lucky to have file sizes (hundreds of thousands of them) small enough to be read quickly enough - in the time it takes the other thread to do the computation in ram on the data. I get 100% utilization on both cores. If the file sizes were too large, then you would have threads waiting around OR the HDD trying to read 2 things at once, both of which are not efficient. Same thing happens if file sizes are too small, you will again be limited by the HDD. If the computations take longer than the HDD reads, then at least you're not limited by HDD read time. In my case, the computations are very fast and HDD access is the limit.

I have loaded small batches of data just into RAM to see how much faster it was....and it was like 20 times faster - IF it could process all the data from ram. But that data still has to be loaded off the HDD at some point, so I can't really effectively use that.
But at least I have the data reduction time less than the data collection time - if I could only interface my software to the camera then it could process the data in live time!!

One thing I haven't tried is to split my files between 2 different HDD's, and run 2 single threaded instances of my software each reading from a different HDD. At least threads wouldn't be waiting around for eachother to finish with the one HDD. However, since I was lucky and my data reduction time for each file is nearly equal to the data read time, and the process self-steps itself for maximum efficiency (implying only one thread gets access to the HDD at a time), I haven't needed to bother.

I am looking forward to getting my Q6600 system this christmas (in my informations). With 4 threads wanting HDD access, the balance I have now will definitely change...I will see how it does.

I am so intimately familiar with how fast this data should be reduced, I find it a great little way to personally bench my systems. I can bench HDD limited performance and RAM limited performance. In the ram limited case, all 4 cores can access the ram simultaneously and so I am expecting some huge improvements there. The software is a mix of FP and integer computations, so it gives a good test of the system overall - except the GPU of course!


edit: holy c**p. I just looked at the HDD performance for raid0. In my case of processing so much data off my HDD, this would make another HUUUGE improvement!! Wow. I have 4 500GB HDD's now, all their own drives, no raid. I should raid0 two of them!
 

DXRick

Distinguished
Jun 9, 2006
1,320
0
19,360
RAID + multiple threads will improve the performance for read only requests. Attempts to open a file for read/write access cannot benefit from multiple threading, because the OS must serialize accesses to the file to ensure there are no simultaneous clashes. So, it does NOT benefit the Windows swapfile accessing (though RAID could).

Games are about the only application that would read a lot of data files without the intention to write back to them. So, they could benefit from data management processes that ensure the data most needed is most likely to be available. I believe that most games now have a data/memeory manager that does just that.
 

General_Disturbance

Distinguished
Aug 6, 2007
88
0
18,630
Good to know. For my data, I am only opening for read, not writing to it. The reduced data gets stored in ram until the sequence is all done...I only pull out a few bytes of data per 512kB, so I can easily process 100000 files and keep the results stored in ram until I am done.
 

virtualban

Distinguished
Feb 16, 2007
1,232
0
19,280
If I have a winrar compression to do, I don't stare at it until it finishes. I just put it in background mode and do something else. And, as difference between multicore and single core seems small to justify, I generally set it up to run in single core. Who of you just put a video compression or winrar to work and just do nothing until it finishes? True, you can run it overnight, but, as the term says, you are supposed to give just one command at the computer before going to sleep. If I decide to let my system run overnight, I try to make sure it has work to do. I generally don't like the "shut down after finishing" option, that's why. So I might put 2 video conversions and 2 winrar, and, if I had internet at home (which I would never do to my main computer), some downloading software too. All of them possibly on a single thread mode and on different priority from the task manager (below normal to low, just in case I have to do something else, explorer having the higher "normal" priority would answer to me). As I said earlier the choice between single thread and multithread when I am multitasking is obvious, but not as important as what to do on what thread number and priority when you are on the computer. I have noticed the difference since my Hyper Threading P4. What I would have liked to see, an important experience/knowledge gain, is the winrar or video conversion running in parallel with a game or any other application, but on a different hdd from the one of the game and on a different single thread. Versus multithread but lower priority, and verus Raid0 on the same array instead of on 2 different hard drives. And, of course a small downloading program running in background, as this is what generally happens.
And what about a big and cheap memory compared to a smaller and faster one? If for the memory in the article it almost did not make any difference single and dual channel, for a more demanding setup it could, or for a slower memory in the case I wish explored. Most of the readers are system builders, for hobby in the smallest case. Would you tell a friend to go with 4 GB of dual channel "slow" memory or 2 GB of high end that would never be put to good use?
All the previous suggestions still stand IMO. Mine are just an addiction to the mass. It is a huge work to test all the different setups, but I think it will attract a great number of readers too, to pay with their add support :)