Download the Tom's Hardware App from the App Store
The reference for current tech news
Yes No
Ads

Researchers Bring Threading to Word Processing

by - source: Tom's Hardware US

NC State researchers figured out a way to separate memory management from common software processing, finally enabling multi-core support.

Researchers from NC State University have discovered a way to break up programs such as web browsers and word processors so that they can use multiple threads. While this ability is already in use with PC games and many other applications, some common programs still dump the entire process operation onto one core despite current multi-core CPUs now available on the market.

According to the researchers, breaking up the more traditional programs into multiple threads means a possible overall 20-percent increase in performance. From an enterprise standpoint, this is good news, allowing workers to be more productive, saving time and money. Unfortunately, the current solution for "hard-to-parallelize" programs isn't merely a simple fix, nor is it readily available.

So what exactly is the solution? "We’ve removed the memory-management step from the process, running it as a separate thread," said Dr. Yan Solihin, an associate professor of electrical and computer engineering at NC State, director of the research project (and co-author of a paper describing the research).

Typically a program will perform a computation, then perform a memory-management function, and then repeat the process via one processor core. Using the new approach, the computation thread and memory-management thread are executing simultaneously (in parallel), allowing the program to run more efficiently. Most of today's consumer apps don't utilize multi-core CPUs effectively, but that may change down the line thanks to new programming and compiler technologies such as this one.

"This also opens the door to development of new memory-management functions that could identify anomalies in program behavior, or perform additional security checks," Solihin said. "Previously, these functions would have been unduly time-consuming, slowing down the speed of the overall program."

Solihin and the group of NC State researchers plan to present their findings in a paper called "MMT: Exploiting Fine-Grained Parallelism in Dynamic Memory Management," slated to be presented on April 21 at the IEEE International Parallel and Distributed Processing Symposium in Atlanta.

This sounds like a George Takei moment: "Oh my!"

Share:
33
Comments
X
Submit

Comments
Add your comment
micr0be 04/07/2010 7:50 PM
Hide
-15+

FINALLY !!! .... great work

sliem 04/07/2010 7:52 PM
Hide
-20+

Awesome, now M$ can have a new product: M$ office 2010 extreme
"Experience Dual-core-utilizing word processing and power point presenter software" Boost your productivity by up to 20%! New low price for limited time only, $799.

OpenOffice dual-core-utilizing: $0

husker 04/07/2010 7:54 PM
Hide
-14+

I never noticed any delay in a word processing or browser functionality. Mostly these applications are waiting around for user input or bottlenecked by web access. Why do they need multi-threaded code?

Anonymous 04/07/2010 7:57 PM
Show
gpj 04/07/2010 8:09 PM
Hide
-11+

As an app developer, this would be great built right into the compiler. Any performance improvement would be welcome. However, I dispute the 20% claim... at least as a human measurable number. Unless you're using apps like games, graphics/cad software, development tools (which the good ones are already multi-core friendly) .. most people would never realize that it took 4ms to make their title bold vs the original 5ms.

MIT huh? Big deal.

Cy-Kill 04/07/2010 8:10 PM
Hide
-4+

What you said, "While this ability is already in use with PC games...", and what you should've said, "While this ability is already in use with some PC games..."

ivan_chess 04/07/2010 8:18 PM
Hide
-2+

Web browsers already use a different thread for each tab (at least in the newest Firefox) so they are doing just fine on the parallelism path. Do word processor's need multiple threads? When you have a +1GHz multi-core computer are the memory management operations really that taxing?

tomtompiper 04/07/2010 8:23 PM
Hide
-20+

At last a word processor that can keep up with my 23,000 wpm

babybeluga 04/07/2010 8:24 PM
Show
andboomer 04/07/2010 8:30 PM
Show
devrahul 04/07/2010 8:33 PM
Hide
--3+

I am pretty sure i have heard of M$ word somewhere.

gogogadgetliver 04/07/2010 8:42 PM
Hide
-8+

Uh guys. I'm looking at Winword.exe (2010) and it's already running as 26 separate threads.

Maybe they are talking about Open Office or something?

gogogadgetliver 04/07/2010 8:42 PM
Show
gogogadgetliver 04/07/2010 8:47 PM
Hide
-12+

sliem :
Awesome, now M$ can have a new product: M$ office 2010 extreme"Experience Dual-core-utilizing word processing and power point presenter software" Boost your productivity by up to 20%! New low price for limited time only, $799.OpenOffice dual-core-utilizing: $0



MS Office is already multithreaded. Oh and btw the "M$" makes you look like you're stuck in the 90s.

DXRick 04/07/2010 8:50 PM
Hide
-2+

You do realize that MS Word runs the spell checker in a separate thread. I would bet that auto-save also does. The rest is processing input from the user, as they type and apply various formatting things. There ain't much parallel processing going on in a word processor!

rhino13 04/07/2010 9:03 PM
Hide
--1+

Errr, Windows already does this for you.

Looks like someone couldn't think up anything original to go for a PHD with.

Cy-Kill 04/07/2010 9:17 PM
Hide
-7+

rhino13 :
Errr, Windows already does this for you.



This isn't about Windows.

shin0bi272 04/07/2010 10:06 PM
Hide
-2+

gogogadgetliver :
Uh guys. I'm looking at Winword.exe (2010) and it's already running as 26 separate threads.Maybe they are talking about Open Office or something?



are they running on separate cores too? The article said that all the stuff gets dumped on one core too that's why I asked.

