• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

About Cpu efficiency

policeman0077

Junior Member
I am a newbie, have quite a lot of questions after reading the review of bulldozer.

1. what is heavily thread tasks? Does browsing a lot of website simultaneously count?

2. if single core cpu A and B have same frequency but different efficiency and work on same task without full load. They will accomplish the task in same time?

3. so if single core/thread performance is very important, the situation I aforementioned(if is true) totally doesn't show the benefit of a high efficiency core? (didn't consider power consumption.)

4. Does many application will let a core fully loaded and they won't split the task to another core? What kind of application suit this kind of situation? Any example?

5. in the case of 2, if another application request cpu's resource, will the core with high efficiency get quicker response?

6. in the case of 2, consider multi core cpus A and B. if one core of these two cpus are nearly full loaded, at the same time, another application request the source of cpu. And the operate system decide to let this application work on another idle core. Will higher efficiency core response fast?
 
does matlab count as heavily thread task?I heard matlab use a lot of FP resource? If so,how can bulldozer beat i5 with only 4 lower efficiency FPs ?
 
I am a newbie, have quite a lot of questions after reading the review of bulldozer.

1. what is heavily thread tasks? Does browsing a lot of website simultaneously count?

Welcome to Anandtech forums. I hope you enjoy your stay.

Answer: You got the right idea. But I doubt you'll truly be fast enough to do multi-tasking in a way with browsing to make the modern day CPU think you are "multi-tasking"(unless talking about really slow CPUs like, ARM). More like quickly switching between tasks, and that's single-tasking, but fast. 🙂

2. if single core cpu A and B have same frequency but different efficiency and work on same task without full load. They will accomplish the task in same time?

No such thing as a true "without full load". Even if the CPU isn't fully utilized, the CPU is doing the best it can. So yes, the more efficient one will finish faster. And I assume by "efficiency" you mean its faster at the same clock. Better way of putting it is "increased performance per clock/core".

3. so if single core/thread performance is very important, the situation I aforementioned(if is true) totally doesn't show the benefit of a high efficiency core? (didn't consider power consumption.)

A: same as above.

4. Does many application will let a core fully loaded and they won't split the task to another core? What kind of application suit this kind of situation? Any example?

A: Back in the days when there was dual cores just coming out, it was an all around win. Cause there are lots of cases that even if you are using only one core primarily, you might get few % gains by inherent inefficiencies, like background apps. But comparing say 4 vs 6 cores, it does not matter. 4 is already plenty.

You may need a hauler, but would a small truck do the job for you or do you need something to carry 747 parts from one location to another?

iTunes, and Lame is single thread only application I believe. I'm pretty sure there's more. There's "single thread" application then there's "not so fully multi-threaded" application, which is more relevant nowadays.

5. in the case of 2, if another application request cpu's resource, will the core with high efficiency get quicker response?

A: Yep, and read my response for #2. The faster one will finish the first task faster, and therefore finish the second one faster.

6. in the case of 2, consider multi core cpus A and B. if one core of these two cpus are nearly full loaded, at the same time, another application request the source of cpu. And the operate system decide to let this application work on another idle core. Will higher efficiency core response fast?

A: Yes.
 
does matlab count as heavily thread task?I heard matlab use a lot of FP resource? If so,how can bulldozer beat i5 with only 4 lower efficiency FPs ?

Because no real world applications truly stress "only the FP unit" or, "only the branch prediction system". It uses everything the program needs to complete the task. Bulldozer might have "only 8" FPUs*, but has 8 cores.

*Bulldozer has 2 128-bit FPUs per module, aka 2 cores. Just like Intel CPUs like the Core i5 you mentioned have 2 128-bit FPUs per core. You need one for Multiply, and another for Add.
 
1. what is heavily thread tasks? Does browsing a lot of website simultaneously count?

Multi-threaded apps initiate threads inside the code. Threads aren't the same as processes. Threads share the same program memory, processes each have their own memory.

Browsing multiple websites, the keyword being multiple, is in itself an example of multi-process, not multi-threading. However, using multi-tabbed browsing starts to approach multi-threading. The key to heavily threading a task is having a single program (or process) divided into sub-tasks that can execute simultaneously. As IntelUser said, you aren't that fast, and the parallel aspect of it is short-lived and you are hard-pressed to differentiate a single fast core from two or more cores, because the time-slicing is done at the microsecond level, more than a human can see.

An actual example of multi-threading in browsers is a single page load with a lot of content. Invidual images, javascript files, css files, etc. will be downloaded in parallel. However, even so, this is primarily what we call an "IO-bound" process; a lot of threads running, waiting on network data to download.

A better example of actual heavily threaded task will be a single program that is specially written to break itself into smaller work units, where the OS scheduler can run these work units (threads) in parallel, on different cores. Programs where the workload can be distributed among multiple threads can sometimes scale with more cores. Virus-scanning, spam-filtering, filesystem encryption or compression can be somewhat broken into threads. So the program has to be redesigned for it.

Even better example is rendering. Rendering involves physics calculations across a 3D scene, performing ray-tracing. Ray tracing can be done highly threaded because we can assign each thread a specific "window" or "tile" to render. Each tile has its own area of light rays to bounce off the 3D model.

If you really want the best visual example of true multi-threading, download Cinebench and run the benchmark. You'll see the rendering happing in a per-thread tile in parallel.


4. Does many application will let a core fully loaded and they won't split the task to another core? What kind of application suit this kind of situation? Any example?

Absolutely, it often can't split. Most simple applications fall in this category. By default, a programmer writes a program without threads. If a program isn't written to be threaded, the OS cannot break the task down further than the single program. The OS is somewhat "ignorant" of the parts of the program that can execute in parallel, so it doesn't break the program in pieces for you. You, as the programmer must do this. All the OS can do is schedule your program. It is the CPU that actually runs your program. The one place where you can get "multi-threaded" in a sense is using non-blocking or asynchronous IO, reading/writing data (network, disk) but instread of _waiting_ on the IO operation to complete (data to arrive) you do other work in the meantime, so the OS is working on another core. A browser is one example, it can request 5 images, then as they start arriving, your program can start rendering the page while other images are arriving in the OS "thread". The truth, though, with new browsers is they use a combination of threads and async IO. The difference between a "thread" in a program, and an OS task is who is in control and who initiates it. You initiate program threads, and the OS initiates its processes.

Many programs don't benefit from multi-threading, so programmers don't use threads unless there is benefit, since it introduces more complexity and also can introduce bugs into otherwise simple software.

6. in the case of 2, consider multi core cpus A and B. if one core of these two cpus are nearly full loaded, at the same time, another application request the source of cpu. And the operate system decide to let this application work on another idle core. Will higher efficiency core response fast?

This is OS scheduling. If the scheduler is proper, it will schedule hungry applications onto idle (available) cores before using a loaded core. The goal is to distribute the work across all available cores before overloading any single core with more work.

I'm not quite sure what you mean by "higher efficiency core response fast".
 
Back
Top