The Chinese Solar Machine Layer by Layer Fire in the Library The Mystery Behind Anesthesia
(Page 2 of 2)
What's so scary about parallel programming? To start, it's been relegated to specialists in the high-performance computing (HPC) world who write software that solves specific problems that run on machines with thousands and millions of cores. The software can create climate-change models or predict the folding of proteins, but it is written for a single laborious task, not for the whims of consumers who want to talk to a computer, watch high-definition video, and keep tabs on their ageing parents halfway across the country.
Specifically, parallel programs must be written so that tasks can be appropriately shared among processors. This is difficult because not all applications naturally have components that can be separated; sometimes when they are separated, tasks are completed at different times and create bottlenecks. In addition, there are complications with shared resources: if an application needs to access data in memory that's shared by tens or hundreds of other cores, the program could slow down or freeze. Moreover, debugging parallel programs can be a nightmare because often, a mistake is hard to duplicate, making the source of the problem difficult to find.
But even with all the challenges, there is hope, says Shalf. HPC researchers have developed portfolios of parallel algorithms that could be useful for consumer parallel programs. In addition, there are already massively multicore products on the market, and they are providing clues as to the best approaches from an architecture standpoint as well as from a programming standpoint. For instance, graphics company NVIDIA just released a commercial chip with 128 cores, designed to render graphics for applications such as video games. Many of the cores are general-purpose, meaning they can be programmed to do many different graphics-oriented tasks. The alternative is for the cores to have instructions hard-wired into the chip.
In addition, Intel, AMD, and others are collaborating with academic researchers to try to create a parallel-programming framework that can be agreed upon. One approach that looks promising is called transactional memory, says Krste Asanović, professor of computer science at MIT. (See "The Trouble with Multicore Computers.") Using transactional memory, a combination of chip architecture and code, programmers will be allowed to think more sequentially, as they do when they program single-core systems, and let the system provide the parallelism. Asanović says that programmers write instructions that start and end in a linear fashion, "but behind the scenes they run in parallel." This approach requires cooperation from hardware vendors as well as software engineers because the hardware and software must work together. "The two communities are talking," Asanović says, "but there's no consensus on what it's going to look like." He adds that transactional memory will most likely be one of a combination of approaches that could help make programming in parallel easier.
Without a consensus on how to proceed with multicore technology, however, the consumer computing industry might find itself at a standstill in about five years, says Shalf. But he's optimistic because the field of parallel computing has been injected with a new sense of urgency with the emergence of dual- and quad-core products. "In academia, we can disagree for years," he says, "but industry has a way, with its economic imperative, to settle on a solution pretty quick."
The Promise of Personal Supercomputers
The high computing power made available in this chip can only be utilized for the application areas where it is really required. We cannot think of utilizing it for simple applications with parallel programming. All the software applications cannot be broken down into parallel modules. As the applications are written to carry out some of the real world processes, unless these processes have parallel tasks involved, it is not advantageous to apply the parallelism here. So the question of using such high powerful chip ends here. So we need to look for those areas which are not successfully computerized due to chip computing incapability so for.
The areas such as neural networks, DNA simulations, Brain models, speech recognition so on can be better verified and tested with the this chip. Any software development frame work for parallelism should be targeted to applications in such areas.
www.browsetoknow.blogspot.com
The Programmer v.s the Compiler
Teaching programmers to write parallel programs
is illogical. A programmer should not need to
do more than code a solution to a problem.
Teaching a compiler to utilize the hardware
available for running the coded solution is more
efficient.
"Write once, Run anywhere" should not just apply
to Java.
Re: The Programmer v.s the Compiler
Hope Intel's Multithread library released recently removes this multi-threading headache (?) from programmers... atleast for normal programmers.
Killer App - more accurate modelling
The thousand core chips will allow for faster and more comprehensive simulations in fields from weather forecasts, climate modelling, and my personal favourite, genetic algorithms to improve designs.
If they were to be widespread by their inclusion in mobile phones, the 'average joe' could have holographic movie projectors to watch their favourite films.
Manufacturing in the United States is in trouble. That's bad news not just for the country's economy but for the future of innovation.
This document is part of the “How-To Guide for Most Common Measurements” centralized resource portal. This tutorial provides a detailed guide for measurement and device considerations to take temperature measurements using thermocouples. Get an introduction to thermocouples, which are inexpensive sensing devices widely used with PC-based data acquisition systems. Also review some specific thermocouple examples and learn how thermocouples work and ways to integrate them into a data acquisition measurement system.
View full PDF >
Gaetano Marano
246 Comments
How can we use so much power without a considerable AI improvements?
.
How can we use so much power without a considerable artificial intelligence improvements, smart ("I robot" like) humanoids and "popular" parallel-processing software?
If phones' manufacturers will put a teraflop processor in their cellular phones, the latter must be (at least) able to write and send SMS messages and do voice calls WITHOUT any human... :)
www.gaetanomarano.it/articles/articles.html
.
Reply
Guest (brianbosworthy)
Re: How can we use so much power without a considerable AI improvements?
The problem is the cascade of information from one level to the next. In the visual cortex each level computes one level of instruction. In the dolphin each level computes each instruction in the same cascade to produce the visual image from sound. We need these algorithms in our multicores to produce the image or audio meaning not in a linear single data stream, but as a cascade, for higher function.
Reply