One advantage of programmables is that, in theory at least, they can be reconfigured on the fly. Some computer systems used in genomic research, for example, use programmable arrays that allow the machines to be quickly customized each time they search for a particular DNA sequence among millions of possible combinations. The result is faster searches with fewer processors. Some researchers are enthusiastic about the possibilities. "They allow you to program at a very detailed level, to get high performance," said Jack Dongarra, a computer scientist at the University of Tennessee. "That, tied together with these low-cost boxes, opens a lot of new horizons." Their use with cluster supercomputers is only beginning, and has been met with some resistance within the network of people who work with these machines. "There's a large part of the cluster community that is very much commodity-oriented," said Gropp. "They don't understand why anyone would want to use anything other than commodity parts." Because these chips can be expensive -- up to US$1,000 for the biggest ones -- using a lot of them can also quickly blow the budget of a supposedly low-cost supercomputer.
According to Thomas Sterling, a researcher at the Center for Advanced Computing Research at the California Institute of Technology, using programmable arrays into a conventional system will not always improve performance. Slow access to memory can be a stumbling block -- programmables usually work best in systems that are highly "pipelined," where the data flows quickly through the processor. "The question is whether FPGAs will have a major impact," Sterling said. Issues of how to integrate them with conventional systems, he added, "are difficult problems and have not been adequately dealt with except in specialized cases. The jury is still out, but the work should go forward."



