Computer science is quite a young research area. However, it has already been subject to several major advance steps which, in general, have been closely linked to the technological progresses of the machine components. It can easily be assumed that the current evolution takes place at the level of the communication networks whose quality, either on the reliability or the efficiency levels, begins to be satisfying on large scales.
Beyond the practical interest of the data transfers, this implies a new vision of the computer tool in scientific computing. Indeed, after the successive eras of the single workstations, of the parallel machines and finally of the local clusters, the last advances in large scale networks have permitted the emergence of clusters of clusters. That new concept of meta-cluster is defined by a set of computational units (workstations, parallel machines or clusters) scattered on geographically distinct sites. Those meta-clusters are then commonly composed of heterogeneous machines linked together by a communication network generally not complete and whose links are also heterogeneous.
As for parallelism in general, the obvious interest of such meta-clusters is to gather a greater number of machines allowing faster treatments and/or the treatment of larger problems. In fact, the addition of a machine in an existing parallel system, even if that machine is less efficient than the ones already in the system, increases the potential degree of parallelism of that system and thus enhances its performance. Moreover, such an addition also increases the global memory capacity of the system which thus allows thestorage of more data and then the treatment of larger problems. So, the heterogeneity of the machines does not represent any particular limitation in meta-clusters. Besides, its management has already been intensively studied in the context of local clusters. Nevertheless, a new problem arises with meta-clusters and consists in the efficient management of the heterogeneous communication links. That point is still quite unexplored.
However, it must be noticed that each hardware evolution often comes with a software evolution. Indeed, it is generally necessary to modify or extend the programming paradigms to fully exploit the new capabilities of the machines,the obvious goal always being a gain either in the quality of the results or in the time to obtain them, and if possible, in both of them. Hence, in the same way the parallel machines and local clusters have induced the developments of communication libraries in the programming languages, the emergence of meta-clusters implies an updating of the parallel programming schemes to take into account the specificities of those new computational systems.