Distributed Programming with DIPC (fwd)

Jim Choate ravage at EINSTEIN.ssz.com
Tue Dec 15 19:34:22 PST 1998



Forwarded message:
>From owner-sparclinux-outgoing at vger.rutgers.edu Tue Dec 15 20:47:43 1998
Date: 	Tue, 15 Dec 1998 17:09:40 -0600 (CST)
From: Kamran Karimi <karimi at cs.uregina.ca>
To: sparclinux at vger.rutgers.edu
Subject: Distributed Programming with DIPC
Message-ID: <Pine.SGI.3.91.981215170900.10107H-100000 at MERCURY.CS.UREGINA.CA>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Orcpt: rfc822;sparclinux at vger.rutgers.edu
Sender: owner-sparclinux at vger.rutgers.edu
Precedence: bulk
X-Loop: majordomo at vger.rutgers.edu

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 at 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
-
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of the message to majordomo at vger.rutgers.edu






More information about the cypherpunks-legacy mailing list