next up previous contents
Next: 2.2 Commodity Cluster - Up: 2. Communication Model Previous: 2. Communication Model   Contents


2.1 Introduction

All parallel architectures have a common requirement - they all require a fast, high quality interconnect, thus, the unique property of parallel computer architecture is the communication system. Modern network technologies are catching up with the host system performance; however, the overhead of traditional communication protocol (TCP/IP) is so costly that the performance of communication systems lags behind the technological opportunities. This is the reason why lightweight messaging systems are designed to extract the best performance out of the boxes. However, they are relatively low-level from an end-user viewpoint. In addition, programs running directly atop of these communication systems are generally not portable across parallel platforms. Therefore, in general, these lightweight messaging systems are not used directly by the application programmer, but are better for supporting and optimizing high-level massage-passing programming interfaces such as MPI [38] and PVM [97].

Arguably or not, a scalable parallel machine must be in the form of distributed memory architecture. Although this architecture supports all known parallel programming paradigms, the best-fit programming paradigm on this architecture is the message passing paradigm. From the performance and portability points of view, designing parallel programs on top of portable message passing model would be the most effective way to harness the computing resources. Programmers simply express their parallel computations by using the high-level programming interface, whose implementation details are concealed from the end-users. By assumed that the implementations are indeed efficient, much of the burden of managing parallelism is lifted, thus, the end-users can focus on designing and optimizing the applications with respect to the programming interface. Based on this layer structure, we see that our communication model should be aimed as a ``mid-level'' model, whose tasks are to map all high-level primitives properly onto the low-level architectural abstractions.

A model is just an abstract machine, and therefore, we can have models at many different levels of abstraction [90]. For example, each programming language is a model, since it is an abstract interface that provides a simplified view of the underlying hardware to the programmers. However, due to the diverse nature of the parallel applications and parallel architectures, it is absurd to think that one model is good enough to represent the whole supercomputing domain. Since the idea of performance modeling is for algorithm designer to develop efficient algorithms for realizable, cost-effective architectures. Therefore, we believe that a realistic performance model (in our case, the communication model) must have its associated programming model as well as the corresponding architectural model, such that algorithms are designed or analyzed with the performance model, coded in the programming model and realized on the architectural model. The above classification of models was introduced by Heywood et al. [43], where they used it as a tool to classify different abstract models.


next up previous contents
Next: 2.2 Commodity Cluster - Up: 2. Communication Model Previous: 2. Communication Model   Contents