A Scalable Portability Model for Parallel Computing
A major challenge for computing science, and for
the computing industry, in the twenty first century is to
determine the extent to which general purpose parallel
computing can be achieved. The goal is to deliver both
scalable parallel performance and Performance is often cited as the main reason for the current push towards parallel computers. Performance is hard to achieve and requires programming time and programmer expertise. Expertise is necessary to understand the characteristics of the machine and the application. Time is necessary to find the best ways to exploit them by transforming and specializing the code. Portability across machines and operating systems also requires programming time and programming expertise. It may be easier to achieve this with scientific applications rather than with interactive software but it always requires code generalization. Portability is attained by ignoring the target architectures as much as possible. Parallel processors make these two goals harder to achieve. On the one hand, parallelism makes efficient performance harderto achieve than sequential performance because many more factors may slow down the computation. On the other hand, parallelism has not been really exploited long enough to design successful standards and for manufacturers to apply them. Without portability of software, these machines may be too expensive to program. Though portability and performance are important for parallel processing, they are often in conflict. The Scalable Portability Model (SPM) presented in this paper is intended to reduce the tension between them, and provide a possible means of resolving this tension. We use the term 'Scalable Portability' to denote portability which deals with all the components of an heterogeneous environment which might inhibit the performance of parallel and distributed applications while transferring an application from one environment to another. The performance of the applications will not fall short of the performance we would achieve when developing it for a known targeted environment. Moreover, scalable portability is a portability which does not call for any rewriting of the applications. As a result, the cost of developing efficient applications is minimal. In the present work we introduce a new scheme for building parallel and distributed applications having a scalable portability in any heterogeneous environment, independent of any hardware or topology. The cost of developing according to the scheme is minimal and as a result there is no need to rewrite the application or part of it when transferring from one environment to another. |
Home | Main
research areas | The People | Selected
Publications |
Related Conferences | Current
Work Status