Newsgroups: comp.parallel,comp.lang.misc,comp.protocols.tcp-ip
From: thinman@netcom.com (Technically Sweet)
Subject: Re: Massively parallel programming for the Internet
Organization: International Foundation for Internal Freedom
Date: Mon, 2 Jan 1995 19:03:24 GMT
Message-ID: <thinmanD1nvBD.IFD@netcom.com>

Edward Segall <segall+@cs.cmu.edu> writes:

 [ Edward & I stuff deleted ]

>This is an intersting juxtaposition, considering that Linda, Gelernter's
>creation, in fact implements distributed multisets.  I haven't seen
>"Mirror Worlds" - is this why you asked? In any case, the answer is
>"Linda".

Hmmm... I'll have to look at Linda again.

I had crossed it off because it doesn't let go of the classic
computer science obsession with computational efficiency.  All
of the projects I've scanned make the same mistake.  We're
talking about a system with 10,000 computers randomly executing
parts of one program while very slowly communicating with one
another.  The CPU time is essentially free, it's the messages
that are expensive.  

Given this, building special compilers that carefully optimize
your compiled C or Fortran (which Gelernter did) is a complete
waste of time, because it ignores the relative costs mentioned
above.  When you factor in the  cost of delivering N different
binaries to your 10,000 computers, C-Linda is (massively)
silly.  Not to mention the security problems of allowing some
wanker on the Internet run a binary on your precious
workstation.  You need to put a very simple verifiable
interpreter on those machines which implements a nice dense
program representation.  If I'm going to run some Internet
daemon on my workstation, it's going to be something where
I can examine the code and be damn sure it can't wipe out
any of my data.

A second problem is that these projects fixate on designing one
language for the problem.  This is hubris.  You're not going to
do a good language/control system the first time, so just build
the infrastructure and let anyone submit jobs in the low-level
interpreter.  Then you and they can independently do research in
languages and interactive debuggers.

Another problem these projects (legion, for example) make is
starting small.  Nothing scales up nicely, so you should just
start big and thrash wildly until something seems to work.

The Internet is a software ecology, which slowly creates habitat 
niche and demand for new software technologies.  At some point the
niche and demand for a "Netputer" will appear, and I think the
existence of the prime-smashers-by-email project indicates
that it already has.  But there are politics involved; there
must be grass-roots demand (see Mosaic).  Computer users and
site managers must want the Netputer service before they will
install the interpreters en masse.  I don't know how
to create this.  The Internet Nervous System idea is the
only one I've come up with.  INS is predicated on the
theory that the first generation of interpreters will not
be allowed any local storage to make them more palatable,
thus the nodes can only reprocess data and not store anything.

Perhaps this is wrong, what if they each had some disk space?
They could be allowed to search newsgroups via NNTP and
thus you could write a distributed newsgroup searcher.
They could be allowed to be HTTP clients and then they
could implement topologically smart caching of popular web
sites, allowing the netputer to handle overflow situations
like JPL had with the Schumaker-Levy web site right after
the impact.  (Netnews or its successor could certainly use 
this service.)  At some point they could take over DNS 
service, public key storage, anonymous remailing, etc.

Someday you may be required to tithe computer time and disk 
space to the Internet.  If such is the price of freedom...

-- 

Lance Norskog
thinman@netcom.com
Artisputtingtogether. Art  s th ow n  aw y.


