[net.unix] Array Processors and UNIX

James Matheson <jmrm@eng-dsl> (01/17/85)

In response to Mike Saltzman's message, I too would be interested in
info on array processors running under unix.

We have in the past investigated both FPS and CSPI's product range. Both
primarily support systems running VMS.
It is probably not very difficult to write the device drivers but converting
(even if source were available) the code development tools is potentially
much more time consuming. There are third party products for some
of the FPS machines for unix but there are (were) limitations compared
with the VMS stuff. There does not appear to be any CSPI support/interest
in Unix and they were unwilling to provide source of their code for us to
port despite offers of cofidentiality, feedback etc. We have a CSPI Mini-map
running under RSX which would clearly benefit from Unix!

cmoore@amdimage.UUCP (chris moore) (01/19/85)

A word of warning about FPS array processors:

We have an FPS which has been physically installed in our 11/730,
but is not yet running.  Among other problems, FPS will not sign
off the installation (and validate your service contract) until
they have run their installation diagnostics which only run under
VMS.  We had to buy VMS, install it for about a week so FPS could
run their diagnostics, then bring UN*X back up and put VMS on a
shelf where it is gathering dust.  FPS told us that if enough 
people bitched about it, they might make a UN*X version of their
diagnostics.  So, if you're interested in array processors, start
bitching to FPS!

-- 

"You can't get out backwards, you have to go forwards to go back"

 Chris Moore (408) 749-4692
 UUCP: {ucbvax,decwrl,ihnp4,allegra}!amdcad!amdimage!cmoore
 ARPA: amdcad!amdimage!cmoore@decwrl.ARPA

wong@rtech.ARPA (Jonathan Wong) (01/24/85)

What it will take to get FPS to support UNIX.
---------------------------------------------

Having worked at FPS I can over some enlightenment in regard to the UNIX issue.
What it will take is some customer (or customers), who is willing to by several
APs (> $200,000), and say to FPS, "Unless you support UNIX, no deal."  Merely
complaining will not do it, you must back it up with the promise of a large
sale.  (This is typical behavior of all corporations.)

Still there are enough UNIX AP customers to make it profitable for them to
support UNIX without the carrot and stick approach, right?  Yes, probably.
But after having tried to convince them of this fact, and the fact that UNIX
would be a better software development environment, I left to find a more
progressive atmosphere in which to work.  (Believe it or not, all their
software, micro-code assemblers, linkers, and even FORTRAN compiler is still
written in FORTRAN, although some recent products have been written in Ratfor,
and that was a major battle!)  So, here are the reasons why I think FPS has
an aversion to UNIX:


	1)  The majority of FPS's business is with customers who have
	    proprietary operating systems (IBM MVS, CMS; DEC VMS, etc.)

	2)  None of the major computer manufacturers (i.e., IBM and DEC, etc.)
	    support UNIX in a major way.
	    
        3)  UNIX being what it is, most UNIX AP customers are more able, if
	    not willing, to write their own software.  (I believe, there is
	    also a San Diego firm that will supply UNIX software for the AP,
	    called AP-UNIX.)

	4)  The president of the company views UNIX with a definite anathema
	    (the reasons of which I will not go into, except to say that they
	    are emotional.)








-- 

				J. Wong

				ucbvax!mtxinu!rtech!wong

roy@phri.UUCP (Roy Smith) (01/27/85)

> What it will take to get FPS to support UNIX.
> ---------------------------------------------
>         3)  UNIX being what it is, most UNIX AP customers are more able, if
> 	    not willing, to write their own software.  (I believe, there is
> 	    also a San Diego firm that will supply UNIX software for the AP,
> 	    called AP-UNIX.)
> 				J. Wong / ucbvax!mtxinu!rtech!wong

	Last address I had for Apunix Computer Services was 1380 Garnet
Ave, Suite E-292, San Diego, CA 92109 (619)-452-7819, contact person; Peter
Berens.  Their stuff looks good on paper (driver, compiler, assembler,
debugger, emulator, user library, etc), but I havn't actually used it yet.
Does anybody have hands-on experience with Apunix software on an FPS AP?

	It seems to me that if FPS is relying on people to "roll their
