Where Are The Programmers?
The number of students pursuing computer science is on the decline just the challenge of programming multicore processors looms. "We are at a low point of interest in computer science," says Rick Rashid, senior vice president of Microsoft Research.
![](https://eu-images.contentstack.com/v3/assets/blt69509c9116440be8/bltc0182b2356ae8eed/64b83949410a1b4c0bd7459b/IW_generic_image.png?width=1280&auto=webp&quality=95&format=jpg&disable=upscale)
Redmond, Wash. — The number of students pursuing computer science is on the decline just as researchers are being pressed to solve thorny problems in parallel programming for tomorrow's multicore processors. So said top researchers at Microsoft Corp. who gathered for an annual meeting here last week.
Microsoft Research showed off a slew of its latest projects, from keyboards that recognize simple gestures to software that links sensor networks to PCs (see story, page 12). Just two of the programs discussed at TechFest 2007 addressed parallel programming for multicore processors, but researchers said much work on the topic is going on behind the scenes.
Given the intractability of the problem, Microsoft executives acknowledged that progress is likely to be slow. And the cultural challenge of attracting more good people to computer science may be an equally high hurdle.
"We are at a low point of interest in computer science," said Rick Rashid, senior vice president of Microsoft Research, who pointed to a sharp decline since 2001 in college undergraduates choosing com- puter science as a major. "Jobs will go begging in the next few years because we don't have the people willing to take on the field."
The tarnish caused by the dot-com bust is part of the problem. "But I am worried there is a broader decline in interest," Rashid said in an interview here. "You even see it in places like Japan, Hong Kong and Korea."
A task force chaired by Rashid for the Computing Research Association hopes to address the broader issue. With funding from Google, Hewlett-Packard, IBM and Microsoft, among others, the group has hired a full-time person who is working with a women-in-technology program at the University of Colorado.
"There has been an even more precipitous decline of interest among women and minorities than in the general population," Rashid said. "We are trying to figure out how to change the perceptions of the field."
Today, the United States is at a peak in the number of computer science PhD graduates. But the undergraduate fall-off is a sign of problems down the road.
"If this keeps up, by 2010 or so you could see a decline of PhDs by as much as a factor of two. That would be a problem because the demand is much, much larger than that," said Rashid. "The funny thing is, today's youth all use their cell phones, computers and gadgets, and are beneficiaries of the technology. But it doesn't seem to translate into a desire to learn how to make more things like that."
Although the U.S. government has shown willingness to increase historically low levels of funding for computer science, funding levels haven't changed much so far, Rashid said. Because of excessive bureaucracy, he said, many top researchers still need to submit multiple proposals before they get backing for their projects.
"The process for getting funding for research in this country is broken. It's wasting a lot of people's time," Rashid said.
Giant leaps needed
In the land of next-generation systems, parallel programming for multicore processors "is the biggest challenge in computer science today," said David A. Patterson, a professor at the University of California, Berkeley.
Indeed, said Rashid of Microsoft, "We've yet to hit upon a good way of thinking about how we will go to 32 cores and beyond. There are fundamental things we will have to change about how we write applications to do that."
Microsoft is taking a number of approaches to that problem. One is a language now under development that automates the process of creating some parallel-software constructs. The company is also helping UC Berkeley researchers build and use a chip simulator to test parallel-programming concepts.
The new language adopts a method used in database programming of bonding several processes into one so-called atomic transaction. The language automates the tricky part of synchronizing the many steps in these transactions and giving programmers tools for fine-tuning the synchronization as needed.
Threads and locks
"The way people write parallel programs now, with threads and locks, is intellectually challenging," said Roy Levin, who manages Microsoft Research's Mountain View, Calif., lab, where some of the work is taking place. "People get it wrong because parts of the program are not in sync or the synchronization is too coarse, leading to poor performance."
The new language, although in an early state, "is a glimmer, a hope that this idea makes the process sufficiently manageable," said Levin.
Researchers still need to complete work on the language and then run several test programs with it before they are ready to report their findings formally. That process could take more than a year, said Andrew Birrell, a principal researcher involved in the work.
"We rarely expose projects this early," said Birrell.
Although the language may ease the programming job, it will likely slow system performance if implemented in software alone. Thus, chip makers are exploring ways to add instructions to track memory read-and-write operations in order to avoid collisions in complex transactions.
"If this is going to work, the machinery for atomic transactions needs to be built as a fundamental piece of the system," said Levin.
"We know of very large hardware companies interested in this work," Birrell added.
Microsoft hopes to aid the hardware effort by trying out different transactional-memory structures on simulated processors. The company, along with Xilinx Inc., is funding a new generation of the Berkeley Emulation Engine used in the university's Research Accelerator for Multiple Processors project. The emulator, which will use a Virtex 5 FPGA, will be built by a Taiwanese board maker and is due to become available by the end of the year.
At that point, Microsoft plans to try out a variety of potential memory architectures to evaluate how well they handle atomic transactions created with its new language.
"When we have some results, we will certainly work with AMD, Intel and anyone in this space to make sure we have a systems solution. It's a multi- year project," said Levin.
The Berkeley emulator could also be used to evaluate parallelism in graphics architectures. Noted graphics researcher Kurt Akeley, who is returning to Silicon Valley from a posting at Microsoft Research's Beijing office, may take up that work, Levin said.
Keeping it simple
However, Levin was sour on the idea of mixing large numbers of different kinds of cores on a processor at this stage. AMD plans to use graphics, X86 and other cores in its Fusion processors starting in 2009, although it has not specified just how many cores it will integrate (see story, page 18.)
"We don't even know how to solve the problem of many homogeneous cores yet, so we should not try to bite off the problem of heterogeneous cores," Levin said.
Levin said he did graduate work in the 1970s on parallel programming using 16 different models of PDP-11 systems.
"Not all of them used the same instruction sets, so it was interesting trying to write a scheduler. We still have this problem today," said Levin, who eventually rose to manage a West Coast R&D lab for Digital Equipment Corp. "In many ways, we haven't advanced a lot in parallel software since the 1980s in terms of the paradigms we offer the programmer, and overall they have not worked terribly well."
Microsoft has a number of other projects in parallel programming spanning work at labs in Cambridge, Mass.; Bengaluru, India; and Beijing. Some of them focus on how to validate and test complex parallel programs.
"We've been doing a lot of fundamental research in software analysis in concurrent programs," Rashid said. "One of the problems of concurrency is that it's even harder to understand what you've done when you are finished.
That makes programs more difficult to test."
About the Author
You May Also Like
Maximizing cloud potential: Building and operating an effective Cloud Center of Excellence (CCoE)
September 10, 2024Radical Automation of ITSM
September 19, 2024Unleash the power of the browser to secure any device in minutes
September 24, 2024