23rd June 2008 - 06:07 PM
The issue is not with multithreading itself, but the single processor architecture they're trying to fit into a multithreaded system. If you have fine enough threads and efficient hardware to handle the overhead, it's a matter of software engineering to extract the potential from the hardward (the capabilities of hardware are outstripping the ability of software engineers to take full advantage of - reconfigurable computing is a good example of hardware that is capable of providing very large increases in speed and efficiency, but it takes a very skilled engineer to realize these potentials - software typically written for a PC is very inefficient).
The most efficient large scale manner of performing computations is to have a diverse array of computation specific processors and effectively time-share applications on them. There might be a day that instead of buying a new program, you have a single application specific computer built to perform some computations and then people network to use it (much like a classical terminal/mainframe approach). Of course, this would be best suited for applications with low bandwidth, higher latency and computational loads. In the EDA arena, they could, for example, instead of writing a single program to be distributed and run independently on many PCs, design a custom hardware engine (likely deeply pipelined) that could quite easily run thousands of times faster than a single PC for limited applications and then simply multithread requests from different users (as an extreme example, imagine a 100 deep hardware pipeline with each stage carrying individual user data - now that's a bit better idea of what multithreading is capable of - it's not multithreading, that's the problem but trying to take typical single thread coding written for a general purpose processor and convert it into multiple threads of execution. You really need to start from something closer to scratch in terms of hardware and software design to take good advantage of parallel processing, but there aren't good industral standards for people to agree upon and many software engineers would require quite a bit time to relearn coding for parallel applications).
The proportion of gates that compute is already so small in a CPU!
Very true. The overhead of getting the data you want to the hardware processor you desire at the right time, is what most the hardward is devoted to doing. An application specific redesign removes much of this overhead and allows for a lot of optimization to the computations to be performed as well.
24th June 2008 - 10:09 AM
QUOTE (Enthalpy+Jun 24 2008, 03:17 AM)
Willing to put a monothread software on a multicore processor? This shall be the future? Fine! It saves power as the other cores do nothing.
Unless somebody finds a way to make efficient single-thread chips, mutitasking is a necessity. Sure, software producers dislike it.
Worth pointing out: multithreading != multitasking
Multitasking = multiple processes, CPU swaps between them, etc.
Multithreading = splitting up a single process into multiple 'lightweight' processes so that different functions in a single program are multitasked
So the other cores wouldn't be doing nothing, they'd be running other processes.
(the article is still bunk, though)
24th June 2008 - 05:57 PM
What is anoying that when there is processors with multicores then need new program OS, unlike in GPU. And don't have evidence about fastelity. Many years many cores wasn't needed until frenquency of processors stop grew. Better it would be some twice weaker celerons and pentiums and not 2 or 4 cores and 1... Or like in GPU, can be celeron, bullshiton and pentium...
30th June 2008 - 03:41 PM
multithreading != multitasking
But I want my computer to push ONE application quickly at a time. Have a look at your task manager, only one program at a time needs CPU power.
Maybe we find more comfortable to run an antivirus through all files while making urgent tasks directly for the user, but this is not very important, and we're at one-and-a-half tasks then. Though, processors already have 4 cores and would have hundreds of cores - like on GPUs - if only software were written for that.
So yes, we need heavy multithreading, because I'm interested in only one result at a time.
30th June 2008 - 06:23 PM
I echo Enthalpy. Good job.
PhysOrg scientific forums are totally dedicated to science, physics, and technology. Besides topical forums such as nanotechnology, quantum physics, silicon and III-V technology, applied physics, materials, space and others, you can also join our news and publications discussions. We also provide an off-topic forum category. If you need specific help on a scientific problem or have a question related to physics or technology, visit the PhysOrg Forums. Here you’ll find experts from various fields online every day.
To quit out of "lo-fi" mode and return to the regular forums, please click here