Array Processors and UNIX
Peter H. Berens
phb at dcdwest.UUCP
Mon Feb 4 15:06:48 AEST 1985
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
More information about the Comp.unix
mailing list