An Interview with Dan Patterson
DP = Dan Patterson
GAM = George Michael
GAM: We are interviewing Dan Patterson today, the 12th of November, 1996.
DP: It's nice to see you again George, you squid.
GAM: Nice to see you again too Dan, you squid, you remembered, Tommy Udo,
right? You taught me that! Well, why don't you start by telling us where you
came from, where you got your degree and why you came to the Lab and
stuff like that? Go ahead!
DP: I got my degree at Sacramento State in 1955 and I heard about the laboratory
because five other classmates were looking around for jobs. They found a
notice hanging on the bulletin board and said, "Let's go down and see these
guys" and so we took a ride to Livermore from Sacramento and had a short
discussion with someone in Personnel and they said to send in some application
blanks. We went back and filled out application blanks, came back again and
filled out Security PSQ (Personnel Security Questionnaire) requirements, so
they had all the paperwork done. Bob Mainhart conducted my interview and
he had a little test. In the test, there were some questions on relativity, I
answered the questions and he asked me, "What do you know about
relativity?" I told him "I don't know anything about relativity. I had a couple
of classes and I understand what I was taught, but I don't really understand
anything beyond that." He said, "That's a good answer! We will teach you
what you need to know." So that started me off working with Sid Fernbach,
Frank Bjorklund, and Noah Sherman. When I got my clearance they called
me up and I started July 5th. They put 15 or 20 of us new people who would
be programming in the cooler and started us first to use the IBM 650's. The
cooler was in a building right next to the main entrance to the Lab. That
building is still there. They were teaching us how to use the computers the
Laboratory had. They gave us some instruction, books and cards with
instructions on them. They didn't talk much about the UNIVAC, but they did
talk about the (IBM) 650 and the (IBM) 701.
GAM: Actually, the 704 also by then, I think.
DP: No, I don't think the 704 was in yet. 704 was the first floating-point machine
wasn't it?
GAM: Yes.
DP: That wasn't in yet. We had CPCs. They didn't tell us anything about
programming on the CPCs either. Edna Viennop, Ralph Kierstead, and I
think one other person, came in to give us programming classes. This went on
for about three weeks and then they asked us to pick out something to do and
they would take us down and let us try it out on the machines. So I picked out
an equation for calculating square roots and did 20 square roots in the interval
from one to hundred and programmed that up. We went down to the 650 and
put it on the machine. After a minute or so, they said it looked like it was
caught in a loop. They said, "Let's let it run a little bit longer and pretty soon
the printer started to print. My first programming effort wasn't quite flawless.
It was flawless by the time I got it to the machine, but it wasn't flawless when
I started because about a half hour before we went to the machine I found a
mistake. I was frantically trying to punch a new IBM card, but didn't have the
time. I used some chips to plug some holes and punched some new holes in
the existing card and put it back in the deck. So my first effort worked on the
650.
Then after we got that minimal time of training, they took me up to the other
end of the Lab, the West side of the Lab, and I don't remember the building, I
think it was 161, the old hospital building. They put me down in the Solarium,
in the end of the middle wing with two or three other people. They assigned
me to work with Royal Daw, who was working on the UNIVAC. They gave
us equations for the POP [1] code and Royal started out. I watched what he did
for about three weeks and he basically did the programming with me looking
over his shoulder and then I took over the code and started to run it. Because
the UNIVAC was hard to get time on, they said "Why don't you try to do this
on the CPC? The CPC had 45 instructions on the plug board and 8 registers
and it took 1 second to read or punch a card. I looked at what we were trying
to do and there was just no way we were going to get it on that machine. The
650 used interpretive code. It was 2000 word memory and had an interpretive
routine that would allow you to use floating point numbers. But it was very
slow and used up most of the memory. So they said, "Why don't you try it on
the UNIVAC? It's much faster," but it only had a 1000 word memory. So
that's when I started working with Royal and he sort of laid it out and we
started writing the program. Then they decided we needed another routine to
set up the memory, so we put different parameters in so we could set up the
code and once we had that part of it working Royal was off working on
something else. Then they said, "We have this paper by Abramowitz. You'll
have to do some calculations to set up the parameters and then load
them to do the calculations. So I worked at it and started the
programming process and it turned out that code was bigger than the main
code. This had gone on for several months when Noah Sherman came around
and wondered where I was and asked if we had run anything yet. I said no, I
was still working on this. He came around a little while later and asked,
"What are you doing?" I said, "Well, I'm trying to do this Abramowitz paper,
it's more than I thought it was going to be". He asked for a copy of the code
so I printed one and I gave it to him. He came back a while later and said he
didn't realize it was going to be that big on the front end of this. We finally
got it going and it turned out it took much, much, more time than they had
anticipated. This was after about a year. We basically had it running, all the
bug shooting and it would run, but it took way too long. About that time the
704 came in and Isabelle Blandford was new at the Laboratory, so she picked
that up and reprogrammed it for the 704. Then I started to work with Mike
May's Hydro Group, working for you and Dana Warren. That was the
beginning of my Weapons career and I believe it was one year working on the
POP code and then we started working on the weapons. And,
as I remember, it was only a few months after that, or some short length of time,
when over at Berkeley they had discovered, they had the experimental evidence for the
existence of the POSITRON. Everybody was looking for it, and they had it.
We changed our (the Daw-Patterson) code and it was used to calibrate the
characteristics of the POSITRON. They were the first ones to do it. As for
me, it was weapons from then on.
GAM: All these years?
DP: Yes, well, one part of that we got into some questions about the difficulties
of underground testing. I got into that at the same time I was working on the
SPARTAN ABM system.
GAM: That was much later?
DP: That was in the mid 60s and I was working two full time jobs during that
part of it. Then we went back and looked at the machines. I remember, during
the moratorium, we got the bigger machines and that gave us the first chance
to put some tabular equations of state together.
GAM: Was this connected with the system that Dick White and Bill Lokke were
developing?
DP: Well, Von Holdt developed the first interpolation scheme. And we had a
whole tabular set that was developed for that particular code that we were
working on and then Lokke and White came up with another scheme and that
was the next one that got used.
GAM: We used the first one in the code you and I worked on. I'm referring to these
old programs mostly to fix things in terms of time because, obviously, these
things are much better developed now. This work puts the date as prior to
1958.
DP: Yes! Yes! Well, we still used that code after the moratorium.
GAM: Oh yes, I know. I spent a great deal of time trying to make it go faster and I
succeeded. And part of that contribution came from the fast table lookup used
for both equations of state and in extracting square roots. Turns out it is very
fast if you just know how to do things the right (binary) way. What I'm
interested in is your perspective; you've been in this program for a long time
and part of my idea on recording all this is to expose the differing ways, as
they are, of looking at computer use. A person who is a computer scientist is
going to look at a computer differently from one who is an applications
programmer; he is going to look at it differently from a person who is a code
developer. These are the kinds of remarks I'm looking for; especially from
you. We had Carte Blanche for many years at the Lab to get the fastest
machine we could find. There was no argument about not needing the high
speed.
DP: Biggest memory or the fastest cycle time.
GAM: Yes, and I think some of our work showed that speed alone wasn't the
answer. We had to have a lot of good stuff around it, like programs that
reduce big tables of numbers to pictures. Curve fits and things like that so you
didn't have to look at all the numbers, but you could see a picture or just a
small equation that described all those numbers.
DP: That's one of the things that I think was one of the real advantages of having
those kinds of machines that didn't run fast. It took us a while to get the
calculations and you had numbers printed out and instead of getting
somebody to plot a particular parameter out of it, you looked at the numbers.
While you were looking at them, you saw the other numbers around it
whether you liked it or not. When you started your plot you would see these
other numbers and that would trigger you to say "Well, why is this number
over here when that number is what it is, and so you got much better insight
into what you seeing. We were able to better understand the physics models
by using that more global approach. Now, what I see is the kids all plot a
graph on this and a graph on that and they haven't got any idea what's next to
it or if they are looking at some particular region in space. They look at that
one only and they don't see what's around it, they don't understand why it
got to be what it is. I think that's a real disadvantage for them. It's a
perception process, and now we've lost our microfiche capability. We are
now on an electronic mode of doing this and I don't believe it is anywhere
near as efficient as having two film readers comparing two problems together
side by side, look at the numbers, see what you are. Now, you have to go in
and do a lot of maneuvering with the computers to get a few things out to
look at and it doesn't tell you anything like what you could get the other way.
I think it's a real disadvantage.
GAM: Yes, In fairness, probably you can always write routines that will do what
your eyes did when you compared two fiche. But they're not written, and
they take a long time to develop, and they are very specialized.
DP: Well, yes, you can, but nobody does it.
GAM: That's true.
DP: There's not the time. One of my perceptions of the computers is when we
were in those days; we would get a lot more time to discuss the problems, a
problem, and a physics calculation. You could look at it, it would take you a
while to calculate it, you would go to consult with other people about what
you were seeing, they would tell you to go look at other things. It gave you a
chance to really think about what was happening and now as we've moved
on, things have been faster, more zones, better physics. And the more
detailed, with more physics it gets much harder to look at the details, because
the memories are so massive now you can overwhelm your calculations.
Things that you worried about before which actually taught you something
about what the physics and mathematics were doing. When you are
overwhelmed you just take it on faith the calculations are accurate and that's
a serious problem. How are you going to vet the code, how do you know it's
been checked out?
DP: Every time I had a serious problem to calculate I spent a significant fraction
of the total calculation time checking the code to make sure it was in what I
thought was the right domain. Having come through the code end of it, I got a
better feel for how you get into the code and what kinds of problems you run
to check it to make sure it's running right. Those kids that get a big code
handed to them and haven't come from the days when you could actually go
probe the person who wrote it and ask him what's there and get a straight
answer. And then figure out what kinds of problems to run, are really at a
disadvantage. Now, we just take the code's capabilities on faith, and that's
not going to be good enough and so we've got to regenerate that culture
where you don't trust the codes. The real answer for my success if I have any
one key to what has been my success over the years is that I didn't trust
anybody. I learned along time ago don't trust anybody, especially don't trust
yourself. I used that as a guide, plus the fact that we had a tremendous
infrastructure and the support was massive. You could certainly be a failure in
this process if you didn't take advantage of the, massive infrastructure that
helped to get what was needed for designing.
GAM: It was a team success.
DP: Absolutely, it was a team of people that didn't think of it as a team, but it
functioned that way. Everybody helped to get whatever was there.
GAM: So, apropos of your remark that we've got to get back to this older way of
doing things, are you doing anything in that respect now?
DP: I'm trying to make that point to the younger designers coming up. I think they
have a hard time understanding what I'm talking about. Today we don't have
enough people being trained. Right now I would characterize our training
process as failed. It's a failed process, we don't have enough people to back
up the rate at which we are going to lose the experience base and much of our
data is going to be lost because we don't have people trained to interpret it.
GAM: You mentioned losing the microfiche capability. Was there anything you think
that you might have done to delay that? We got rid of 6 FR-80's to save some
small amount of money I'm told. That's where we were making these fiche.
DP: Gosh, I don't know! If technology comes back and gives us something as
useful on CD ROM's or whatever it is, I would say we should go back and at
least have that kind of capability again so people can look at such
comparisons.
GAM: But you don't have any active effort to find that stuff now? You know, in the
technology?
DP: I haven't had any money to assign a group of people to go solve that problem.
What I do is raise it as an issue and ask people what is available on the
outside and they come back with various options. Much of what has
happened since say, 1980 on, is the result of the emergence of the PC's.
Everybody's PC setup is different from everyone else's so you don't sit down
at someone's terminal and just operate. The software is set up differently, so
each unit is a separate item on it's own. This non-standardizing leads to
people developing their own styles of approaching problem solving, which I
think then gets this over into an almost artistic sense, which I think is not
scientific.
GAM: You're right about that.
DP: We should have a (not that we want to limit ourselves,) uniformity so we can
converse as though the languages were the same, and be able to understand
how someone else is operating.
GAM: Have you participated in any of the procurements that we've gone through
over the years here?
DP: Not really, no. I've not been in a position where I wasn't making any input. I
think now with the ASCI push to do things in three dimensions that our
problem with validation is going to become a formal process. Before, it was
up to the designer to do his own validations. The designer is still going to
have to convince himself that the codes are reasonable and right. But, there
will have to be a more formal approach to these massive machines and
massive codes where you build in checking routines and checking processes
so that you can interrogate the machine while it's running to find out if it's
doing the right thing. I don't know how you're going to do that!
GAM: The new designers will need new ways to carry on. How about some of
the other questions in the memory jogger I sent to you?
DP: Let's see. Favorite computer languages? FORTRAN! Well, the machine
language wasn't that bad, except we had to do a lot of stuff over and over
again.
GAM: Well, not really.
DP: I mean everybody had to go redo everything. Remember the first thing on the
IBM machines was to write a loader, because if you couldn't write the loader
you shouldn't be on the machine. Then, after that, it was write the machine
language. But, then, FORTRAN makes it a lot easier to transfer between
machines and it has continued to evolve.
GAM: But FORTRAN brings with it the difficulty that you were mentioning in terms
of the other aspects. These new young guys, the new users of the machines,
have only a FORTRAN sense; they don't have this sense of presence that
comes from struggling with the entire code and understanding how it's put
together and understanding what each part does, and so forth. You were
mentioning that before. We didn't have fiche; we had to look at stuff on line.
FORTRAN has that problem. But, I must admit it's like a crossbow in the
programming world.
DP: Well, now they've got C, and C++, and object oriented programming, of
which I have no understanding at all. I do understand that it comes from a
very different slant, but I also know that there 's no free lunch. And if you're
going to program something, you can assume that somebody programmed it
someplace in some kind of a language. Now, you may assemble it in some
overall modular approach, but somebody did the heart and the guts in some
fashion. What I'm hearing, from some of the more successful people, not
those necessarily recognized in the broad sense, but the real ones that I think
are successful because they get something done, are saying the FORTRAN
90 is probably the way to program these things. You can build your module
so you can do things with C++ the object-oriented system making it easier to
handle and manage. I don't know, that sounds like it could be just another fad
that's going to run up against whatever its limitations are and you'll have to
go around them in some fashion.
GAM: There's high-speed FORTRAN, etc.
DP: Much of the problem is the volatility of the computers, you don't have time to
finish a code before the next machine is out. Even these, not PCs, but the
next level up, are so massive and so capable compared to what we had before.
They change out so fast, by the time you get something as complex as what
we're trying to do and even more complexity and more physics into it they
never have time to check it out. They're all doing the next machine and that's
what I think is one of the real disadvantages of the era we're in now. The
answer might be that once you can build things modularly you could take a lot
of people and give them all pieces and they'll assemble it all together and
hope that it works. Instead of having a mastermind that puts the whole thing
together and does it himself.
GAM: I'd like to disagree with you, just about these new machines. I do agree that
they have faster arithmetic units and they have bigger memories, but they do
not act like balanced things. You starve getting operands out of the memory
up to the arithmetic registers; you starve trying to move stuff from the
memory to I/O devices and vice-versa. They're not fast at all, the 7600, the
real CRAY s, will run circles around these other machines that don't have the
I/O and memory bandwidths to match that of the arithmetic processor. They
aren't as nicely balanced as the Cray machines.
DP: Yes, I'm very nervous about the future of where we are headed. Because, I
think, just as you say, the real functional things that you want to do to get our
questions answered are becoming so confused that we may not be able to
solve the problem or do it in any kind of reasonable time. The other thing is,
typically, and this is an observation I've made over the years, that the
Laboratory always cut a pretty sharp deal with the computer companies. So
the Computer Company, in order to get the job, always bid just a little lower
or a little bit shy of what we asked for. We wanted the operating system if
they had it or we wanted whatever we wanted and by the time they got
around to do it, it cost them more than what they had signed up to do. That
cost put them either behind the rest of the industry because they were
spending their time trying to get the machine delivered to us the way we
wanted it, or when it started to run it wasn't running quite right. Everybody
saw that, so they put more effort into it. So, because of the sharpness of the
deal we broke em, they went broke, periodically, or put them at a
disadvantage. That's just a general observation, not a rule, an observation that
I saw. I see that happening now where the big machine companies can go out
of business now before they've even sold one. They can have a good idea and
while they're out front making deals with a limited number of customers they
either fold up or they only make one machine. What is that for our future,
that's not a good trade?
GAM: Like it or not, it appears that the Laboratory is in the backwater on the
business of getting big machines, fast machines, new machines. The people
don't even come here anymore to tell us about them. Were that the case, you
could invite the people who are leftover from Seymour's last company to
come here and talk about the plan that he had developed, one nanosecond
cycle times, commodity parts, cheap.
DP: They're not even around.
GAM: They're around. They went over to NASA-Ames and talked. They've been to
various agencies in the government, you know the ones, and have talked, but
no one comes here. I think that since our STAR experience, it's been less and
less the case that we have followed the large machine path in computing. To a
large extent, that is your fault and I say 'you' as A Division. You represented
the reason for us pushing high-speed computation, for going for the big stuff,
and if you didn't do that it didn't happen. Computation Department by itself
doesn't justify high-speed machines.
DP: If you roll things back to the Star Wars days and the final days of the Cold
War, we were spending all of our effort trying to generate this new defense or
answer to a threat and we spent all our time working on those with reduced
budgets. The budgets have been coming down since the mid 70's. And have
been coming down very fast in all aspects. So even if we had asked for
something, we wouldn't have gotten it, because the focus was other places.
GAM: Well that's surely a sad state of affairs.
DP: Well, if I had asked for it at the low level I exist at, I would not have gotten it
through the Laboratory management because I could not have made a plea
strong enough to get it by.
GAM: I think we spent an enormous amount of influence and money on false alarms.
Had that been more accurately aimed, things could have been better. I could
cite you chapter and verse, but I don't see value of belaboring it.
DP: Yes, I go along with that. But we were diverted. The Division was diverted
off into other areas and the focus was on other things.
GAM: But, the more important thing now is that having, in a sense, recognized that
this diversion occurred, we can change course and more correctly aim at the
real targets that you think are important?
DP: Well, ASCI is going to be the major vehicle for that because everything will
be done in ASCI because ASCI has the money. If we can get our act together,
and say what it is we want them to do, then its going to be up to the designers
to say it. Everybody says it's for the designers and the designers had better
get their act together and tell everybody what it is they want. The designers
haven't done that yet.
GAM: The designers, you claim, are not a healthy mixture of old timers and fresh
new ones. Mostly they are fresh new ones who have no experience in this
trade.
DP: That's true. That's just right and, in many instances, it's computer scientists or
computer builders, code builders, who have not got the message from
designers of what they need. It's the designer's fault for not getting them the
proper information. Also, there are not very many designers left. Right now
we go through fifteen major reviews a year, which is once every three weeks.
We spend all of our time answering questions for the National Academy of
Science, the JASONS, and all these panels that come through, and we
don't have time to sit down and do our real job. That is what's wrong. These
panels have not been here forever, they just started up in the last two or three
years. Once we get a better understanding of what it is and get them satisfied
that we know where we are going, and that we are going in the right direction,
then we'll have more time to do these problems. First, we've got to get past
the initial surge of these and get things under control, and it's looking a lot
better in the last sixteen months.
GAM: Good!
DP: I remember one time, when we were running a problem, and you had said the
thing had been run seven times before on the 701 and each time it gave a
different answer. Because the Williams Tubes (Ed: memory) dropped bits and
then one day it stopped working. The machine was going wacko, the machine
wouldn't work, and wouldn't work, and nobody could figure out what it was.
Finally, somebody stumbled onto the idea that the thing went wacko every
time somebody opened the (building's outside) door because, then, the
Williams Tubes were exposed to the sunlight. It was later in
the year and the sun had dropped down and just at that time when the sun
shined on those tubes it upset the memory. So they put a black curtain on
there and the machine went back into business again.
GAM: The only thing that is incorrect about that story is, I tried fifteen times, not
seven. I saved one of the Williams Tubes as a souvenir. You know they were
breaking them when we decided to trade in the 701s, and they were going to
put core memory in there eventually because Prof. Cunningham, the
astronomer at Berkeley was being given that machine. They gave him a core
memory. But I saved the tube, and it's in our museum collection somewhere.
DP: In the Museum?
GAM: What's left of it, yes. This guy, who is President of the Northern California
Computer History Association, and Gordon Bell and his wife, Gwen,
although it's still just rumor, are planning to take our collection, and I
understand they may even have some permanent exhibits around the bay area.
DP: They ought to put the collection in the Smithsonian.
GAM: Well, we tried, we did offer some stuff to the Smithsonian, but their budget
wasn't very good either. For instance, we had serial one of so much stuff
including the IBM 1360, the Photostore, which was a revolutionary thing
when you think back on it. They couldn't accept it, they were happy with
pictures. That was the same for the STAR.
DP: Just take pictures of the machines and put them on the wall.
GAM: Absolutely, and they put them up on the wall. I arranged to get them to the
computer museum in Boston. They couldn't take the STAR either, there just
wasn't enough room. The STAR was a huge machine. It cost us quite a lot of
money.
DP: The 650s were a nice little machine.
GAM: They were very nice.
DP: Reliable, drum memory, they didn't go very fast, but they were reliable and
didn't take up much space.
GAM: I should arrange for you to read Joe Brady's interview; very nice. He tells a
story about how he was able to develop his orbit calculations, and how it was
the only thing available when the Sputnik went up, and it was used by NASA
to predict the full orbit since the Russians refused to provide such data about
Sputnik.
DP: He was the only one doing double-precision arithmetic in those days.
GAM: Yes, but it turned out you didn't need double precision for the in-close orbits.
So they were using a version of the code that Nevin Sherman had developed.
When Nevin moved it on to the LARC, he couldn't get it to agree with his
own estimates of the numbers, and he and Jack Noonan eventually traced that
difficulty to a logic error in the LARC's arithmetic logic controls.
DP: See? You can't trust anybody or anything!
DP: I meant to mention this earlier. When they were trying to measure the
efficiency of running the time sharing system, compared with running a batch
of the sort that we started with, Hans Bruijnes compared the numbers of cards
they had processed; 2000 cards in a day and so on. They came by in a few
days later and said; "Well, we processed 3500 today," and I grabbed them
and started complaining to them and said; "Yes, of course you did, because
we've got the same ones we had from every day. We just keep adding more to
them and none of them ever run. There's more than two decks in there; why
don't you report what was running on the machines? " You can get any kind
of answer to fit the current political situation. It all depends on how you want
to cook the books.
GAM: Yes, that's true. In interviewing him, I learned that Sid found him extremely
effective. Hans could get things done.
DP: Oh, he did, he got out the fact that what he was reporting was a measure of
using cards and he was telling us that he was running some cards through
there. So that was a way of showing that he did get things done. He did, and
he listened, he listened to what we were saying.
GAM: He was quite effective. When I interviewed him, he was also pretty generous
about acknowledging the other people who worked with him that really made
things fly. B Division, in particular, benefited greatly from how he was able to
extend the IBM monitor batch system. That's how they did most of their
calculations, whereas, I think that A Division followed the time-sharing path a
little more closely.
DP: Yes, we had a lot of people who set up and were doing development under
the time sharing system. A lot more development and a lot more individual
reporting was possible and with no real inconvenience to others.
GAM: Yes, you had Norbert Ludkey, Ed Goodwin, Bob Cralle, and people like that
who were helping with these generator codes.
DP: Yes, the generators and post processors. But the designers would all prefer to
set up their own individual problems. When we batched them, they
complained that we were controlling them. The time-sharing system helped to
set them free but, in the early days, there just weren't enough terminals to go
around. Just the same, those were fun days. I remember, one time, just trying
to set up a forty-five second generation. It took us a whole day to find a
Teletype that we could use because there were so few. We used to gather
around someone typing on one and make snide remarks until we got him off
of it. For forty-five seconds: it doesn't take long if you can just get at a
terminal. Now of course, everyone has his own workstation, but frankly, I'm
not sure we made any real gains.
GAM: It was an exciting period to go through, no question about that. It's been my
claim that a great deal of the things that were done, were done essentially as
firsts in the entire industry and they never got reported nor credited. The
official attitude around here was that a weapons lab had no business doing
system development. That's one of the things these interviews are intended to
fix.
DP: I was thinking about that the other day. When people write things up now, or
when they write a paper on something, that's proper. We never wrote.
Millions of quality papers were possible and we just rode right through them;
we didn't have time to write anything up, we just kept going. We didn't tell
anybody. There wasn't particularly anybody who cared a lot.
GAM: That's what we thought.
DP: But on the other hand, there were a lot of outstanding things done.
GAM: I guess we've about done. When I finish you will be able to enjoy reading
about the few I've been able to uncover. It'll be fun. Dan, thanks for taking
the time to chat about our early days.
[1] POP was a code to calculate the physical parameters
according to theory of elementary particles.