Superconducting Technology Assessment - nitrd
Superconducting Technology Assessment - nitrd
Superconducting Technology Assessment - nitrd
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Software Considerations<br />
Program execution models are implemented in both hardware and software. To effectively evaluate a novel system<br />
architecture, it is necessary to map applications onto the execution model and develop an understanding of how<br />
the software runtime system would be implemented. If applications cannot be expected to exhibit high performance<br />
on the execution model, there is little point in attempting to build a supercomputer that would implement the model.<br />
Software has been—and continues to be—a stumbling block for high-end computing. Developers have had to<br />
cope with SPMD (a program is replicated across a set of nodes, each of which processes its own data interspersed<br />
with data transfers between nodes) execution models that force them to explicitly deal with inter-processor<br />
communications and the distribution of data to processing nodes. Distributed memory systems have required<br />
message passing between nodes; shared memory systems have required explicit synchronization to control access<br />
to shared memory. Either way, it may take as much time to develop and test the communications infrastructure as<br />
it does to develop and test the core processing logic in an application.<br />
In order to lessen the pain of communications programming in parallel applications, the communications APIs hide<br />
knowledge of the underlying hardware topology from applications. While this does contribute to ease of programming,<br />
it also effectively prevents the application developer from constructing an optimal mapping of the application to<br />
the underlying hardware. This is unfortunate, given the fact that bandwidth is limited, and that both bandwidth<br />
utilization and message latencies are strongly affected by the mapping of the application to the hardware.<br />
New approaches to software tools and programming models are needed to take advantage of the execution models<br />
developed for RSFQ-based supercomputers. Further, these tools are best developed in parallel with the hardware<br />
and system architectures to provide feedback during that development. This approach reduces the risks associated<br />
with systems that are both innovative and costly.<br />
The Tera (now Cray, Inc.) MTA provided and excellent example of this approach. By directly supporting multiple<br />
threads per processor in hardware, threads became a ubiquitous feature of the programming model, and<br />
synchronization (the MTA is a logically shared-memory architecture) was necessarily supported at the hardware<br />
level. Since these features were ubiquitous, they were supported by the compilers and other elements of the<br />
development tool chain. The compiler support was good enough that developers could provide “hints” to the<br />
compiler for tuning parallel applications instead of having to develop (possibly inefficient) communications<br />
infrastructures for their applications.<br />
165