own", they may be fooling themselves.  True, Unix hackers are really into
this sort of stuff, but I don't know too many people that would plunk down
$40-200K for hardware, and then roll up their sleeves to write a driver,
compiler, assembler, user library, etc. before they could use it.
-- 
allegra!vax135!timeinc\
   cmcl2!rocky2!cubsvax>!phri!roy  (Roy Smith)
         ihnp4!timeinc/

The opinions expressed herein are mine, and do not necessarily
reflect the views of The Public Health Research Institute.

phb@dcdwest.UUCP (Peter H. Berens) (02/04/85)

I would like to thank those who mentioned my name and the name of my company
in regard to UNIX software for array processors.  I would, however, like
to address some of the points made in many of the recent submissions and
perhaps shed some light on a few areas.

I would first like to say that all the observations made in all the
previous articles are correct.  I have experienced almost all of the same
difficulties myself in the over ten years I have been a user of FPS
array processors.  However, what most of the authors fail to mention
is how OLD their experience, array processor, and/or software are. I think I
can demonstrate here that almost all of the specific problems presented
thus far are more of a history of the evolution of array processors and of
FPS as a company, rather than the problems that potential users of today
are likely to face. Thus, I would like to tackle each issue on a point by
point basis below:

First to respond to Mike Ressler's original question:  What array processors
run under UNIX:
	Currently I am not aware of any array processor manufacturer that
	provides software that will run under UNIX.  To the best of my
	knowledge my company (APUNIX) is the only source for UNIX array
	processor software.  We currently support the FPS 5000 series
	of array processors.  They range in speed from 8 megaflops (millions
	of floating point operations per second) to 60 megaflops.  The price
	is somewhere between 40-90K for the hardware depending on speed.
	We also support the predecessors of the FPS 5000, the AP-120B
	and the FPS-100.

	There ARE other manufacturers of floating point array processors:
	CSPI, Analogic, Star, Numerix, Sky Computers, and CD&A.  There
	may be even more I have not yet heard of, but be careful when
	looking at their literature to make sure it is a real floating point
	and not either block-floating point or integer.  For reasons I
	won't go into here you want to avoid these other types of AP's.
	FPS and CSPI are the oldest of the array processor manufacturers.
	FPS has always been very successful in marketing against CSPI and
	thus has generally been considered the leader in the field of
	array processors.  I too have heard the rumors about CSPI and
	their support of UNIX with their mini-map array processor.  I would
	only caution people to check it out throughly before buying it.
	Insist on talking to people who already are running it under UNIX.
	And if they should convence you to be the guinea pig, make sure
	you get one hell of a discount on the hardware (as in free).
	I have approached all of the other manufacturers about having my company
	providing UNIX support and have meet mostly with cold receptions.
	We are still open to providing UNIX support for any new array
	processors regardless of manufacturer if suitable terms can be arranged.

