| High-speed networks make possible the development of applications capable of combining the computational power of several supercomputers and using remote instruments, databases and sophisticated display devices. While the physical infrastructure necessary to support such systems is becoming widespread, distributed supercomputing poses new challenges for software developers. This dissertation addresses the problem of developing a general-purpose programming environment for applications comprising parallel components developed using different software systems and interacting in a distributed domain.; We will present PARDIS, a system which implements application-level interaction of heterogeneous PARallel components in a DIStributed environment. Addressing interoperability at the application-level allows the programmer to build applications from independently developed and tested components; this strategy promotes component reuse and encourages modular programming. The design of PARDIS is based on the ideas underlying a standard in the area of distributed computing: the Common Object Request Broker Architecture (CORBA), in particular the idea of interaction through object interfaces. PARDIS extends the CORBA object model by the notion of an SPMD object representing data-parallel computations, and distributed arguments which can be used in their interactions. Further, the programming abstractions implemented in PARDIS contain support for concurrency. We will discuss the performance evaluation of SPMD objects and present a few examples demonstrating how the abstractions implemented in PARDIS allow the programmer to develop distributed supercomputing applications. In particular, we will demonstrate support for interactions most commonly occurring in distributed supercomputing, issues related to locality transparency, and interoperability with two data-parallel libraries: POOMA and HPC++ PSTL. |