Achieving the impossible

Arianna Layton

Suraj Kothari, a professor of computer science, has found a way to do what many thought was impossible.

He and his student research assistants have developed a prototype program to convert program codes written for slower serial computers into codes that can be run on parallel computers, which operate much faster.

“It was considered a difficult problem, yes,” Kothari said.

The normal computers are used to perform functions sequentially. Parallel computers, on the other hand, divide a large problem into smaller pieces, solve the smaller pieces, then combine the results to get a final answer. By using this method, they can perform in five minutes what would take a serial computer a matter of weeks to finish.

It would be preferable to run large codes on parallel machines, Kothari said.

However, existing programs are written for serial computers and cannot run on parallel computers. The conversion process takes a lot of time and effort, Kothari said.

“I think what is really important about this is that many people have tried, and we have come up with a new approach to solve the problem,” Kothari said.

He said he started analyzing what they were doing when they had to transform the codes by hand. He said they asked themselves, “Can we make a computer do that?”

The answer was yes, and the prototype was the result of their work.

John Gustafson, an associate professor at the Ames Laboratory, said, “It will save billions of dollars … It also allows some science to get done on the environment what we really need to get done.”

He also said he is glad the first purpose for which the conversion program will be used is the study of environmental problems like global warming and ground water pollution.

He said he was skeptical about the project at first, until he realized that Kothari and his team were not trying to conquer the entire conversion problem, but only a specific part of the problem.

After two days of having the project explained to him, he said, he realized what they were trying to do. “There was, like, a light— this is a great idea and this will work.”

After that, he said, he worked with them to phrase a clear explanation of what they had done “so others would not go through the misimpression that I had gone through.”

With this program, the user feeds the code designed to run on an ordinary machine to the program, which runs a diagnostic routine on the code and finds potential problems for transferring the code.

“It tells the user, ‘These are the problems; can you please make changes to the sequential codes to fix the problem?’ and once the problems are fixed, it can transform code,” Kothari said.

One key difference between this program and previous attempts to automate the conversion process, Kothari said, is that other people were trying to automate it without giving the computer any understanding of the code it was trying to convert. His program, however, has “built-in knowledge about certain classes of codes.”

Kothari and Simanta Mitra, a graduate student who has been working on the project, demonstrated the program for NASA officials last June, converting 2,000 lines of code of MM5, a 100,000-line code used in climate modeling.

They developed their prototype to handle codes such as MM5.

There are two algorithims they haven’t yet worked into the program that would split the problem and find the synchronization point, he said.

The Environmental Protection Agency, which recently gave the project a $480,000 grant, is interested in system and wants them to do some other codes for the agency, Kothari said.

Kothari said developing this program required knowledge from several different disciplines including atmospheric sciences.

“This would not have been possible without an interdisciplinary team of researchers,” he said.

Gustafson said when the prototype is complete he will be the guinea pig. “I’m an enthusiastic would-be user of his software,” he said. “We have plenty of parallel machines to use it on.”