🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sources.d
Article #1989

Distributed Processing Package

#1989
From: Linas Vepstas
Date: Thu, 07 Jan 1993 02:56
93 lines
4622 bytes

Can someone out there help me find a permanent home for some 
distributed multi-processing code?  I have some source I wish to
put into the public domain -- somewhere where people can find it
& get it.  An anon-ftp site would be great!

Description
-----------
The package is called "MAY" and implements a basic
message-passing distributed-processing API.  It allows you do
develop programs that execute concurrently on a number of
machines on a network.

The API supports basic distributed services & a processor farm. 
The basic services provide a very simple, very easy-to-use
interface to TCP/IP together with a remote server daemon that
allows processes to be started remotely.  The processor farm
provides an equally simple API to allow repetitive work to be
"farmed out" to a number of network nodes.  It has a bunch of
high tech built into it -- high & low watermark FIFO's,
queue-empty alarms, load-balancing, etc. to make sure that 
each network node is busy crunching on something, and
gaurenteeing the shortest possible real-time execution.

The basic services include a "create" routine -- sort of like 
a network fork, or rexec -- it starts up program /u/joe/xyz 
on machine abc.whatever.domain.  In addition, it establishes 
a network connection, i.e. a socket, between the parent and 
the child, so that the two can pass messages between one another. 
In addition, there is a "send" routine, a "recevie" routine, a
"terminate" routine, and a routine that the child process can
invoke to get it's parents address.  The basic services are
implemented in both TCP/IP and in UDP/IP.

The package comes with documentation & examples.  The processor
farm examples include a fractal drawer, and a ray-tracer
(a modified version of rayshade), displaying into an X11 window
in more-or-less real time (depending on your network bandwidth &
processor speeds).  The package compiles & runs on IBM RT's,
RS/6000's and on SGI boxes. The code is free and unencombered by
funky copyrights.

Pro's, Con's & Caveat's
-----------------------
The package was developed to overcome what seemed to be a basic
limitation with RPC's -- the inability to perform asynchornous,
distributed processing.  Prior to development, the Apollo NCS
system was examined, but seemed to be excessively complex.

MAY does not support NIDL -- although it probably should.  If
the messages you are passing around contain char's, short's
long's & double's, plan ahead to do some word-alignment/byte
swapping accross different CPU architectures.

MAY allows you to launch processes remotely, but does not put
them there.  You have to get them there first, by hand -- I used
ftp, and later, NFS.

To perform a MayCreate() (i.e. a remote fork/exec) on a remote
machine, you must have the MAY daemon running on the remote
machine.  I did this by hacking the rc, and later, the inetd
files on the remote machines, so that a reboot didn't force you
to go off & restart the daemons by hand.

MAY does not stop to ask you for a password -- it doesn't do ANY
security verification stuff.  And anyone using it can run most
anything executable -- so its a real security hole if you want
to use it in an unfreindly environment.	 Adding security
features could make MAY broadly acceptable to the general
computing public.

----------

If anyone is interested, please let me know.  I'm tired of
watching my slick technology gather dust & grow old on my
machine.

--- linas

^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^
    Linas Vepstas                
    Phone: 1-(512)-838-1116
    internet: linas@innerdoor.austin.ibm.com
    Home addr: 1518 Enfield Road, Austin TX, 78703-3424
^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^


-- 
^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^
You are in a twisty little maze of standards, all conflicting.

^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^
Technical Details
Message-ID: <C0Gqtn.16D0@austin.ibm.com>
Path: arc1-ca.pugleaf.net!sparky!uunet!paladin.american.edu!howland.reston.ans.net!wupost!cs.utexas.edu!geraldo.cc.utexas.edu!portal.austin.ibm.com!awdprime.austin.ibm.com!linas

Show Full Headers
Complete Article Headers
Newsgroups: comp.sources.d
Path: arc1-ca.pugleaf.net!sparky!uunet!paladin.american.edu!howland.reston.ans.net!wupost!cs.utexas.edu!geraldo.cc.utexas.edu!portal.austin.ibm.com!awdprime.austin.ibm.com!linas
From: linas@austin.ibm.com (Linas Vepstas)
Subject: Distributed Processing Package
Originator: linas@boardhead.austin.ibm.com
Sender: news@austin.ibm.com (News id)
Message-ID: <C0Gqtn.16D0@austin.ibm.com>
Date: Thu, 7 Jan 1993 02:56:11 GMT
Reply-To: linas@boardhead.austin.ibm.com
Organization: IBM Graphics Systems
Keywords: MP distributed multi-tasking multi-processing
Lines: 93