Escalonamento de aplicações paralelas: de clusters para grids
Abstract
Different algorithms provide efficient scheduling of parallel applications on distributed and
heterogeneous computational platforms, such as computational grids.
Most scheduling algorithms for such environments require an application model represented
by a directed acyclic graph (DAG), selecting tasks for execution according to their processing
and communication characteristics.
The obtainment of DAGs for real applications, however, is not a simple quest. The required
knowledge about the application tasks and the communication among them, considering
existing transmission cycles, harden the elaboration of appropriate graphs.
Particularly, MPI programs, that represent a meaningful portion of existing parallel applications,
usually present a cyclic communication model among the master and the processing
nodes. This behavior prevents most scheduling algorithms to be employed as they recursively
traverse the graphs to prioritize the tasks.
In this sense, this work presents a mechanism for the automatic creation of DAGs for real
MPI application originally developed for homogeneous clusters. In order to do so, applications
go through a monitored execution in a cluster and the collected data are used for the elaboration
of an appropriate DAGs. Data dependencies are identified and existing cycles among the
tasks are eliminated. The HEFT scheduling algorithm is used to evaluate the application model
and the schedule obtained is then automatically converted into an RSL (Resource Specification
Language) file for execution in a grid with Globus.
Results from running real applications and simulations show using the grid can be advantageous.