Kmarion

Distinguished
Nov 27, 2006
13
0
18,510
Can someone give me a brief lesson or possibly a link to explain to me how the 6800 is beating the quad cores in many different benches? I briefly read an explanation once but have since lost it and unfortunately I did not retain the information :(. TIA I think it had to do with FSB speeds but I am unsure.
 

Kmarion

Distinguished
Nov 27, 2006
13
0
18,510
the quad was @ 2.6 and the X6800 is @ 2.9

So its down to the extra speed for a single threaded app

in apps that can use the quad...it will clean up
I figured but unfortunately the software needs to catch up. There aren't too many apps out there utilizing dual even now. I don't see any coming anytime soon. So essentially paying 1700 usd for a chip that will be beat by a chip nearly 600 usd cheaper is ludicrous.
 

qurious69ss

Distinguished
Mar 4, 2006
474
0
18,780
Simple, quad is running at 2.6ghz while the duo is running at 2.9ghz. Benchmarks that have the 2.9ghz winning were only written to take advantage of two cores, thus the software only saw a 2.6ghz duo vs. a 2.9ghz duo. When the software is written for 4 cores the quad kicks a$$, because the quad will use all 4 cores while the 2.9ghz duo can only use 2 cores......it's all about the software.
 

redwing

Distinguished
Apr 21, 2004
323
0
18,780
If an application is not optimized for multithreading, it will keep bottlenecking at one main thread. Thus, since the x6800 has a faster clock speed, it will run that single speed faster on 1 of it's 2 cores than the QUAD will run it on 1 of it's 4 cores. Capish? :)
 

pshrk

Distinguished
Oct 15, 2006
518
0
18,990
Its about the software, and the problems that the software is solving. The software has to support multiple threads, but even then you may not get the results you are expecting. Some problems scale very well and doubling the number of cores will half the execution time. Other problems do not scale so well and you will get diminishing returns. Some problems are inherintly single-threaded and cannot be sped up by adding more threads/cores.

Parellization is a problem if not everyone has multi-core processors. For example, when parallelizing a problem you may divide a single problem among four threads. It is entirley possible that after doing this your program will only run twice as fast (because you had to redesign the algorithm to make it parallelizable) on a processor with four cores, which is great, except what if someone with only one processor tries to run the code? It would run twice as slow!

Lots of people are into photo editing and video encoding. Most of those applications will see a huge speedup. It would be reasonable to assume that in about a year many more games will be taking advantage of multiple cores.
 

Kmarion

Distinguished
Nov 27, 2006
13
0
18,510
Yes Ive seen more of a difference when I am running 2 programs at once. Like while I burn a dvd using a cpu intensive program like quickpar. There is just not one single program taking advantage of it yet.(for me at least)
 

Unearthly

Distinguished
Oct 3, 2006
41
0
18,530
It is entirley possible that after doing this your program will only run twice as fast (because you had to redesign the algorithm to make it parallelizable) on a processor with four cores, which is great, except what if someone with only one processor tries to run the code? It would run twice as slow! .

That's not true. While multi-threading has some overhead, it is extremely small unless you are trying to create thousands of threads. A single core processor would not have a noticeable difference between running a process multi-threaded or only as a single thread. The problem is the same whether you thread it or not, and it still takes the same number of processor operations. On a single core, it will simply switch between the threads based on thread priority however this switching is very fast, thus it will emulate a single thread application on a single core. However, if you can dispatch each of these threads to 2 or 4 cores, the execution time will dramatically decrease.

So, multi-threading is almost strictly better, why doesn't everyone do it? It's more difficult to code. Which means more money spent on projects and for things such as games, where processor performance generally isn't a bottleneck, there simply isn't a justification for the cost to code a program multi-threaded vs single thread.

However, this is slowly changing with the addition of extremely complex physics as seen (or we will see) with companies such as Valve and Remedy.
 

pshrk

Distinguished
Oct 15, 2006
518
0
18,990
Yes it is true, I have done my share of MPI and pthreads coding. Many problems can only be parallelized by rewriting the entire algorithm in a far less efficient manner. Note that i'm not simply talking about the threading overhead, I'm talking about the basic structure of the algorithm used to solve problems. There are many problems that benifit from multithreading regardless of how many cores you have, however multi threading is most certianly NOT strictly better for those people that have one core.

Take LU Factorization for example. If you know how to multithread it on a single core without getting a slowdown you will most certianly be rewarded with an honorary PhD from any university you want. In my opinion a majority of problems are of this nature, they see a benefit from multithreading on multiple processors/cores, but will actually see a significat slowdown if run on a single processor/core.

In addition you fail to consider the increased memory bandwidth due to mutithreading on a single core with a single cache. This could cause an exponential slowdown in your programs execution time.

This is why a major use of multi core systems will be to add more effects (like physics) without increasing the performance of the game.

Like you said its difficult to code... why because everything dosen't scale as nicely as you make it sound.
 

kamel5547

Distinguished
Jan 4, 2006
585
0
18,990
io capisco
just trying to understand the justification someone would have for purchasing a quad at this point and time. Grazie

1) THere are multi-threaded apps, if you happen to use one it may be worthwhile.
2) It may be more cost effective to buy a quad than two duals in cases where you have single threaded apps running for long periods of time concurrently (i.e. single threaded modeling can take days, running four models concurrently on one machine is cheaper than buying two machines to run the smae 4 models)

Of course most people who buy a quad either want bragging rights or don't understand that their software won't utilize it....
 

PCAnalyst

Distinguished
Nov 7, 2006
467
0
18,780
What about setting the affinity among the cores... does that not also provide incentive to use the quad over duo?

If you can go through users main programs and set which core will be utilized for that program.... especially with an OC... would that not show vast improvement in speeds from a real world point of view?
 

pshrk

Distinguished
Oct 15, 2006
518
0
18,990
For general purpose computing the kernel usually does a pretty good job of assigning processes to cores. I'm sure there are some special circumstances that you could get some speedup. For example if you were designing a game you might want to make your game automatically reserve a specific core for physics processing, one core for AI, etc...

Its not exactly what your talking about but i did try the following: I tried setting the process affinity for UT2004 on my dual core system to see what effect it had on performance. I didn't notice any change in performance. One forum member reported much improved performance for setting the process affinity on UT2003 (before setting the process affinity the game was stuttering/stalling).

In general because you don't know what processes will be running at the same time I think it would be wise to let the kernel decide what cores to assign to which processes. Although if you had reason to do this quad cores would definitely give you more flexibility.