Why don't the manufacturers support UNIX?
	J. Wong shed some inside light on this question, but I would like
	to add a little here as well.  Almost without exception the array
	processor manufacturers write their support code in Fortran.
	Given the non compatibility of Fortran between the major hosts
	(DEC, IBM, etc.) they already have a VERY hard time keeping the
	support going for the manufacturer's supported operating systems.
	These companies tend to have very limited software engineering
	resources and the talent they do have tends to be very specialized
	(remember they have to write device drivers for EACH operating system
	they support, and most aren't as easy as UNIX).
	It is often a choice for them between supporting a new piece
	of hardware they may want to introduce or adding more supported
	host operating systems to their present products.  Given the
	recent boom in VLSI array processor chips, they all are focusing
	on new hardware rather than expanding their current market.
	Also given the horror stories of the UNIX f77 compiler and its non
	compatibility with VMS Fortran for example, you can see why they
	would think hard before tackling such a project.  Also I am not
	sure the UNIX community would want them to.  Even though they may
	clean up their Fortran to run under f77,  do you want to use software
	tools that still provide an interface like VMS?  They would hardly
	be willing to go out of their way to customize the software for
	UNIX and thus have to redo all their documentation and training
	programs.

	You may ask is UNIX customization important.  I think most of our
	customers would tell you quite definitely yes.  They like to be
	able to run part of their code through M4, for example, and then
	pipe the rest on to some other part of our software.  They also
	like to be able to run the software out of makefiles and have all
	the appropriate options available as switches like the rest of UNIX
	commands.  And as James Matheson points out, they sometimes are
	unwilling to give out source whereas a company such as ours would
	never try to sell to the UNIX community with anything but a full
	source license.

Why doesn't the potential UNIX user just buy one of these things and write
the device driver himself?
	Well, if it was ONLY a device driver I might agree on this point.
	(Although there are some key performance issues where home brewed
	device drivers might not fair so well).  The main fly in the ointment
	is that array processors come with very HUGE software packages called
	program development software.  Remember these are not just fancy
	controllers, these are complete independent perhiperal computers.
	They have their own instruction language and libraries of microcode.
	Thus you need an assembler, linker, loader, simulator, and higher
	level language interfaces.  You also need a ton of host-AP interface
	routines.  To provide a satisfactory product for UNIX users, we have
	had to rewrite ALL of the above in C and optimize for UNIX.
	This was a process that took several man years of work to evolve
	to its current state.  Its not the sort of thing you want to get
	into unless you either have no choice or are going to make a product
	out of it.

Who are these guys at Stanford?
	About ten years ago I started working with Serial #2 of the first
	FPS array processor.  At the same time the site I was at received
	one of the early Bell releases of V6 UNIX.  Due to the conversion
	problems of the software we ran the AP under RT-11 for a little over
	a year.  Then at Stanford we found two people who were in a similar
	situation as ours.  Their names are John Newkirk and Rob Mathews.
	John and Rob came up with a preliminary version of the software
	than ran under the once infamous Princeton Fortran Compiler and/or
	the CULC Fortran Compiler.  Then the three of us began the job
	of rewriting the software and evolving it into a real UNIX product
	(I did most of the rewritting of the monster Fortran programs to C,
	they worked mainly on the driver and support library).
	During the early years, John and Rob marketing the package as a
	company called Peninsula Research.  However, as they became involved
	heavily in other things, support became a real problem for them.
	At that time they turned the complete package over to me and
	APUNIX was born.  Thus Stanford or Peninsula Research no longer
	provide any UNIX support software for array processors.  Unfortunately,
	due to poor records, I was unable to get in contact with many of
	the sites they had distributed the software to.  Ballistic Research
	Labs is one of these sites.  Since the time APUNIX has been responsible
	for the software,  it has evolved into an entirely new product with
	most of the performance issues raised by Ron @ BRL corrected.

Why buy an array processor and not a vector processor?
	It is my opinion that array processors still offer a
	significantly higher performance/cost ratio than even the new
	vector processor machines (e.g., mini-Crays) that are becoming
	available.  One must remember that the new array processors are
	in the 60-300 Megaflop range and not the 10 megaflop range the
	previous submitters are basing their experience on.  The array
	processor offers you the advantage of actually coding for the
	intrinsic parallelism and pipelining inherent in floating point
	hardware.  The vector processors really hide this fact and to
	do so as efficiently as they do is probably where a lot of the cost
	goes.  The advantage the vector processors have is their compilers,
	however a good microcoded library routine that performs the same
	function on an array processor will still be more cost effective.
	There is only one good compiler available for an array processor
	that I know of, and that is for the FPS-164 (the 64 bit brother of
	the FPS-5000 series).  The FPS-164 has a speed range of
	10-300 Megaflops but a price tag that matches (>300K).  We are
	currently negotiating for the UNIX support for the FPS-164, but
	no deals have been sealed as of yet.

Now onto the FPS array processors specifically:
Are they hard to program?
	Yes and no.  The Yes part is in generating your own microcode
	for the AP.  It has a highly parallel and pipelined architecture
	that is reflected in the complexity of its assembly language.
	However, I estimate that less than 10% of our customers actually
	do microcoding of their own.  The major advantage of FPS is the
	extensive math libraries that exist of canned routines in the
	AP's microcode.  This allows most people to simply pick out
	one or more of these functions and link them together in an
	appropriate manner to solve their problem.  Most people are very
	happy with the results and DO achieve substantial (5-10 times
	a VAX 11/780) with just this level of effort.  Given the UNIX
	philosophy that assembly language is a dead language, I wont say
	much about writing assembly language routines for the AP except
	that it is not as bad as it seems.

	The major problem in most user's eyes is that there is no compiler.
	That is to say, you simply can't take the code you have been running
	on your vax and compile it and have it run on the AP.  You must
	alter your code slightly to perform the following tasks: a) transfer
	the data to and from the AP's memory and b) call the appropriate
	AP program(s) (from the libraries)  to perform the desired tasks.
	FPS does have a Fortran compiler for the 5000's, but the current
	version is so bad they have a hard time selling it to any customers,
	due to its poor code generation.  Thus we do not provide it with our
	UNIX software package.  There is suppossedly a better compiler from FPS
	soon to be available. (It is actually being done by a group called
	Systems Software Factors in England, also known as the Toast People.)
	We do intend to provide this if it indeed proves to be a viable
	alternative.  (The advantage to us is that some years ago I managed
	to help convince the Toast people that C was a better language to write
	their compiler in than Fortran!)

