Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!seismo!rutgers!ames!ucbcad!ucbvax!decvax!savax!elrond!adb
From: a...@elrond.CalComp.COM (Alan D. Brunelle)
Newsgroups: comp.unix.wizards
Subject: Information on BSD 4.[23] on two/multiple processor systems
Message-ID: <1112@elrond.CalComp.COM>
Date: Wed, 5-Aug-87 15:12:58 EDT
Article-I.D.: elrond.1112
Posted: Wed Aug  5 15:12:58 1987
Date-Received: Sat, 8-Aug-87 04:41:17 EDT
Organization: Calcomp, A Lockheed Company, Hudson, NH, USA
Lines: 44
Keywords: BSD 4.[23] Multiple Processor Systems


  We are seeking any information on BSD 4.2 or 4.3 support of multiple CPU
  systems. (More specifically a two CPU system such as a VAX 11/782 or 
  VAX 8800.) The types of information we are most interested in are:
    o Does the standard BSD 4.[23] release support the dual processor
      systems?
    o To what extent is the 2nd processor utilized? (Is it a true 
      multi-processor port in that the kernel and user processes can
      run on either CPU, or is it the case that the kernel runs on one
      and only one of the CPUs?) 
    o Are there any performance measures which compare a two processor
      system vs. the single processor version? (Using the same kernel
      source on a single processor system vs. a two processor system,
      does the two processor version equal 1.3? 1.5? 1.7? 2.0!? times
      a single processor system?)

  If a Berkeley standard release does not contain dual processor
  support, does anyone else out there have information on:
    o Which systems DO have a dual (or multiple) CPU UN*X?
    o How to 'coerce' a BSD port to work on a dual cpu architecture?
    o Information on how the two processors are utilized in that
      scheme.
    o What kind of theoretical/practical performance improvement benchmarks
      does the 2 CPU system have over the single CPU version?
      
  Comments about some of the issues involved with multiple processor 
  systems would be appreciated, as would the methods that could handle
  them correctly.  Information on (say) AT&T SysV.3 multiple CPU systems 
  or any other UN*X type boxes out there would also be useful.

  Any answers/comments would be most appreciated. Any replies to me
  would be summarized to the net later (if so desired). 

  thanks,
    al 

    "Elen sila lumenn' omentielvo."

/-----------------------------------------------------------------------\
| Alan D. Brunelle   (a...@durin.CalComp.COM)  (603) 885-8145            |
| uucp: ...{decvax,harvard,savax,wanginst}!elrond!durin!adb             |
| Calcomp (A Lockheed Company)         Display Products Division	|
| PTP2-2D02 Hudson NH 03051-0908     "We draw on your imagination" (tm) |
\-----------------------------------------------------------------------/

Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!seismo!mimsy!chris
From: ch...@mimsy.UUCP (Chris Torek)
Newsgroups: comp.unix.wizards
Subject: Re: Information on BSD 4.[23] on two/multiple processor systems
Message-ID: <7884@mimsy.UUCP>
Date: Thu, 6-Aug-87 10:22:20 EDT
Article-I.D.: mimsy.7884
Posted: Thu Aug  6 10:22:20 1987
Date-Received: Sat, 8-Aug-87 12:45:54 EDT
References: <1112@elrond.CalComp.COM>
Organization: U of Maryland, Dept. of Computer Science, Coll. Pk., MD 20742
Lines: 45
Keywords: BSD 4.[23] Multiple Processor Systems

In article <1...@elrond.CalComp.COM> a...@elrond.CalComp.COM (Alan D.
Brunelle) writes:
>   We are seeking any information on BSD 4.2 or 4.3 support of multiple CPU
>   systems. (More specifically a two CPU system such as a VAX 11/782 or 
>   VAX 8800.) The types of information we are most interested in are:
>     o Does the standard BSD 4.[23] release support the dual processor
>       systems?

No; and in any case, 4.3BSD does not run on BI machines like the
8800 (except here at the University of Maryland!).  Ultrix 2.0
appears to support multiple CPUs, and it is not terribly difficult
to add similar support to 4.3BSD.  Most of the hooks are there;
this is what `masterpaddr' in Swtch() is all about.  George Goble
at Purdue has had a master/slave system running for years, using
an inexpensive version of the 782 (replace the SBI terminator with
a second KA780 and away you go).

>     o To what extent is the 2nd processor utilized? (Is it a true 
>       multi-processor port in that the kernel and user processes can
>       run on either CPU, or is it the case that the kernel runs on one
>       and only one of the CPUs?) 

The obvious changes for 4.3 result in a master/slave system.
Allowing any CPU to make syscalls and field interrupts requires
real locking, which would require fairly substantial kernel changes.
Just ask Sequent: they did it.  I would guess that Ultrix 2.0 uses
master/slave.

>     o Are there any performance measures which compare a two processor
>       system vs. the single processor version? (Using the same kernel
>       source on a single processor system vs. a two processor system,
>       does the two processor version equal 1.3? 1.5? 1.7? 2.0!? times
>       a single processor system?)

The answer is `it depends'.  Master/slave systems run anywhere from
<1.0 to 1.9+ times the rate of single-cpu systems, depending on
exactly what you do.  Consult any good operating systems book for
details.

