64-bit?

The way a single core CPU works is by switching between program commands in order to give the illusion of concurrency. In reality, the CPU is processing calculations from each program individually and no two processes are using the core at the exact same time.

It would be fairly easy for a CPU to handle commands from two processes in different ways.

Multi-core processors do allow multiple processes to run at once (but each must be on a different core) and I assume that each core can be switched between 32 and 64bit calculations independently to avoid conflicts.

More information about scheduling algorithms that are used to decide what process gets to use the cores at what time is available here
 
Disgustipated said:
I don't see where 32 or 64 bit is checked. Is it under applications or processes? I'm not technical savvy, but it just seemed to me that I do have 2 programs running at once.

It is under Processes. And 64bit processes are not marked at all.
There is many more processes running in background than applications launched by user (or visible on desktop). As seen in Task Manager under Processes tab.
 
so that is why multicore is so valuable and hyperthreading is useful
 
so that is why multicore is so valuable and hyperthreading is useful

Just because on multicore/multiprocesor programs or threads (single program may have many working threads) may run really simultaneously.
If two programs/threads makes computations which would take 1 hour for each it would take (no wonder) 2 hours on single-core 2GHz, on two 2GHz core/processors it would take 1 hour.

For hyperthreading thing is slightly more difficult (to explain).
Contemporary processsors (even single-core) have multiple execution units and potentially can make several instruction at once. However this potential cannot always be utilized fully.
Sometimes next instruction in queue operates on result of previous and must wait on their completion. Or instruction waits for data from memory to be read. In such cases queue must halt and execution units are underutilized. To minimize performance loss caused by such halts, two threads are executed on single core.
There is chance that when first thread (or queue) halts the second can run at full speed on (otherwise underutilzed) core.
Of course it does not cause automagically that two threads/programs that otherwise would complete its work in 2 hours will make it in 1 hour.
Work stoppage happens only from time to time (depending on particular program) and by rest of time core is heavy loaded.
Anyway time of completion would be less than 2 hours.

For programs that does not compute much multicore and hyperthreading does not matter too much. Such programs most of their time are sleeping.
They says to system "wake me if XYZ happens". XYZ may be "datas from net arrived" or "user pressed a key, clicked on mouse button in program's window" etc.
 
A 32-bit OS can't effectively use 4 gigs of RAM (the max is around 3.2 gigs), so even with 4 GB RAM, a 64-bit OS preforms better even when running 32-bit.
Want to use 4 GB or more of RAM? Upgrade to 64-bit.
 
Unless it is 32bit Windows Server 2003/2008 (except of cheapest variants of). Using PAE the memory is divided to 4GB chunks and programs have access to the memory as they have to the page file - transparent (i.e. they does not need be speciffcally written to use the excedded memory, after all they operates on their private address space that always starts at 0). Desktop versions of 32bit XP and Vista/7 are artificially capped to 4GB address space (as mentioned by deanej this includes the video card's memory and memory of other devices).

Personally I was using Server 2003 Enterprise by short time with 5GB of (visible to system and user) RAM.
 
Back
Top Bottom