linux-mips-fnet
[Top] [All Lists]

Distributed Programming with DIPC

To: linux-mips@fnet.fr
Subject: Distributed Programming with DIPC
From: Kamran Karimi <karimi@cs.uregina.ca>
Date: Tue, 15 Dec 1998 17:11:10 -0600 (CST)
To people interested in distributed programming and clustering under Linux,

 This is to introduce DIPC (Distributed Inter-Process Communication). 
DIPC is a software-only solution for very easy distributed programming under 
the Linux operating system. Here developers design their applications 
as a group of processes, each possibly running on a different Linux computer, 
and then use DIPC to _transparently_ exchange data between them. The main 
objective of the DIPC project is to make distributed programming as much like 
"normal" programming as possible.

 DIPC hides itself behind UNIX System V's IPC mechanisms, consisting of 
Semaphores, Messages, and Shared Memories, and makes them work over a network. 
This means that DIPC offers, among other things, Transparent Distributed 
Shared Memory (DSM) with strict consistency: Processes can read from and 
write to the shared memory with no need for any explicit synchronization!
This makes DIPC very different from systems like PVM or MPI. The source code 
of a DIPC program is nearly identical to a normal UNIX program using System V 
IPC. Actually, a DIPC program can even run in a Linux computer with no DIPC 
support; no need for recompilation. System V IPC is widely available in 
UNIX variants, and is very well documented, meaning that developers may 
already know the programming interface, or they can learn it very easily, 
confident that the usefulness of the newly learned material is not tied to 
the availability of DIPC. This is in sharp contrast to most other distributed 
programming systems.

 Using a mainly "shared-memory" programming interface means that the same 
distributed application can also run on a multi-processor Linux machine
at "full speed"

 DIPC modifies the Linux kerenl in order to offer its excellent degree of 
transparency. There are no needs for any link libraries, and it can be 
used from any programming language that allows access to the OS calls.
The hardware can consist of a single Linux machine, or a cluster of computers 
connected to each other by a TCP/IP network. DIPC has been tested on 
inter-continental WANs and is a heterogeneous system, as it can run on 
Linux/i386 and Linux/m68k, with both versions being able to talk to each
other. (volunteers for porting DIPC to other CPU families are welcome).

 People intersted in distributed systems can easily and safely try DIPC. After 
patching a standard Linux kernel, DIPC becomes a configuration option 
(make config), and can be left out at compile time if desired. When DIPC is 
compiled in, it can be turned off any time with no need for a reboot.

 For more more information about DIPC, visit http://wallybox.cei.net/dipc . 
You can download the package (which includes the sources and the 
documentation) from the web page, or from ftp://wallybox.cei.net/pub/dipc . 
A mailing list devoted to discussions about DIPC is addressed at
linux-dipc@wallybox.cei.net . Feel free to send your comments and questions
here. To view the previous posts to DIPC's mailing list target your browser 
at http://wallybox.cei.net/dipc/ml-archive .

-Kamran Karimi

<Prev in Thread] Current Thread [Next in Thread>
  • Distributed Programming with DIPC, Kamran Karimi <=