>	"Elen sila lumenn' omentielvo."

Be careful, friends!  Speak no secrets!  :-)
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7690)
Domain:	ch...@mimsy.umd.edu	Path:	seismo!mimsy!chris

Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!seismo!ll-xn!husc6!cmcl2!edler
From: ed...@cmcl2.NYU.EDU (Jan Edler)
Newsgroups: comp.unix.wizards
Subject: Re: Information on BSD 4.[23] on two/multiple processor systems
Message-ID: <18673@cmcl2.NYU.EDU>
Date: Thu, 6-Aug-87 17:00:36 EDT
Article-I.D.: cmcl2.18673
Posted: Thu Aug  6 17:00:36 1987
Date-Received: Sat, 8-Aug-87 12:31:58 EDT
References: <1112@elrond.CalComp.COM>
Reply-To: ed...@cmcl2.UUCP (Jan Edler)
Organization: New York University, Ultracomputer project
Lines: 120
Keywords: BSD 4.[23] Multiple Processor Systems

By now, quite a few decent quality multiprocessor UNIX systems have
been produced.  I'm sure my list is pretty out of date by now, but I'm
sticking a few references at the end of this message.  I'll let the
various vendors of such systems speak for themselves about details.  If
you want good performance with fairly little work, you should go with
one of them.

If you want to roll your own, it isn't too hard to get something simple
going (like a master/slave system), provided you are already pretty
familiar with the UNIX kernel and with various issues of parallel
programming.  But getting high performance is a lot more work.

Here at NYU we have developed three multiprocessor UNIX kernels, and
are working on a fourth.  The first was a master/slave system based on
v7, the second was a symmetric system also based primarily on v7, the
third was a master/slave system based on 4.2bsd, and we're now working
on a more aggressive symmetric system based on 4.3bsd.  As an
intermediate stage of this new version, we're also doing a "floating
master/slave" system, where most of the kernel is only executed by one
processor at a time, but it isn't always the same processor.

Schemes like master/slave are relatively easy because they work by
trying to preserve, to a great extent, the uniprocessor semantics that
are assumed throughout a standard UNIX kernel.  The better you do that,
the easier the job, but when you serialize things you sacrifice
performance, especially as the number of processors increases.  If your
application mix is not kernel-intensive, it can still give quite good
performance.

A more parallel kernel requires extensive modifications to eliminate
those uniprocessor assumptions.  Some of the references below already
do a reasonable job of explaining this.

In many cases the job of producing a multiprocessor UNIX kernel is also
tied up with the mundane issues of porting to a different machine,
possibly with a different MMU, etc.; these factors should not be
ignored.  There are also a host of additional issues that arise if you
are interested in larger numbers of processors; critical sections that
are entirely acceptable on smaller machines can become easily become
bottlenecks.

Here are some references:

%T The U\s-2NIX\s0 System: Multiprocessor U\s-2NIX\s0 Systems
%A M. J. Bach
%A S. J. Buroff
%J AT&T Bell Laboratories Tech. J.
%V 63
%N 8
%D Oct. 1984
%P 1733-1750
%K unix bltj 3b20
%X Good description of basic approach to a symmetric UNIX kernel

%T M\s-2UNIX\s0, A Multiprocessing Version of U\s-2NIX\s0
%A John A. Hawley,\0III
%A Walter B. Meyer
%R M.S. Thesis
%I Naval Postgraduate School
%C Monterey, California
%D June 1975
%K hawley munix unix pdp11
%X Possibly the earliest project to put UNIX on a multiprocessor.

%T A Dual Processor \s-2VAX\s0 11/780
%A George H. Goble
%A Michael H. Marsh
%R Tech. Report TR-EE 81-31
%D Sept. 1981
%I Purdue University
%K master slave unix vax multiprocessor
%X An early master/slave UNIX system that attracted a lot of attention.

%T VLSI Assist in Building a Multiprocessor U\s-2NIX\s0 System
%A Bob Beck
%A Bob Kasten
%J Proc. USENIX Conf.
%D Summer, 1985
%P 255-275
%K sequent balance 8000 dynix unix

