The GridPac effort assisted with, and furthered the development of, several key software distributions at UTK.
PLASMA - Parallel Linear Algebra for Scalable Multicore Architectures
PLASMA is a dense numerical linear algebra library designed for multicore machines. The algorithms in this library were used in the performance evaluation of the project. PLASMA restructures linear algebra operations into fine-grained tasks that operate on tiles of data, with dependencies between tasks. This can remove the fork-join bottleneck of block algorithms, by enabling out-of-order superscalar task execution, which hides synchronization effects of tasks that were sequential in the block algorithms. Efficient execution of PLASMA algorithms relies on the scheduling of the precedence constrained tasks (DAG).
During the final years of the GridPac project, PLASMA has gained several algorithms, for example, eigenvalue and eigenvector computations. The most recent version of PLASMA was released in July 2013.
QUARK - Dynamic Runtime Environment for Task Scheduling
The QUARK runtime is an independent project that acts as a dynamic scheduler for PLASMA. A serial sequence of calls to linear algebra kernels (i.e., tasks) is submitted to QUARK. Data dependencies between the calls are used to construct an implicit DAG for the tasks. The runtime schedules the tasks for execution, while maintaining the dependency constraints. Even though QUARK is being maintained as an independent project, it contains many optimizations that are driven by the requirements of linear algebra algorithms. QUARK has been available as an integrated part of the PLASMA linear algebra distribution for some time. In December 2011, QUARK was released as an independent software distribution.
During the final years of GridPac, QUARK has had several improvements, however the core API has not changed. The development in the last year has focused on the experimental distributed extension called QUARK-D.
The GridSolve environment supports several mechanisms to allow efficient Grid based resource scheduling and to support the execution of workflow applications. A prototype service brokering mechanism was added to GridSolve. Given a high level request from a user, the service trader will search for the best combination of available services and hardware that will satisfy that request. A sophisticated service specification approach similar to algebraic data types is used to describe the components available in the system. This leads to a transparent solution for users; they give a mathematical expression to be solved, and the appropriate grid services will be transparently located, composed, and executed on their behalf. From a high level language such as MATLAB, this provides a very natural interaction for the user of the service trader and underlying workflow services. This work results from collaboration with Aurelie Hurault at IRIT, Toulouse, France.
During the early years of the GridPac effort, we added a service brokering component to GridSolve. GridSolve is a long running project at UTK to provide an agent-brokered RPC-style computational environment that supports distributed, easy-to-use, grid-based remote computation.
Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.
Copyright © 2016 The University of Tennessee. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
· Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
· Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer listed in this license in the documentation and/or other materials provided with the distribution.
· Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. in no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.