A Scalable Light-Weight Testing Framework for Distributed Applications
Posted on 10 March 2011
A Scalable Light-Weight Testing Framework for Distributed Applications
Primary Mentor: Ole Weidner (ole.weidner@ed.ac.uk)
Secondary Mentor: Shantenu Jha (sjha@cct.lsu.edu)
Background
SAGA is a set of free cross-platform libraries written in C++ and Python which provide a set of high-level interfaces and runtime components that allow the development of distributed, grid and cloud-computing applications, frameworks and tools. SAGA is the first complete implementation of the Open Grid Forum Simple API for Grid Applications standard GFD-R-P.90.
SAGA is used by many research projects to cary out production level science on large-scale distributed infrastructure. The main application areas are currently computational biology (efficient sampling algorithms, genomics), as well as highenergy physics but the usefulness of SAGA is not confined to these specific areas. In fact, SAGAʼs applicability is not even bound to just scientific computing.
This GSOC project will show how SAGA can be used to develop a generic distributed testing framework.
Project Goals
Together with our GSOC student, we would hope to be able to conceptualize, architect and implement a first working prototype of a continuous integration framework based on SAGA.
Project Description
The SAGA-based continuous-integration framework would allow to submit test containers on the fly (e.g. triggered by SVN commits) to remote systems using SAGAʼs job-submission API. Thanks to SAGAʼs broad support for distributed middleware, it should be possible to execute tests transparently via Fork, PBS, Globus, Condor, Amazon EC2, GridSAM, BES, SSH and others. Especially for testing distributed scientific applications and codes on production infrastructure, this framework could have a potentially huge impact!
Project Requirements
The student should be an experienced C++ or Python programmer (doesnʼt have to be both). He/she should have a good understanding of (or the willingness to learn) the basic practical concepts of distributed computing. A general interested in aspects of software engineering and software testing would be great. The applicant should be capable of working independently and be organized enough to take the charge of a project all the way from planning to implementation.
Further information
Where should an interested student go for more information?
- Project website: http://saga.cct.lsu.edu/ (see also: http://bit.ly/gzpiNe)
- Project mailing list(s): http://saga.cct.lsu.edu/software/cpp/mailing-lists
- Project IRC channel:
- Project code repository: https://svn.cct.lsu.edu/repos/saga/
- Related articles and presentations: http://saga.cct.lsu.edu/publications