%T A Multiple CPU Version of the U\s-2NIX\s0 Kernel
%A Eric J. Finger
%A Michael M. Krueger
%A Al Nugent
%J Proc. USENIX Conf.
%D Winter, 1985
%P 11-22
%K masscomp unix

%T The Design of the U\s-2NIX\s0 Operating System
%A Maurice J. Bach
%I Prentice-Hall
%C Englewood Cliffs, New Jersey
%D 1986
%K unix internals book

%T Considerations for Massively Parallel U\s-2NIX\s0 Systems
on the NYU Ultracomputer and IBM RP3
%A Jan Edler
%A Allan Gottlieb
%A Jim Lipkis
%J Proc. USENIX conf.
%D Winter, 1986

%T An Overview of the NYU Ultracomputer Project
%A Allan Gottlieb
%R NYU Ultracomputer Note #100
%I New York University
%C New York
%D 1986
%K ucn100

----------------------

Jan Edler
NYU Ultracomputer Project
edler@nyu
...!cmcl2!edler
(212) 998-3353

Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!husc6!rutgers!clyde!cbosgd!cwruecmp!hal!oxtrap!rich
From: r...@oxtrap.UUCP (K. Richard Magill)
Newsgroups: comp.unix.wizards
Subject: Re: Information on BSD 4.[23] on two/multiple processor systems
Message-ID: <293@oxtrap.UUCP>
Date: Tue, 11-Aug-87 20:26:27 EDT
Article-I.D.: oxtrap.293
Posted: Tue Aug 11 20:26:27 1987
Date-Received: Fri, 14-Aug-87 04:45:22 EDT
References: <1112@elrond.CalComp.COM>
Reply-To: r...@oxtrap.UUCP (K. Richard Magill)
Organization: Oxford TP, Ann Arbor
Lines: 57
Keywords: BSD 4.[23] Multiple Processor Systems

Sequent Computer Systems of Beaverton Oregon makes a 32032 based box,
(2-30), based on 4.2 (+ some 4.3 hacks), with SysV calls hacked in if
you want them, (dual universe), shared memory, memory mapped disk
files, atomic lock memory, etc, etc.  This system is load balanced by
time slice.  And the system works slic (pun intended!).  I've been on
more versions of unix than I can remember right now and I usually find
2-10 bugs in the first week on a new system.  I've been on DYNIX now
for ~2 months with exactly one major complaint.  (tell you later, or
watch real soon on comp.sys.sequent).

Their new 4.3'ish os release is due out in days and they are in beta
test on a multiple '386 based system, (2-30).

My answers with regards to sequent DYNIX 2.1.1.

In article <1...@elrond.CalComp.COM> a...@elrond.UUCP writes:
>
>  ... any information on BSD 4.2 or 4.3 support of multiple CPU ...
>  systems. (More specifically a two CPU system such as a VAX 11/782 or 
>  VAX 8800.) The types of information we are most interested in are:
>    o To what extent is the 2nd processor utilized? (Is it a true 
>      multi-processor port in that the kernel and user processes can
>      run on either CPU, or is it the case that the kernel runs on one
>      and only one of the CPUs?) 

Symmetric.  ie, balanced by time slice.

>    o Are there any performance measures which compare a two processor
>      system vs. the single processor version? (Using the same kernel
>      source on a single processor system vs. a two processor system,
>      does the two processor version equal 1.3? 1.5? 1.7? 2.0!? times
>      a single processor system?)

All that I have seen and done are nearly linear, upt to about 27/30 on
a 30 cpu balance.

>    o Which systems DO have a dual (or multiple) CPU UN*X?

I know that encore offers a multiple 32032 based box but I don't know
much about it except that it is SysV'ish.  The new NCR broadway is a
bunch of 68020's that do load balance by process, (basically network
in a box, SysV + proprietary ipc), and the Convergent Technologies
systems use a proprietary operating system (CTOS), with a "unix
emulator" on top.  And then there is "the-network-is-the-computer"
SUN...

>    o What kind of theoretical/practical performance improvement benchmarks
>      does the 2 CPU system have over the single CPU version?

With the exception of locking which is seldom a problem, lock
overhead, which is noticable (check iocall results for sequent) but a
necessary evil, and process coordination, it is linear.

rich.

ps, oxtrap is a sequent B8000(6)
"lies keep people happy" - I94 west of detroit.

			  SCO's Case Against IBM

November 12, 2003 - Jed Boal from Eyewitness News KSL 5 TV provides an
overview on SCO's case against IBM. Darl McBride, SCO's president and CEO,
talks about the lawsuit's impact and attacks. Jason Holt, student and 
Linux user, talks about the benefits of code availability and the merits 
of the SCO vs IBM lawsuit. See SCO vs IBM.

Note: The materials and information included in these Web pages are not to
be used for any other purpose other than private study, research, review
or criticism.