Heuristic algorithm based on a genetic algorithm for mapping parallel programs on hypercube multiprocessors

The advent of cost-effective VLSI components in the past few years has made feasible the commercial development of massively parallel computers with hundreds of processors. Because of appealing properties such as node and edge symmetry, logarithmic diameter, high fault resilience, scalability, and the ability to host popular interconnection networks, namely ring, torus, tree and linear array, hypercube multiprocessors has been the focus of many researchers over the past few years [2, 5, 6]. This topology has result in several commercial product (Origin2000, Intel iPSC, NCUBE/10, Caltech/JPL, etc.). Conceptually, the hypercube interconnection network is a multidimensional binary cube with a processor or procesors cluster at each of its vertices. An n-dimmensional hypercube has 2n processors or processor clusters and n2n-1 links. Each processor or processors cluster has its own local memory and interprocessor communication is done by explicit message passing directly or through some intermediate processors. This type of architecture is more readily scaled up to very large numbers of processors than multiprocessors designs based on globally shared memory [4, 6]. The effective exploitation of the potential power of this type of parallel architecture requires efficient solutions to the task-to-procesor mapping problem. The problem is that of optimally allocating the tasks of parallel program among the processors in order to minimize the execution time of the program. The mapping problem is NP-complete [4, 7, 8, 9] which means heuristics approaches must be adopted. The mapping of the tasks to processors may either be performed statically (before program execution) or dynamically in an adaptive manner as the parallel program executes. The appropriate approach depends on the nature of the model of