Distributed, Cluster-based Approach
VODCA Background and Motivation
Parallel programming is the dominant paradigm for high
computing. Since a single processor cannot operate any
faster than its highest clock speed, faster performance can only be
achieved by using multiple processors. However, utilizing
multiple processors for a single high performance application
introduces new engineering challenges. How can multiple
processors be used in a single, high performance application? The
application has to be partitioned into components that can run
separately and concurrently in
a distributed programming environment. The disparate components
of the single application run parallel
to each other. Even when the application can
partitioned into relatively independent and concurrent processes (or
threads), it is still necessary for intra-process or intra-thread
communication. Efficient and robust communication between the
parallel processes a prerequisite for an efficient and robust high
The most common hardware implementation of a parallel processing array
is the cluster computer. A cluster computer is a collection of
workstations or PCs that are interconnected via a Local Area Network
(LAN). It can take advantage of high-bandwidth LAN techniques. A
cluster computer usually consists of commodity off-the-shelf
components, which can provide potentially similar capabilities to
commercial supercomputers such as IBM SP2, but with better scalability
and at a much lower cost.
There are two primary approaches to
intra-process communication: message
passing and shared memory.
In message passing, intra-process communication takes the form of messages sent over
the system bus or network when the processors are all co-located on the same circuit or
across the network. When the processors are in separate locations like in a cluster computer,
messages are sent as packets between processes. Popular message passing systems are MPICH or LAM/MPI
These programming environments are based on message passing programming style, i.e.
Message Passing Interface (MPI),
which is complex for inter-process communications.
shared memory, messages are "left" in memory and the processes find
these messages when their memory locations are accessed.
Distributed Shared Memory (DSM) systems can provide virtual shared
on cluster computers, but their performance generally becomes poor when
the number of processes increases. Unfortunately, DSM does
not work very efficiently on cluster computers. VODCA is a state of the art system that provides a user friendly and
parallel programming environment
on cluster computers based on DSM.
What is the principle behind VODCA?
VODCA supports a novel programming style called View-Oriented Parallel Programming (VOPP).
VOPP uses the concept of a "view" to understand and organize multi-processor access to DSM resources.
Every processor in the cluster uses a "view" to access the DSM resources; so memory updates are
initiated when a processor needs to "see" the new contents of a "view" and conflicts are avoided
by detecting when more than one processor "sees" the same "view".
What are the advantages of VODCA? Based on VOPP, VODCA permits a more intuitive and user friendly approach to DSM management.
Furthermore, VODCA memory management activity is governed by a "just in time" and "just what it is
needed" paradigm that minimizes network traffic and reduces the bottleneck due to network bandwidth
A detailed introduction to VOPP can be found here.
Publications related to VODCA and VOPP can be found here.
Download a powerpoint presentation about VODCA here.
Release 1.0.1 is now available!!
For a free copy of the VODCA code, go to the download request page here.
Version 1.0.1 incorporates enhanced host error reporting along with ia64 and ssh/rsh support.
V1.0.0 patches that are now available here.
ia64 support patch for segv.c
Enhanced host error reporting patch for start_p.c
VODCA Research Partners
Huang, Dept of Computer Science, University of Otago
Martin Purvis,Professor, Dept of Information Science,
University of Otago
Werstein,Dept of Computer Science, University of Otago
Dr Wenguang Chen,Associate
Professor, Dept of Computer Science and
Dr Weimin Zheng,Professor,
Dept of Computer Science and
Dr Chengzheng Sun,Professor,
School of Computer Engineering,
Nanyang Technological University,
Please report any broken links or other problems with this page to Carl Leichter at firstname.lastname@example.org