Are they UNIBUS hogs and is there a lot of system overhead associated with
their use?
	Yes and no.  In most cases they only are if you let them
	be.  The most serious overhead is in transferring the data back
	and forth between the host and the array processor (as most array
	processors have their own memory, although some may argue shared
	memory approach may have some advantages, normally the complexity
	of dealing with it in a multiuser virtual memory system and the
	overhead of accessing it over the UNIBUS (in the case of vaxes) I
	feel negate any benefits). In most of the cases where I have seen 
	interface bandwidth to be a problem, it is mostly
	due to very little thought being given to the problem.  Generally
	you can arrange it so you transfer an initial set of data to the AP
	do one or more operations (hopefully more) and keep intermediate
	results in the AP and then just bring back the final result.  Since
	all the new FPS 5000's come with a minimum of 256K words, storage
	of data and intermediate results is not a problem.  If for example,
	you transfer two arrays and do a vector add and transfer them back,
	and the arrays are only five elements long then forget it.  The
	overhead will kill you.  But if the arrays are > 20-100 elements
	and you have to do a few more things besides one vector add on
	the data before you have solved your problem, then you will start
	to notice the blazing speed of the AP.

	If your applications were extremely i/o intensive, I might advise
	you to be to carefully analyze the costs of the data transfers
	before buying an AP.  But even in such applications such as image
	processing we have customers who are very happy with the AP and
	don't see the i/o bandwidth as a real problem either in terms
	of performance or system load.

	System overhead is an area where the design of the device driver
	plays a key role.  Older versions of our device driver had a
	severe problem in this regard.  However, over the years we have
	rewritten the driver many times using many different strategies
	to try to minimize this.  We feel we that we have now incorporated
	a method that makes the actual overhead time comparable to that
	which is achievable with VMS.

Is FPS non-responsive to hardware problems and do they still ship broken
hardware?
	One must remember that in the past 10 years, FPS has grown from
	a garage operation to a multi-million dollar company.  During that
	time they necessarily suffered many growing pains.  I am not trying
	to defend them, as I too cursed their name for many years when
	their non-responsiveness caused me many hours and weeks of down
	time.  We HAD to maintain the hardware ourselves for many years
	because FPS support was so bad.  But one must keep in mind that
	this is not typical of their behavior TODAY or in the last three
	to four years.

	The problems Ron @ BRL points out with the interface problems
	that required hardware ECO's to fix have not been in existence
	for many years.  It is a lot like getting Rev A of a disk controller,
	I don't think its fair to tell people not buy the product because
	of problems with Rev A when the company is shipping Rev Z today.
	Malcolm @ Purdue also points out that he must keep his AP on its
	own UNIBUS adapter.  This was also true for about Rev A-C (actually they
	only had to be at the END of a busy UNIBUS), but again
	we are on Rev Z today.  All of the AP's I have seen shipped in the
	last three years have NO interface problems even when on a UNIBUS
	with disks, dz's, dh's,  and all other perhiperials possible
	(with the possible exception of a Benson/Varian printer plotter,
	and I still firmly believe the problem to be in the Benson/Varian
	interface).  And most of these AP's have been installed without
	any hardware problems.

