Joel Adams will be teaching parallel computing—supercomputing—to colleagues from around the country.
Today’s desktop computers are as powerful as supercomputers were 20 years ago, said computer science professor Joel Adams. And 20 years from now, the average desktop may be as powerful as the supercomputers of today.
That’s why Adams, along with colleagues from Macalester and St. Olaf colleges, has pursued and landed a $600,000 grant from the National Science Foundation: They want to ensure that their students will have the skills to handle the computers of today and the future.
Adams, Elizabeth Shoop and Dick Brown, (computer science professors from Macalester and Saint Olaf colleges, respectively) propose to teach parallel computing—supercomputing—not to their students, but to their CS colleagues from around the country. “That’s the way you can attack this problem on a national level,” he said. “You train the trainers, not just your own students.”
The programming gap
Most college-age students don’t have parallel-programming skills, nor do the professors who are teaching them, Adams said: “Most people who got advanced degrees in computing got little of this.” That knowledge gap came about not just because computers became more powerful but because of the way they became more powerful.
Prior to 2006, computers worked increasingly faster because they were equipped with faster and faster processors. Though they were speedier, each of these single-core machines could only perform one task. In 2006, various computer companies introduced the first desktop computers with dual-core processors, and the number of cores in the average computer has roughly doubled every two years. And each core in a multi-core processor can perform a different task.
Adams has a favorite analogy to explain the benefits of a multi-core computer: “Suppose you have a 12-slice pizza, and the problem is to consume it. A single core computer is like you eating that pizza yourself. A quadruple-core computer is like you and three friends eating the pizza. Consuming the pizza will take one-quarter the time.”
That’s if you know how to take advantage of the multiple cores, Adams said: “The problem is, you don’t program these the way you did before 2006 … .The thought process you use to write the software is a different design process. If the software is not redesigned to take advantage of the multiple cores, it's like you eating the entire pizza yourself while your friends sit there watching you.”
The NSF grant, (of which Calvin’s portion is $125,307), will equip Adams, Shoop and Brown to host parallel computing workshops for the next two summers for computer science professors from many institutions at either Macalester or St. Olaf and at the Navajo Technical College in New Mexico. They will also host workshops at professional conferences, as well as create and distribute parallel computing educational materials through the website csinparallel.org.
A grant Adams earned 18 months ago from the Technical Committee on Parallel Computing, part of the IEEE Computer Society, allowed three Calvin professors to build parallel computing components into their computer science classes. Students in CS professor Harry Plantinga’s “Data Structures and Algorithms” class are writing a parallel program to play a game called Mancala. “You have to learn some new programming and design techniques, and the algorithms change as well … . It’s always fun to learn new things, but it adds a level of challenge,” Plantinga said.
Supercomputing history
Calvin and its colleagues are ahead of the curve on teaching parallel computing, said Adams, who constructed the college’s first supercomputer, Ohm, in 2001, a portable supercomputer named Microwulf in 2007, and its third, Dahl, in 2008. “It used to be that in order to let students experience the speedup of a parallel program, you had to have a supercomputer," he said. "Today, students can experience parallel speedup on their desktop and laptop computers, but to a lesser degree than on the supercomputer.”
With parallel hardware now the norm, students will need the skill to write parallel software in today’s job market, Adams said: “If they go to work for a company, they should be able to write software for that company that takes advantage of today’s multicore computers to run faster. As modern businesses collect more and more data, being able to process that data in a timely fashion becomes increasingly important. With computers no longer getting faster, the only way to process the data faster is to process pieces of it in parallel. Students can also apply these same skills to solve bigger problems—the kind of computational challenges the government is interested in solving—such as modeling global warming on a planetary scale.”
Some of the most compelling reasons for learning parallel programming are closer to home, he added: “If you’re going to spend $1,000 for a computer, you want software that takes advantage of it. It's hard to buy a single-core computer anymore. If you have a new iPhone or iPad, it doesn’t have one core,” Adams emphasized. “It has four. The software has to be rewritten to take advantage of that, or one core will do all the work while the other three sit there idle.”