30.12.2012 Views

Superconducting Technology Assessment - nitrd

Superconducting Technology Assessment - nitrd

Superconducting Technology Assessment - nitrd

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!