ADAM: A Distributed Adaptively-shared Memory System

 

Recent improvements in commodity processors and networks have provided an opportunity to support high-performance parallel applications within an everyday computing infrastructure. However, applications for such distributed systems are cumbersome to develop due to the need for programmers to handle communication primitives explicitly. Distributed shared memory (DSM) systems are gaining popularity   for providing a logically shared memory over physically distributed memory. The programmer is given the illusion of a large global address space encompassing all available memory, eliminating the task of explicitly moving data between processes located on separate machines. DSM systems combine programming advantages of shared memory and the cost advantages of distributed memory.

Studies have indicated that a large fraction of workstations could be unused for a large fraction of time. In order to improve the performance of parallel computing and harvest the idle cycles in networks, we are developing an adaptive DSM system ADAM (A Distributed Adaptively-shared Memory System), extended from our existing DSM Strings. ADAM can adjust itself dynamically to fit the dramatically changing environment in networks of workstations. When idle processors or workstations appear in the networks, ADAM is able to distribute some data and computations over and adopt this kind of system resource. When a workstation is reclaimed by its primary user, the ADAM jobs have to stop and evict to respect primary user’s priority. Therefore, workstations can join and leave ADAM on the fly.

In the meantime, ADAM hides the unstable situations from the above parallel computing which should be reconfigurable, especially in terms of the degree of parallelism, or the number of processors required. Reconfiguration may need data and loop repartitioning, and data and/or computation migration. With the help from ADAM, such data and computation redistribution can be transparent to above parallel computing.

ADAM aims at:

  • Improving parallel computation performance by load balancing

  • Utilizing system resources efficiently by load sharing

Presentations

Team

  • Prof. Vipin Chaudhary
  • Hai Jiang

Related Publications