Will FPS install or support the array processor under UNIX?
	This is a real grey area.  In most of the cases I am aware of
	FPS has been willing to install the hardware and check it out
	with our diagnostics under UNIX.  I really don't quite understand why
	Chris Moore @ AMD has had this particular problem.  His neighbor
	in Sunneyvale and uucp partner, Resonex, got an AP at almost the
	exact same time.  They were able to convenience FPS to install it
	with our diagnostics, but apparently he was not.

	Hardware maintenance is largely dependent on the local FPS support
	people.  Most I have dealt with have been willing to look at the
	results of the diagnostics running under UNIX and then fix the
	problem.  Once one fires up the diagnostics, they look exactly the
	same as they are under VMS.  The best thing to do is have
	them running when the FPS service engineer
	walks in the door and don't mention the word
	UNIX.  The same is true when calling FPS in Portland for assistance.
	They are slowly warming up to the idea that UNIX is not a bad word,
	but it still is not a good idea to make an issue out of it when
	trying to get their help.  We, of course, are willing to supply
	all the support and maintenance for the software as may be necessary.

Are people who have the APUNIX software and FPS array processors happy?
	I will have to let my customers speak for themselves.  But at least
	from what I can determine, most seem to be pleased the performance
	of the software/hardware combination and find the AP to provide
	them with quite a bit of bang for the buck in terms of computational
	ability.  I have had rough times with some customers, where there
	may have been a period of dissatisfaction.  But we have tried to work
	with each of them and I don't think there is one in the end who
	has not been happy.  We don't have any customers I would be hesitant
	to give as a reference.

	Most of our customers have been worth their weight in gold to us.
	Malcolm @ purdue is one of those rare sites you can send experimental
	software and get constructive criticism back.  He has also shared many
	of his own enhancements with us.  George Tomasevich @ Bell Labs
	is at a site where we encountered a particular configuration of an
	AP we had never seen before.  It caused our software to misbehave
	in mysterious ways and they had the patience wait a few weeks
	and give us access to their system while we tracked down and
	corrected the problems.  Glen Adams @ mit-lincoln labs also
	contributed grately when the software needed to be retrofitted
	to run on a V7 PDP-11 after many years of VAX-ination.  I mention
	these people in particular (there are many others we are equally
	as grateful to  as well) because they have given us good
	recommendations on the net, but yet I know they were by far not
	our more typical smooth installations.  I only hope that this
	speaks highly of the level of customer satisfaction we have been
	able to achieve and the support and commitment we have to the software.
	I should also mention that the FPS-5000 is a brand new product, and
	as such our current FPS-5000 sites have been quite patient while we
	scramble to bring up a bunch of new support software for the additional
	co-processor capability that will hopefully allow them to run at a rate
	of 30-50 times that of a VAX 11/780.  They have been kind enough not
	to point our this temporary shortcoming on the net.

What is the connection between APUNIX and FPS and the difference between
their software?
	There is really no connection between the two of us expect that
	we happen to provide the UNIX support software for their hardware.
	Over the years, our relationship with FPS has been somewhat
	cyclic.  However, in recent years that have been quite supportive
	of our efforts and have provided us with a complete distribution of
	their latest software and keep up updated on all hardware and
	software bug fixes.  All sales and marketing are still done
	separately however.  They take no responsibility for our software.
	You must by the hardware from them and then on a separate P. O., buy
	the software from us.  Its a lot like buying a VAX from DEC and the
	UNIX license from Bell.

	With the exception of support for the old Fortran compiler, I know
	of no major feature of the FPS software they we do not support in
	our UNIX version.  In fact, we offer many additions such as a
	C syntax higher level language interpreter for linking together
	math library routines.

