Building B, First Floor (Level 3)
Dept. of Computer and Information Science
SE-581 83 LINKÖPING
|Phone: +46 13 282419|
|Mobile: +46 738 125866|
|Fax: +46 13 142231|
|Location: (see map)|
|Member of: Programming Environments Laboratory (PELAB)|
Mudassar Majeed is a Ph.D. student in the Programming Environments Laboratory, at the Department of Computer and Information Science, Linköping University (LiU), Sweden. He is doing a research in the area of optimal composition of parallel programs and runtime support, under supervision of Prof. Christoph Kessler, and Prof. Erwin Laure.
Mudassar has done Masters in Software Engineering of Distributed Systems from KTH The Royal Institute of Technology Sweden.
Task-oriented programming models are already used as a base for recent developments, such as the task model of OpenMP and the programming model used in the programming environment SMP superscalar from the Barcelona Supercomputing Center. Through the exploitation of component-based approaches building blocks that hide different technologies and implement algorithms in the best-suited way for a specific hardware or system environment can be combined. These implementations may be serial as well as parallel, and are not restricted to specific programming techniques. ...more...
SkePU is a C++ template library which provides a simple and unified interface for specifying data-parallel computations with the help of skeletons. For each skeleton, it provides implementation for:
* Single GPU (both CUDA & OpenCL)
* Multiple GPUs (both CUDA and OpenCL)
* Multiple CPUs (OpenMP)
* Sequential CPU (C++)
The interface of skeleton is generic enough to be extended to other architectures in future. Currently, SkePU implements multiple variants of map (including map, mapoverlap, maparray), reduce, mapreduce, scan(aka prefix) for different back-ends, listed above. ...more...
Self-management of a hardware and/or software resource (managed resource thereafter) is achieved through control loops. A control loop continuously monitors the managed resource and acts accordingly. A control loop consists mainly of an autonomic manager and touch points. Touch points enable autonomic managers to sense and affect the managed resource. The autonomic manager function is divided into the following four phases. Monitoring the managed resource through sensors to find symptoms. Analyzing symptoms and request appropriate change. Planning the requested change. Finally executing the change plan.
Distributed applications require multiple control loops to manage them. Multiple control loops are needed for scalability, robustness, and to simplify programming by dividing management functions among multiple loops. In its simplest form there might be one loop per self-* aspect, per application nonfunctional requirement, or per application's subsystems. Usually these loops are not independent but interact and affect each other.
The goal of my thesis work is to study and analyze distributed control loops. The study includes identifying patterns of control loops, their composition and interactions, which might be common and reusable in many distributed applications. These patterns should be applied and discussed in the context of an application domain(s). For example, a simple component based distributed storage service called YASS developed at KTH and SICS implemented using distributed component management system (DCMS). YASS includes control loops for selfhealing, for self-configuration and self-optimization. YASS will be used as a starting point and an experimental application for defining rather general control loop patters and loop interactions.