What Does it Mean if my CPU is Multi-tasking?

halfpower

Senior member
Mar 19, 2005
298
0
0
Okay, so AMD chips win out on single tasks, but for multi-tasking a Pentium with hyperthreading enabled, can boost performance by 10% to 30%. The thing is that I currently have 33 processes running. Why is this not considered multitasking? What would be considered multitasking?
 

ProviaFan

Lifer
Mar 17, 2001
14,993
1
0
Originally posted by: halfpower
Okay, so AMD chips win out on single tasks, but for multi-tasking a Pentium with hyperthreading enabled, can boost performance by 10% to 30%. The thing is that I currently have 33 processes running. Why is this not considered multitasking? What would be considered multitasking?
Most of those processes are sitting idle, or in other words, not doing anything. Sometimes one of them will come forward for a second and do something every now and then, but that would not be noticeable. That is multitasking in one sense, but it is not demanding and wouldn't show up any "weakness" in a single-core processor. The kind of multitasking that HT or Dual Core processors really help with would be like rendering an animation in Maya while drawing graphics in Illustrator, running a filter on an image in Photoshop, and talking to people on an IM client.
 

halfpower

Senior member
Mar 19, 2005
298
0
0
Let's say I have a multi-track audio recording program, a 15MB software program is controlling audio effects on my sound/DSP card, a MIDI synthesizer program, and have GAIM all running, am I multi-tasking yet?
 

ProviaFan

Lifer
Mar 17, 2001
14,993
1
0
Originally posted by: halfpower
Let's say I have a multi-track audio recording program, a 15MB software program is controlling audio effects on my sound/DSP card, a MIDI synthesizer program, and have GAIM all running, am I multi-tasking yet?
Of course...
 

Vee

Senior member
Jun 18, 2004
689
0
0
Originally posted by: halfpower
Okay, so AMD chips win out on single tasks, but for multi-tasking a Pentium with hyperthreading enabled, can boost performance by 10% to 30%. The thing is that I currently have 33 processes running. Why is this not considered multitasking? What would be considered multitasking?

- It is most certainly considered "MULTITASKING"!

The concept of "CPU multitasking" is absolute rubbish!
These ideas are just misconceptions, partly created by some posts about hyperthreading on forums. It often ignores the fact that most Intel CPUs does not have hyperthreading, or have hyperthreading disabled. The intention is maybe sometimes to create a perception among Intel runners that an AMD cpu would perform poorly on multitasking, were they to switch platform.

Multitasking and multithreading is something the OS and software do.
It involves many things to make technically possible. Many events have to be synchronized to be performed in the right order. Many resources must also be protected from being accessed by more than one thread, during the duration that said thread must make / makes assumptions about that resource.

For an OS to run multiple applications simultaneosly, it either need to have a program model that allows multiple apps to run on the same single thread. This is what early Windows and Apple Mac did. In Windows there is a messagequeue that drives the applications. Each application responds to a message and then immediately returns to the messagequeue. The messagequeue is thus able to drive all apps on a single thread.
That thread winds its way through applications and OS. This was the program model for Win16 and Win32S APIs. This mechanism is called cooperative multitasking.

... - Or it need the ability to run multiple threads, seemingly simultaneosly. This is called preemtive multitasking. This feature is provided by all modern Windows OS'es W95, W98, ME, XP, NT, 2000, Recent Apple OS'es 9 and X, UNIX/LINUX, Be, Amiga and Symbian.

It requires the OS to run a special task, called sheduler. The sheduler has a list of running processes and threads, and their status. It breaks execution at intervals and computes which thread/threads to run next, and for how long.

For it to be possible for a program, in turn, to run multithreaded, the OS API and program model must supply means for the software to do contention handling and synchronization. As well as the ability to create and start another thread, of course.
This is what the program model for Win32 and Win64 provides. It also provides a separate messagequeue for each application. And these are all unserialized (and this is a very good thing).

Now if you happen to have multiple CPUs, physical or logical, the sheduler can release one thread to each CPU. But make no mistake about this: - It is the OS' sheduler that performs the multitasking/multithreading! - It has NOTHING to do with your CPU!

But sure, if you have two CPUs, and the OS supports them, it is an advantage that the sheduler can release two threads, or four for four CPUs, whatever. It has however nothing to do with multitasking as such. Regardless whether you run 33 tasks on one, two, four or eight CPUs.

In practical terms, whether you experience "good" multitasking properties, or not, have not much to do with the CPU. (Large caches and clever memory mapping helps a bit though.) It's mostly in the design of the OS, and its way of handling contention and synchronization inside its OS resources. And in the shedulers way of releasing threads. There are conflicting interests in Windows and any OS.
Some of the issues may sometimes be nullified if the sheduler is relesing two threads.
That is one reason why dual CPUs sometimes may subjectively affect the responsive experience in Windows. Hyperthreading represents two logical CPUs whithin one CPU. This means the sheduler will release two threads. Just as it would do for a dual CPU setup. The single CPU still cannot run two threads simultaneously.

So in short, hyperthreading makes the OS' sheduler treat the CPU differently. That is all. (Often this leads to stability issues, which is why Dell servers, for instance, have this ht-feature disabled).

Stalling threads are quite costly on the P4. Hyperthreading allows the CPU to run the other thread. That is why performance can increase slightly for hyperthreading P4s.
Hyperthreading is a questionable feature. I'm quite sure no Intel CPU, after the P4, will ever again have this feature.

The trickery you see on THG, and other Intel henchmens "tests", is just that: Tricks, involving playing the Windows sheduler to give the illusion of a hyperthreading advantage. It has nothing to do with reality or real computer use. Which is ultimately exactly why not even Intel is interested in hyperthreading anymore.

Edit: Preface content deleted.
 

Elcs

Diamond Member
Apr 27, 2002
6,278
6
81
Originally posted by: SrGuapo
Originally posted by: Vee
Long very detailed explanation...

Wow, excellent post! Just about sums it all up...

Quite.

Explained a few things I didnt know. This post would be amazing in an FAQ and question fits perfectly.
 

richardrds

Senior member
Dec 7, 2004
303
0
0
Damn, Great post Vee!!!!

I have a degree in Telecomunications Engineering, but no Data Communications, but the way you just explained that I understood every point you were making. Excellant job, and I vote to make your reply a "STICKY" !!!!!!!!! :) :) :)
 

fatty4ksu

Golden Member
Mar 5, 2005
1,282
0
0
The intel just feels more efficient w/more programs open than an AMD chip.

The x2 blows all of that away.