Programming SMP clusters: node-level object groups and their use in a framework for Nbody applications
Date
Authors
Editor(s)
Advisor
Supervisor
Co-Advisor
Co-Supervisor
Instructor
BUIR Usage Stats
views
downloads
Series
Abstract
Symmetric Multiprocessor (SMP) cluster architectures emerge as a cheaper but powerful way of building parallel programming platforms. Providing mechanisms, layers of abstraction, or libraries gaining the power of SMP clusters is a challenging field of research. Viewing an SMP architecture as an array of processors would be insufficient, since such a model ignores essential possible gains over performance. We have stressed reusable patterns or libraries for collective communication and computations that can be used commonly in parallel applications within a parallel programming environment utilized for SMP clusters. We introduce node-level replicated objects, since replicated objects provide a versatile abstraction that can be used to implement static load-balancing, local services such as memory management, distributed data structures, and inter-module interfaces. This work was motivated while we were developing parallel object-oriented hierarchical Nbody applications with Charm++. We discuss common paradigms that we came across in those applications and present a framework for their implementation on SMP clusters. If the bodies that an interaction needs are local then that interaction can be completed without any communication. Otherwise, the data of the remote bodies must be brought, and after the interaction calculation, the remote body data must be updated. Parallel object-oriented design of this framework hides communication details of bringing remote bodies from programmer and presents an interface to develop and experiment with Nbody algorithms.