The Trouble with Multi-Core Computers

Adding more cores to a computer makes it faster, but it also makes it tricky to program. How will computer scientists cope?

provided by: 


Today's top-of-the-line computers have dual-core processors: two computing units that can handle separate tasks at the same time. And by next year, major chip makers Intel and AMD will have rolled out quad-core systems. Although multiple processors are theoretically faster than a single core, writing software that takes advantage of many processors--a task called parallel programming--is extremely difficult.

Recent research from MIT, however, could make parallel programming easier, ultimately helping to keep personal-computing performance on track. The researchers are proposing a new computing framework that combines specialized software instructions and modifications to multi-core hardware that could allow programmers to write software without having to deal with some tedious parallel-programming details.

Historically, writing software for multi-core systems has been the job of experts in the supercomputing world. But with the coming age of personal supercomputers, average programmers also need to be able to write software with multiple cores in mind.

"That's a scary thing," says Krste Asanovic, professor of electrical engineering and computer science at MIT, "because most have never done that, and it's quite difficult to do." Asanovic and his colleagues are tackling one of the main challenges that programmers face when they try to write software that will run efficiently on multi-core systems: coordinating multiple tasks that run on separate cores in a way that doesn't cause the system to crash.

When an application such as Microsoft Outlook or a video player is parallelized, certain tasks are divvied up among the processors. But often, these separate tasks need to dip into a shared memory cache to access data. When one transaction is accessing memory and another transaction needs to access the same part of the memory, and proper safeguards aren't put in place, a system can crash. This can be compared to a couple with a shared checking account with limited funds writing checks simultaneously and inadvertently overdrawing from the account.

Standard parallel programming requires a programmer to anticipate these simultaneous activities and make sure that once a certain activity begins to access memory, it "locks" out other activities so they wait until the transaction is completed.

When implemented correctly, the locks speed up parallel systems, but putting them into practice is complicated, says Jim Larus, research area manager at Microsoft. For instance, he explains, two different applications could acquire locks at the same time, which forces them to wait for each other. Without some third party coming in to break up the "deadlock," Larus says, the applications would stay frozen.

By Kate Greene

Read article at techreview.com

Regional Articles
- The Trouble with Multi-Core Computers Alabama
- The Trouble with Multi-Core Computers Alaska
- The Trouble with Multi-Core Computers Arizona
- The Trouble with Multi-Core Computers Arkansas
- The Trouble with Multi-Core Computers California
- The Trouble with Multi-Core Computers Colorado
- The Trouble with Multi-Core Computers Connecticut
- The Trouble with Multi-Core Computers DC
- The Trouble with Multi-Core Computers Delaware
- The Trouble with Multi-Core Computers Florida
- The Trouble with Multi-Core Computers Georgia
- The Trouble with Multi-Core Computers Hawaii
- The Trouble with Multi-Core Computers Idaho
- The Trouble with Multi-Core Computers Illinois
- The Trouble with Multi-Core Computers Indiana
- The Trouble with Multi-Core Computers Iowa
- The Trouble with Multi-Core Computers Kansas
- The Trouble with Multi-Core Computers Kentucky
- The Trouble with Multi-Core Computers Louisiana
- The Trouble with Multi-Core Computers Maine
- The Trouble with Multi-Core Computers Maryland
- The Trouble with Multi-Core Computers Massachusetts
- The Trouble with Multi-Core Computers Michigan
- The Trouble with Multi-Core Computers Minnesota
- The Trouble with Multi-Core Computers Mississippi
- The Trouble with Multi-Core Computers Missouri
- The Trouble with Multi-Core Computers Montana
- The Trouble with Multi-Core Computers Nebraska
- The Trouble with Multi-Core Computers Nevada
- The Trouble with Multi-Core Computers New Hampshire
- The Trouble with Multi-Core Computers New Jersey
- The Trouble with Multi-Core Computers New Mexico
- The Trouble with Multi-Core Computers New York
- The Trouble with Multi-Core Computers North Carolina
- The Trouble with Multi-Core Computers North Dakota
- The Trouble with Multi-Core Computers Ohio
- The Trouble with Multi-Core Computers Oklahoma
- The Trouble with Multi-Core Computers Oregon
- The Trouble with Multi-Core Computers Pennsylvania
- The Trouble with Multi-Core Computers Rhode Island
- The Trouble with Multi-Core Computers South Carolina
- The Trouble with Multi-Core Computers South Dakota
- The Trouble with Multi-Core Computers Tennessee
- The Trouble with Multi-Core Computers Texas
- The Trouble with Multi-Core Computers Utah
- The Trouble with Multi-Core Computers Vermont
- The Trouble with Multi-Core Computers Virginia
- The Trouble with Multi-Core Computers Washington
- The Trouble with Multi-Core Computers West Virginia
- The Trouble with Multi-Core Computers Wisconsin
- The Trouble with Multi-Core Computers Wyoming
Rate Article
     
Articles Insider

Rss   Delicious   Digg   Add To My Yahoo   Add To My Google   Bookmark   Search Plugin

Topics:
Advertising Education Industrial Goods & Services Software
Business Services Family Insurance Technology
Career Financial Services Internet Telecommunications
Cars Food & Beverage Legal Transportation & Logistics
Computer Hardware Health Real Estate Travel
Construction Home Services Retail & Consumer Services Wedding