Scalable System Services: Programming Practices and Tool Support
Scalable systems must seamlessly grow to absorb large data sets and incorporate increasing
numbers of processing units within in various communication fabrics. Broadly considered, this concept
applies to cores sharing memory, processors sharing a bus, nodes sharing a network in a
grid/cluster/cloud, or services sharing compositions of components. Ironically, attempts to add more
resources-whether they are physical processing elements or higher-level services-cannot always
be easily incorporated into existing systems.
This project explores practical means of achieving scalability by considering three different but interrelated
issues: parallel design patterns for high level system organization, tool support to help
developers reason about the tradeoffs between programming effort and system performance, and
light-weight resource monitoring and composition tools to support this evaluation. Combined, we
believe these three elements will support software development practices critical for building scalable
systems, as well as produce much needed corresponding tool support to assist developers in modern
software evolution and maintenance.
View Full Project DescriptionYvonne Coady;Aaron Gulliver
IBM Canada Ltd (Saanich, BC)
Computer science
Manufacturing
University of Victoria
Accelerate