Wednesday, September 26, 2012

Programming Interface Tlib

The runtime library TLib has been developed to support the programming with hierarchically structured
M-tasks. TLib library functions are designed to be called in an SPMD manner which results in multilevel
group-SPMD programs. The entire management of groups and M-tasks at execution time is done
by the library. Thus, the TLib API provides support for:

a. The creation and administration of a dynamic hierarchy of processor groups;
b. The coordination and mapping of nested M-tasks to processor groups;
c. The handling and termination of recursive calls and group splitting;
d. The organization of communication between M-tasks.

Internally, the library uses distributed information stored in distributed descriptors which cannot be
accessed directly by the user, thus hiding the complexity of the group management and the multi-level
group-SPMD organization. This relieves the application programmer from realizing the technical details
of hierarchical M-tasks and the corresponding group management and allows him to concentrate on how
to exploit the potential M-task structure of the given application. The current version of the library is
based on C and is built on top of MPI. A TLib program consists of:

a. A set of basic functions expressing M-tasks that are executed in an SPMD style and that comprise
the computations to be performed;
b. A set of coordination functions to control the execution of the basic functions.

The processors executing a basic M-task can exchange information with arbitrary MPI operations.
The coordination functions allow a concurrent execution of basic M-tasks by the activation of suitable
library functions. The coordination functions can be nested arbitrarily. Thus, a coordination function
can assign other coordination functions to subgroups of processors for execution, which can then again
split the corresponding subgroup and assign other coordination functions. A basic M-task function F is
expressed as a function of the form,
void *F (void * arg, Mincom comm., T_Descr * pdescr)

where the parameter arg comprises the arguments used by F; the parameter comm specifies an MPI communicator which can be used for internal communication within the M-task F; pdescr is a reference to a TLib group descriptor containing information about the processor group onto which F is mapped. This
descriptor can be used to dynamically split this processor group further in the body of F, if F exhibits
an internal task parallel structure. F may also generate a recursive call of itself on a smaller subgroup,
thus enabling the implementation of divide-and-conquer algorithms.

The TLib library provides functions for initialization, splitting of groups into two or more subgroups,
assignment of tasks to processor groups, and getting information on the subgroup structure.


BIO:

This content is brought to you by Exam Key. Are you seeking for this Arcitura Education s90-07a Exam assistance? Let’s get the advantage of ec1-350 Test and pass your IT certification exam on first attempt with 100% money back guaranty.

No comments:

Post a Comment