VODCA  Research Group

View-Oriented, Distributed, Cluster-based Approach

to Parallel Computing

VODCA Background and Motivation

Parallel programming is the dominant paradigm for high performance 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 be 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 performance application.

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.

In 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 memory 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 high-performance 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 constraints.




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

  Dr A/Prof Zhiyi Huang, Dept of Computer Science, University of Otago  

  Dr Martin Purvis,Professor, Dept of Information Science, University of Otago

  Dr Paul Werstein,Dept of Computer Science, University of Otago

  Dr Wenguang Chen,Associate Professor, Dept of Computer Science and Technology, Tsinghua University, China

  Dr Weimin Zheng,Professor, Dept of Computer Science and Technology, Tsinghua University, China

  Dr Chengzheng Sun,Professor, School of Computer Engineering, Nanyang Technological University, Singapore


 DSM Resources

Rice Systems Group
Distributed Shared Memory Home Pages
The Shrimp Project
Supercomputing and Parallel Computing Research Groups
Stanford Parallel Application s for Shared Memory (SPLASH)


Please report any broken links or other problems with this page to Zhiyi Huang at hzy@cs.otago.ac.nz