SDVM - The Self Distributing Virtual Machine
What is this anyway?
The Self Distributing Virtual Machine (SDVM) is a middleware which joins customary computers to form a parallel computer cluster.
The participating machines may have different computing speed or actually different operating systems. Any network topology between them is supported and can be changed at runtime. As the SDVM supports dynamic entry and exit at runtime, the cluster may even grow or shrink without disturbing the program flow.
The SDVM features decentralized scheduling and automatic distribution of data and program code throughout the cluster. Machines need no prerequisites apart from the SDVM-daemon itself to join an SDVM-cluster.
The concept of the SDVM is suitable for multi-processor-systems or Systems-on-Chip (SoC) but in can be extended to the area of grid computing like the internet, as well.
What is it good for?
Possible fields of application for the SDVM are:
  • Cluster Computing: Any computers may join an SDVM-cluster by just starting the SDVM-daemon. The SDVM is very well suited for clusters to execute long-running applications in parallel. As the participating sites may have different computing performances, even older machines can join the cluster.
  • Grid Computing: Using TCP/IP-connections and encryption and authentification techniques, larger grids spreaded over the internet can work conjointly on the same applications.
  • Public Resource Computing like Seti@Home: By just publishing IP-addresses and ports, even yet unknown systems may be offered to join. As they will receive code fragments to be executed at run time, no prerequisites apart from the SDVM-daemon are needed. In contrast to Seti@Home, to join, the new site may connect to any site which is part of the cluster, not just a central server.
  • Systems-on-Chip (SoCs): Several sites could be implemented on one chip and provided with a fast interconnection network. As each site works autonomously, a central clock may be omitted at all, solving one of the current problems regarding modern processor design. Moreover, defects on chips could be marked, the sites positioned in affected areas deactivated, resulting in a higher yield at the chip production.
The SDVM concept is applicable to all these areas. Presently, it is optimized for the use of computer clusters.
Where can I read more about it?
Publications
see here
Documentation
  1. Concepts
  2. Requirements, installation, and compiling
  3. Download
  4. Configuration
  5. Running applications
  6. The SDVM frontend
  7. Writing your own applications
  8. An example SDVM application
  9. An animation showing the SDVM at work
Where can I get it?
The SDVM's complete source code contains about 55,000 lines and is available here.
Who created it?
Prof. Dr. Klaus Waldschmidt
Dr. Jan Haase
Dr. Frank Eschmann
Prof. Dr. habil. Bernd Klauer
Contact:
jh, last change 15.07.2005