For more information, please feel free to contact us or give us a call.
I will be glad to tell you anything I can about array processing under
UNIX even with respect to products we don't support.
I know this message has gotten quite long, thank you for your time.

					Peter H. Berens
					Apunix Computer Services
					1380 Garnet Ave., Suite E-292
					San Diego, CA  92109
					(619) 484-0074
					Telex: 4997136 APUNIX
					...!decvax!ittvax!dcdwest!phb
					...!ucbvax!sdcsvax!dcdwest!phb

roy@phri.UUCP (02/05/85)

In 26@amdimage.UUCP Chris Moore says:

> [...] Among other problems, FPS will not sign off the installation
> (and validate your service contract) until they have run their
> installation diagnostics which only run under VMS. [...]

I asked my sales rep if FPS could come in with their own VMS tapes and
bring up VMS on my system (I have a "licence to copy", whatever that
means) for purposes of diags.  He sounded vaugely agreable and said he
would look into it.  He said that their install team includes a software
guy who should be able to do the VMS install himself.  This still means
I have to backup my whole ra-81, and re-install from scratch, but at
least it's better than buying VMS for a 1-time use.  He also made some
noise about planned Unix diags.
-- 

The opinions expressed herein do not necessarily reflect
the views of the Public Health Research Institute.

allegra!vax135!timeinc\
   cmcl2!rocky2!cubsvax>!phri!roy (Roy Smith)
         ihnp4!timeinc/

mmt@dciem.UUCP (Martin Taylor) (02/09/85)

In article <dcdwest.170> phb@dcdwest.UUCP (Peter H. Berens) writes:


>  FPS and CSPI are the oldest of the array processor manufacturers.
>        FPS has always been very successful in marketing against CSPI and
>        thus has generally been considered the leader in the field of
>        array processors.  I too have heard the rumors about CSPI and
>        their support of UNIX with their mini-map array processor.  I would
>        only caution people to check it out throughly before buying it.
>        Insist on talking to people who already are running it under UNIX.
>....
> Currently I am not aware of any array processor manufacturer that
>        provides software that will run under UNIX.  To the best of my
>        knowledge my company (APUNIX) is the only source for UNIX array
>        processor software. 

It may be correct that no array processor MANUFACTURER provides UNIX
support, but APUNIX isn't the only place that could provide it.  Several
years ago (1978?) we commissioned HCR to develop UNIX support for the
CSPI MAP-300.  This included calls to their SNAP-II routines, plus
a pre-processor that allowed C-like calls to be written in your C programs
(it also preprocessed Ratfor and Pascal, using a compile-time switch).
The system originally ran under V6 on a PDP-11/34, and now runs on
a Perkin Elmer 3242 under Edition VII.  CSPI were at one time interested
in marketing the product, but decided that UNIX didn't represent a
big enough market. (Maybe that's why FPS outsells them; they don't
have much insight :-).  We didn't have full debugging support, or
C language access to the assembler code of the various internal processors
of the MAP-300, but it doesn't seem to have mattered.

I don't know whether HCR still maintains or sells this, but it was
a product at one time (perhaps it still is; I just don't know).

Incidentally, I can't speak to present-day array processors, but at that
time I felt CSPI had a better product for general purpose high-bandwidth
computing than did FPS.  The AP-100 was based on a rather long pipeline
that was a bit tricky to program, whereas the CSPI MAP-300 was based
on concurrent processors that were not pipelined, and could be programmed
as SIMD or MIMD, as well as totally independent I/O processors for
communicating with the host or with the outside world.
-- 

Martin Taylor
{allegra,linus,ihnp4,floyd,ubc-vision}!utzoo!dciem!mmt
{uw-beaver,qucis,watmath}!utcsrgv!dciem!mmt