Indiana University

 

About

The Open Systems Lab (OSL) conducts research on science and technology for computing with large-scale and pervasive hardware and software systems.

Current research projects at the OSL are focused in these core areas:

Next generation programming tools & languages. To enable large-scale (millions of lines of code) pervasive software applications to be developed more easily, and to enable them to be reliable, secure, and high-performance, the OSL is developing next-generation programming tools and languages.

Parallel and distributed computing. The OSL is currently spearheading several efforts in high-performance parallel and distributed computing to improve reliability, availability, and scalability of these environments.

Collaborative software engineering. Software development at almost any scale is becoming increasingly collaborative and at the same time increasingly distributed. The OSL has created a development environment (SourceGrid) to enable this new kind of software development.

Automatic device configuration. As the number of mobile devices we carry grows, it is desirable (for convenience and for security) for these devices to be able automatically configure themselves based on context and user preferences.

Applications. The OSL is collaborating with several research groups at IU and elsewhere to apply our research results to other scientific projects. Collaborators include the IU BioComplexity Institute, Informatics, SLIS, and UITS.

 

Research

The Open MPI Project

Open MPI is a collaboration between the teams of several existing MPI implementations in order to take the collective wisdom and experience from prior work and create a whole new MPI-2 implementation. The LAM Team was one of the founding members; others include Los Alamos National Laboratories (LA-MPI) and the University of Tennessee (FT-MPI). When available, Open MPI will be the successor to the LAM/MPI project.

The LAM Implementation of MPI

LAM (Local Area Multicomputer) is an MPI programming environment and development system for heterogeneous computers on a network. With LAM, a dedicated cluster or an existing network computing infrastructure can act as one parallel computer solving one problem. LAM features extensive debugging support in the application development cycle and peak performance for production applications. LAM features a full implementation of the MPI communication standard.

The Boost Graph Library

Graphs are mathematical abstractions that are useful for solving many types of problems in computer science. Consequently, these abstractions must also be represented in computer programs. A standardized generic interface for traversing graphs is of utmost importance to encourage reuse of graph algorithms and data structures. Part of the Boost Graph Library is an interface for how the structure of a graph can be accessed using a generic interface that hides the details of the graph data structure implementation. This is an ``open'' interface in the sense that any graph library that implements this interface will be interoperable with the BGL generic algorithms and with other algorithms that also use this interface. BGL provides some general purpose graph classes that conform to this interface, but they are not meant to be the ``only'' graph classes; there certainly will be other graph classes better for certain situations. We believe that the main contribution of the BGL is the formulation of this interface.

The Parallel Boost Graph Library

The Parallel BGL builds on the Boost Graph Library (BGL), offering similar data structures, algorithms, and syntax for distributed, parallel computation that the BGL offers for sequential programs. The Parallel BGL is intended primarily as a research platform, to facilitate both experimentation with and comparison of parallel graph algorithms and to provide solid implementations for solving large-scale graph problems in other application areas.

The Iterative Template Library

The Iterative Template Library (ITL) is a generic component library that provides iterative methods for solving linear systems. ITL also provides numerious preconditioners which is for MTL. ITL uses the abstract interface of matrix-vector, vector-vector, and vector-scalor operations MTL is default to serve those operations. ITL is able to use other packages such as Blitz++ and BLAS with the same abstract interface provided.

The Matrix Template Library

The Matrix Template Library (MTL) is a high-performance generic component library that provides comprehensive linear algebra functionality for a wide variety of matrix formats.