hellwig 04/07/2010 10:12 PM
Hide
-1+

Memory management? Like garbage collection? I'm confused how you can thread processing differently than memory management. I mean, imagine the cache-misses that will be created when a different thread on a different core is jerking around with the memory you are trying to use. In other words, you can't command a memory-write on a separate thread if the processing that follows is dependent on the memory being written to.

If they are just talking about defragging and garbage collection, the compiler should already thread that out separately. Its not the programmers fault if the compiler injects memory management code right in the middle of their execution.

Exodite2 :
Manual memory management? That's so... 1960s.


Oh brother, that's whats wrong with computer programming today, too many kids growing up on Java. Believe it or not, some mission-critical applications can't just leave it up to the compiler to figure out what to do with memory. Not that Word processors are ever mission critical, I'm just saying proper memory management and being aware of the effects of your memory usage are still good ideas.

bildo123 04/07/2010 10:21 PM
Hide
-0+

husker :
I never noticed any delay in a word processing or browser functionality. Mostly these applications are waiting around for user input or bottlenecked by web access. Why do they need multi-threaded code?



The same reason we now use EFI instead of carburetors. It's just another step forward, and walking requires following one foot after the other. It may lead to something else even better.

bison88 04/07/2010 10:46 PM
Hide
-0+

Hell yeah right on! I look forward to this multi-core, multi-threaded beast of a computer to finally get some good use hopefully in the near future!

zerapio 04/07/2010 10:57 PM
Hide
-0+

shin0bi272 :
are they running on separate cores too? The article said that all the stuff gets dumped on one core too that's why I asked.


Applications shouldn't be mapping threads to cores, that's the job of the OS scheduler.

falchard 04/07/2010 11:29 PM
Hide
-1+

Each letter is a new thread lol.

Shadow703793 04/07/2010 11:36 PM
Hide
-0+

husker :
I never noticed any delay in a word processing or browser functionality. Mostly these applications are waiting around for user input or bottlenecked by web access. Why do they need multi-threaded code?


Not really so much as multi threading, what they need to do is write more efficient code that uses less RAM!

gogogadgetliver 04/08/2010 12:27 PM
Hide
-0+

zerapio :
Applications shouldn't be mapping threads to cores, that's the job of the OS scheduler.



True but applications can indeed request what processor they want. This is useful if you know contention mechanisms haven't been written into the code but you want it to at least run on a multicore box without blowing up.

In this case with Winword it looks like it's properly running on multiple CPUs. Most of the threads appear to be calls to the system for crap (ntdll for example) and those most definately would be optimized.

Say what you want about MS but they are by no means amatures at this.

..as seen on a quad core (8 logical).

If someone has Open Office handy I'd be interested to see what it's up to.

Anonymous 04/08/2010 12:36 PM
Hide
-0+

"Believe it or not, some mission-critical applications can't just leave it up to the compiler to figure out what to do with memory. Not that Word processors are ever mission critical..."
My point exactly.
"I'm just saying proper memory management and being aware of the effects of your memory usage are still good ideas."
Indeed.

However, proper memory management != manual memory management. For user applications, like word processors, that's just asking for trouble. Not to mention a poor use of resources.

C, and even assembler, have their uses but there's a reason modern programming languages are, well, modern. One of them being automatic memory management, including garbage collection.

the_krasno 04/08/2010 1:48 AM
Hide
-0+

Hopefully the next iteration of Open Office will have this improvement.

darkguset 04/08/2010 1:55 AM
Hide
-0+

That is almost exactly what AMD were trying to do about 3 years ago when they brought multithreading to the public, when they were researching how to make single-threaded applications run no multi-core processors. But it was probably too costly and time consuming (having to go against Intel all the time) so they deserted the project, at least officially.

loomis86 04/08/2010 1:57 AM
Hide
-1+

Wow, next they'll assign every keystroke to it's own thread...and I'll be able to type out the entire works of shakespeare in a second and a half...spellchecked, autosaved, page numbered and formatted, and sent to printer in another second and a half. Now I'll need 40,000 printers to keep up with me and a crew of 600 techs to reload paper and change ink cartridges.

Goodness, at that rate, I alone will possess more productivity than the entire nations of cuba, haiti, puerto rico, and jamaica combined.

matt87_50 04/08/2010 2:28 AM
Hide
-1+

wow...

if your word processor is maxing out a whole core of any processor, YOU'RE DOING IT WRONG! and if the 'memory management' in your app is having any impact on performance at all, YOU'RE DOING IT WRONG!!!

oh wait... let me guess... they are talking about garbage collection?

great, they managed to move a big chunk of processing, that if it wasn't for LAZY CODERS, wouldn't even need to be done, onto another core! congratulations! yet another point that useless programmers can use to try and convince them selves that they aren't completely inadequate!

"oh, but its modern, and it improves productivity, its just better, get with the times!!" STFU and learn how to program! did you ever wonder how many Megawatts of electricity have been wasted around the world on your bloated program just because you were too lazy or too scared to program it properly?

oh, and lets not forget all the overhead that usually comes from making something thread safe. so while your app may now run faster, its actually become even more bloated and inefficient!

MoUsE-WiZ 04/08/2010 7:44 AM
Hide
-0+

matt87_50 :
they managed to move a big chunk of processing, that if it wasn't for LAZY CODERS, wouldn't even need to be done, onto another core


If processing power is cheaper than coder labour, what you call lazy is actually what most people call smart. Right tool for the job, ya know?


Ads

Best offers

Newsletters


OK
Ads