IEEE
You are not logged in, please sign in to edit > Log in / create account  

Oral-History:Wayne Cowell

From GHN

(Difference between revisions)
Jump to: navigation, search
(New page: == About Wayne Cowell == Wayne Cowell graduated from the University of Wisconsin in 1954 with a doctorate in mathematics. After a few years of teaching, a stint at Bell Labs introduced hi...)
 
m
Line 1: Line 1:
== About Wayne Cowell ==
+
== About Wayne Cowell ==
  
 
Wayne Cowell graduated from the University of Wisconsin in 1954 with a doctorate in mathematics. After a few years of teaching, a stint at Bell Labs introduced him to computer applications. In 1961, he joined Argonne National Laboratory, where his interest in applied mathematics and computing led him to participate in the creation of NATS, EISPACK, Linpack and Toolpack, all software packages written in FORTRAN that were geared to solving specific classes of equations.  
 
Wayne Cowell graduated from the University of Wisconsin in 1954 with a doctorate in mathematics. After a few years of teaching, a stint at Bell Labs introduced him to computer applications. In 1961, he joined Argonne National Laboratory, where his interest in applied mathematics and computing led him to participate in the creation of NATS, EISPACK, Linpack and Toolpack, all software packages written in FORTRAN that were geared to solving specific classes of equations.  
Line 5: Line 5:
 
The interview focuses on the NSF funding of these software packages. Cowell describes the inspiration for the NATS project, which was based on the theoretical work of James Wilkinson, and goes on to detail the work on Linpack and Toolpack. He also mentions a US-Soviet collaboration on the Toeplitz Project, which took place in the days of détente prior to the Soviet invasion of Afghanistan. He emphasizes the satisfaction he has gained from producing useful software, even if it has been at the expense of his more theoretical work.  
 
The interview focuses on the NSF funding of these software packages. Cowell describes the inspiration for the NATS project, which was based on the theoretical work of James Wilkinson, and goes on to detail the work on Linpack and Toolpack. He also mentions a US-Soviet collaboration on the Toeplitz Project, which took place in the days of détente prior to the Soviet invasion of Afghanistan. He emphasizes the satisfaction he has gained from producing useful software, even if it has been at the expense of his more theoretical work.  
  
== About the Interview ==
+
== About the Interview ==
  
 
WAYNE COWELL: An Interview Conducted by Andrew Goldstein, IEEE History Center, July 31, 1991  
 
WAYNE COWELL: An Interview Conducted by Andrew Goldstein, IEEE History Center, July 31, 1991  
Line 13: Line 13:
 
<br>  
 
<br>  
  
== Copyright Statement ==
+
== Copyright Statement ==
  
 
This manuscript is being made available for research purposes only. All literary rights in the manuscript, including the right to publish, are reserved to the IEEE History Center. No part of the manuscript may be quoted for publication without the written permission of the Director of IEEE History Center.  
 
This manuscript is being made available for research purposes only. All literary rights in the manuscript, including the right to publish, are reserved to the IEEE History Center. No part of the manuscript may be quoted for publication without the written permission of the Director of IEEE History Center.  
Line 25: Line 25:
 
<br>  
 
<br>  
  
== Interview ==
+
== Interview ==
  
 
INTERVIEW: Dr. Wayne Cowell<br>INTERVIEWER: Andy Goldstein<br>DATE: 31 July 1991<br>PLACE: Telephone interview  
 
INTERVIEW: Dr. Wayne Cowell<br>INTERVIEWER: Andy Goldstein<br>DATE: 31 July 1991<br>PLACE: Telephone interview  
  
=== NATS, ALGOL and James Wilkinson ===
+
=== NATS, ALGOL and James Wilkinson ===
  
 
'''Goldstein:'''  
 
'''Goldstein:'''  
Line 111: Line 111:
 
One could go on and on about Jim Wilkinson. He was one of those very outstanding people. His impact on us was of the kind that I mentioned. We knew Jim very well over the years. He visited Argonne very frequently. So he was aware of and indeed very supportive of the work that we were doing, translating these linear algebra algorithms to FORTRAN. He gave us a lot of good advice.  
 
One could go on and on about Jim Wilkinson. He was one of those very outstanding people. His impact on us was of the kind that I mentioned. We knew Jim very well over the years. He visited Argonne very frequently. So he was aware of and indeed very supportive of the work that we were doing, translating these linear algebra algorithms to FORTRAN. He gave us a lot of good advice.  
  
=== The Role of NSF in NATS ===
+
=== The Role of NSF in NATS ===
  
 
'''Goldstein:'''  
 
'''Goldstein:'''  
Line 155: Line 155:
 
No, just those two. For the universities it was strictly NSF.  
 
No, just those two. For the universities it was strictly NSF.  
  
=== Distributing the Programs ===
+
=== Distributing the Programs ===
  
 
'''Goldstein:'''  
 
'''Goldstein:'''  
Line 181: Line 181:
 
'''Cowell:'''  
 
'''Cowell:'''  
  
Not large necessarily. They were routines to carry out what are called Eigen [correct word?] analysis computations, determining the eigen values and eigen vectors of a matrix.  
+
Not large necessarily. They were routines to carry out what are called Eigen analysis computations, determining the eigen values and eigen vectors of a matrix.  
  
 
'''Goldstein:'''  
 
'''Goldstein:'''  
Line 223: Line 223:
 
No. The codes were good enough that occasionally we would get a call saying, “Gee, I found this sort of funny behavior,” or something, and we would look into it. But it turned out to be something we could almost do on the side, literally. It was not a major activity on our part.  
 
No. The codes were good enough that occasionally we would get a call saying, “Gee, I found this sort of funny behavior,” or something, and we would look into it. But it turned out to be something we could almost do on the side, literally. It was not a major activity on our part.  
  
=== Linpack ===
+
=== Linpack ===
  
 
'''Goldstein:'''  
 
'''Goldstein:'''  
Line 251: Line 251:
 
'''Goldstein:'''  
 
'''Goldstein:'''  
  
In what ways did this differ from EISPACK and the NAPS [NATS?] project?  
+
In what ways did this differ from EISPACK and the NATS project?  
  
 
'''Cowell:'''  
 
'''Cowell:'''  
Line 297: Line 297:
 
Yes.  
 
Yes.  
  
=== Toolpack and Other Packs ===
+
=== Toolpack and Other Packs ===
  
 
'''Goldstein:'''  
 
'''Goldstein:'''  
Line 365: Line 365:
 
Yes. I think the largest part of the budget was probably for staff effort. There was travel. There was some computer time. It was not really a major item. It was primarily people, travel and some computer time, with people being the major item.  
 
Yes. I think the largest part of the budget was probably for staff effort. There was travel. There was some computer time. It was not really a major item. It was primarily people, travel and some computer time, with people being the major item.  
  
=== Chronology of Packs ===
+
=== Chronology of Packs ===
  
 
'''Goldstein:'''  
 
'''Goldstein:'''  
Line 391: Line 391:
 
Not really. Except that we knew the people within the community who were doing these things. And our packs, I think it is fair to say, were models on which they based a lot of their thinking about how to conduct a project. But we were not part of the funding or part of the work.  
 
Not really. Except that we knew the people within the community who were doing these things. And our packs, I think it is fair to say, were models on which they based a lot of their thinking about how to conduct a project. But we were not part of the funding or part of the work.  
  
=== Continuing Relevance of FORTRAN ===
+
=== Continuing Relevance of FORTRAN ===
  
 
'''Goldstein:'''  
 
'''Goldstein:'''  
  
One thing I am curious about. This may be a modern perspective, and you should tell me if it is, but when you talk about implementing these routines in FORTRAN, I could see the sense of doing that then, but in current days FORTRAN [is not?] the ''lingua franca'' that it was then, is it?  
+
One thing I am curious about. This may be a modern perspective, and you should tell me if it is, but when you talk about implementing these routines in FORTRAN, I could see the sense of doing that then, but in current days FORTRAN is not the ''lingua franca'' that it was then, is it?  
  
 
'''Cowell:'''  
 
'''Cowell:'''  
Line 409: Line 409:
 
No, not really. There might have been a dispute as to whether code development was worthy activity for university people, for research oriented people.  
 
No, not really. There might have been a dispute as to whether code development was worthy activity for university people, for research oriented people.  
  
=== Recruiting Personnel ===
+
=== Recruiting Personnel ===
  
 
'''Goldstein:'''  
 
'''Goldstein:'''  
Line 427: Line 427:
 
Yes. It does for me. I think probably if I had spent more time with theoretical computer science and mathematics and published more papers and worked less on computational software that I probably would have had a longer publication list, but all in all when you look at what gives you satisfaction and look at the impact that it has had, I would not want to change what we did.  
 
Yes. It does for me. I think probably if I had spent more time with theoretical computer science and mathematics and published more papers and worked less on computational software that I probably would have had a longer publication list, but all in all when you look at what gives you satisfaction and look at the impact that it has had, I would not want to change what we did.  
  
=== Insights into Algorithms ===
+
=== Insights into Algorithms ===
  
 
'''Goldstein:'''  
 
'''Goldstein:'''  
Line 437: Line 437:
 
Good question. There was feedback to Wilkinson and to other developers. I guess I cannot just offhand cite a real outstanding example, because the algorithms were really quite well developed. But at a detailed level, we did discover things that were useful to Wilkinson as he carried out his analysis. So, yes, there was feedback. It was not perhaps one of the major aspects of the project.  
 
Good question. There was feedback to Wilkinson and to other developers. I guess I cannot just offhand cite a real outstanding example, because the algorithms were really quite well developed. But at a detailed level, we did discover things that were useful to Wilkinson as he carried out his analysis. So, yes, there was feedback. It was not perhaps one of the major aspects of the project.  
  
=== The Soviets and the Toeplitz Project ===
+
=== The Soviets and the Toeplitz Project ===
  
 
'''Cowell:'''  
 
'''Cowell:'''  
Line 525: Line 525:
 
John Pasta was a good man at the NSF, and Kent Curtis. These guys are dead now, but they were good men.  
 
John Pasta was a good man at the NSF, and Kent Curtis. These guys are dead now, but they were good men.  
  
=== Personnel Working on Pack Projects ===
+
=== Personnel Working on Pack Projects ===
  
 
'''Goldstein:'''  
 
'''Goldstein:'''  
Line 575: Line 575:
 
Pretty much the same. I think we sort of got this formula going and we pretty much stuck with it.  
 
Pretty much the same. I think we sort of got this formula going and we pretty much stuck with it.  
  
=== Use of Pack Algorithms ===
+
=== Use of Pack Algorithms ===
  
 
'''Goldstein:'''  
 
'''Goldstein:'''  
Line 609: Line 609:
 
Yes. Linpack is aimed at full matrices. EISPACK and Linpack are both aimed at full matrices as opposed to sparse matrices. The whole class of sparse matrices is another whole field, and EISPACK and Linpack do not address that. There are packs that address sparse problems. I think, in fact, there is one called Sparsepack. I do not know that the NSF had any role in funding it.  
 
Yes. Linpack is aimed at full matrices. EISPACK and Linpack are both aimed at full matrices as opposed to sparse matrices. The whole class of sparse matrices is another whole field, and EISPACK and Linpack do not address that. There are packs that address sparse problems. I think, in fact, there is one called Sparsepack. I do not know that the NSF had any role in funding it.  
  
=== Biographical Information ===
+
=== Biographical Information ===
  
 
'''Goldstein:'''  
 
'''Goldstein:'''  

Revision as of 18:35, 10 March 2009

Contents

About Wayne Cowell

Wayne Cowell graduated from the University of Wisconsin in 1954 with a doctorate in mathematics. After a few years of teaching, a stint at Bell Labs introduced him to computer applications. In 1961, he joined Argonne National Laboratory, where his interest in applied mathematics and computing led him to participate in the creation of NATS, EISPACK, Linpack and Toolpack, all software packages written in FORTRAN that were geared to solving specific classes of equations.

The interview focuses on the NSF funding of these software packages. Cowell describes the inspiration for the NATS project, which was based on the theoretical work of James Wilkinson, and goes on to detail the work on Linpack and Toolpack. He also mentions a US-Soviet collaboration on the Toeplitz Project, which took place in the days of détente prior to the Soviet invasion of Afghanistan. He emphasizes the satisfaction he has gained from producing useful software, even if it has been at the expense of his more theoretical work.

About the Interview

WAYNE COWELL: An Interview Conducted by Andrew Goldstein, IEEE History Center, July 31, 1991

Interview #119 for the IEEE History Center, The Institute of Electrical and Electronics Engineers, Inc. and Rutgers, The State University of New Jersey


Copyright Statement

This manuscript is being made available for research purposes only. All literary rights in the manuscript, including the right to publish, are reserved to the IEEE History Center. No part of the manuscript may be quoted for publication without the written permission of the Director of IEEE History Center.

Request for permission to quote for publication should be addressed to the IEEE History Center Oral History Program, Rutgers - the State University, 39 Union Street, New Brunswick, NJ 08901-8538 USA. It should include identification of the specific passages to be quoted, anticipated use of the passages, and identification of the user.

It is recommended that this oral history be cited as follows:

Wayne Cowell, an oral history conducted in 1991 by Andrew Goldstein, IEEE History Center, Rutgers University, New Brunswick, NJ, USA.


Interview

INTERVIEW: Dr. Wayne Cowell
INTERVIEWER: Andy Goldstein
DATE: 31 July 1991
PLACE: Telephone interview

NATS, ALGOL and James Wilkinson

Goldstein:

We are working on a book discussing the history of the National Science Foundation and its role in the development of computer science in America. One chapter is going to focus on research that was supported by the NSF, and I would like to talk to you about some of the research you did with NSF support, what its objectives were, what its consequences were, some of the impact it made, and how you and NSF interacted while you were doing the work.

Cowell:

Yes. I understood that that was your purpose.

Goldstein:

Looking over the list of the awards granted by the NSF, I have down that you received money from them between 1973 and 1978. That may not be complete, and I know it stops at 1980. There may be some beforehand. But could you tell me about what those grants supported?

Cowell:

Yes. I do not have this list in front of me, but let me just speak extemporaneously. The original grant, as I indicated in my electronic mail message, was given, I think, in 1971. This supported what we called the NATS project. I do not remember the official title we gave to it, but the purpose of this project was to take a collection of algorithms in numerical linear algebra, algorithms that had been developed and perfected in ALGOL by James Wilkinson and his colleagues in England. I have to go back historically a little bit and say that Wilkinson was one of those people who made a seminal impact on numerical mathematics. And he worked with the National Physical Laboratory and had, together with his colleagues, created a number of algorithms that were highly stable. But they were not really available to the computing public, except those who were using ALGOL. In the United States that was not very many.

Goldstein:

The algorithms were only implemented in ALGOL?

Cowell:

Yes. They were published in a book that Springer Verlag put out about 1970. What we proposed was to take certain of these algorithms and translate them to FORTRAN. And to certify them. That is, to test them thoroughly.

Goldstein:

Prove their correctness?

Cowell:

Proof of correctness has a logical meaning that we would not be willing to usurp. That is, to say that an algorithm is correct in a logical sense is really beyond our ability to assert except for a very, very limited class of almost toy algorithms. But what we wanted to do was to prove that they met very stringent tests. That is, we subjected them to extremely rigorous testing. Not only within our own group, but we had a collection of test sites, people in universities and other laboratories. And so we went through this process of converting these algorithms to a very robust FORTRAN code and then testing it. We also said we were going to distribute these codes in their FORTRAN version, and support them. That was an interesting assertion because there was a sense in which the grant did not really provide any long term support. But we certainly did produce these codes. And they have become a standard, over the years, those original codes. I can go on to later work, but the original codes in numerical linear algebra have become ubiquitous in scientific computing.

Goldstein:

Are the original codes still in FORTRAN?

Cowell:

Yes. They are certainly available in the form in which we did them, plus some later revisions. But when I say they are ubiquitous, I mean that they are to be found inside lots of scientific computing systems where people who are using these systems do not even really know they are there. I was talking with a colleague of mine this morning, Burt Garbow, whose name may come up here, because he was one of the people in our group in those days. Garbow has for the last year and a half or so been involved in working with some people on the advanced photon source project at Argonne. Partial support for this work was provided by DOE. These people are accelerator physicists, and he has been helping them build up a library. They have systems for designing magnets and for focusing magnets and all kinds of design systems they use in that branch of physics. Garbow recognized when he got into these systems that they have routines from those early days. And the physicists who are using these things do not need to know or do not know that those are the routines that we developed at that time, 20 years ago and more. That is just one example. I think I mentioned that the Department of Energy had identified some 22 all time great projects that they supported. I have their little report here. The EISPACK and LINPACK projects were identified as in that category, for instance. EISPACK and LINPACK were the names of the linear algebra software packages.

Goldstein:

You say that Wilkinson had done the seminal work. Did he develop new numerical methods?

Cowell:

Yes.

Goldstein:

And he then wrote them up as algorithms?

Cowell:

That is right.

Goldstein:

I was speaking with Dave Young a little while ago about some numerical methods, and he gave me several categories of methods. Where do the ones that Wilkinson developed fall? I mean there are his own SOR methods and then SSOR methods, and there is Chebyshev methods.

Cowell:

Right. These were routines in numerical linear algebra in matrix computations. They were particularly significant in Wilkinson’s work because they were very good examples of Wilkinson’s analysis. Wilkinson developed what was called backward error analysis.

Goldstein:

So it may be a whole other species of method.

Cowell:

Yes.

Goldstein:

Did you have more to say about that?

Cowell:

One could go on and on about Jim Wilkinson. He was one of those very outstanding people. His impact on us was of the kind that I mentioned. We knew Jim very well over the years. He visited Argonne very frequently. So he was aware of and indeed very supportive of the work that we were doing, translating these linear algebra algorithms to FORTRAN. He gave us a lot of good advice.

The Role of NSF in NATS

Goldstein:

Who else was involved in the NATS project? Were you the leader of the project? Did you have colleagues?

Cowell:

I was the leader, but, yes, there were colleagues involved. I am glad you reminded me of that. It was a collaborative project. There were NSF grants at Argonne and at the University of Texas. Actually, one of Dave Young’s students was in fact the Principal Investigator at Texas. That was Yasuhiko Ikebe. At Stanford University the Principal Investigator was Cleve Moler.

Goldstein:

Did you as a team get together and decide this would be a worthwhile project? Did Wilkinson ask you to do this, or did the NSF approach you?

Cowell:

No. The idea came out of discussions we had at Argonne with university people. We, within my group here at Argonne, had had a lot of interest in Wilkinson’s work and we had then and still have a lot of interest in numerical software. This idea emerged really as a collaborative idea. In fact, the idea of going to the NSF was at that time regarded as unusual. We are a national laboratory; our primary supporter is the Department of Energy. At that time it was the Atomic Energy Commission.

National laboratories did not go to the NSF. That was a new idea. I talked with several NSF people about this during the process of writing the proposal, and they were a little surprised that we would come to the NSF. I pointed out that we were working with two universities and it seemed appropriate for us to come to the NSF. There was a grant administrator at the NSF, named Don Aufenkamp who saw the vision that was emerging here, and thought this was a great idea, and he pushed it. But it took somebody at the NSF to say, “We are going to break some new ground here and give some money to a national laboratory.”

Goldstein:

Were there any desperate circumstances that forced you to approach the NSF? Were funds from AEC drying up?

Cowell:

They were not exactly drying up, but we were sort of going through a trough in our funding. But I think the primary reason really was that we had this university association. Those were days in which the universities were playing quite a significant role in the management of Argonne. The discussions we had about this project, in fact, were held at meetings of the Argonne Universities Association. And at one time the AUA was one of the management organizations of Argonne. We were actually funded in part to develop this proposal by this AUA. I was working part time as an assistant to the president of AUA. So it came out of that close association with the universities, and it seemed natural to go to the NSF. The universities were their principal constituency, of course. We had Department of Energy support also, but the DOE, in this report I mentioned, does not mention NSF. There is an interagency problem there you may have to deal with as you write this.

Goldstein:

Who was the principal funder, can you recall?

Cowell:

For us it was about half and half.

Goldstein:

And any other funding streams, say DARPA or something other?

Cowell:

No, just those two. For the universities it was strictly NSF.

Distributing the Programs

Goldstein:

I see. You say that it became ubiquitous. How did the distribution system work? Was it common knowledge that these programs were available?

Cowell:

Yes.

Goldstein:

And people approached you?

Cowell:

That is right. What happened were several things. First of all, there is a program distribution organization which today is called the National Energy Software Center, NESC. It had a different name in those days. I do not remember what it was. It was located here at Argonne, and any codes that were developed with DOE funding were turned over to them and they then acted as a distribution agency. We also made arrangements with the International Mathematical and Statistical Libraries in Houston, Texas. It was a company that was in this business. They knew that these codes were, of course, public domain, because they had been developed with public funds. But they said we think they are such good codes that we would like to distribute them for a handling fee. And they did. They, IMSL, distributed these codes for I think about a $75 fee, something like that, just enough to cover the cost of duplicating them, for nearly 20 years. Long enough so that the codes really became sort of embedded in software all over the world. In more recent years the codes became part of network libraries. You could get them by sending off a request to a network address.

Also IMSL, of course, took certain of these codes and used them in their library, which was perfectly okay. These were public domain and they could do anything they wanted to with them.

Goldstein:

So these, you say, were routines to handle large matrices?

Cowell:

Not large necessarily. They were routines to carry out what are called Eigen analysis computations, determining the eigen values and eigen vectors of a matrix.

Goldstein:

I assume to solve partial differential equations? Or a large system of linear equations?

Cowell:

Certainly that would be one of the applications.

Goldstein:

Were they general purpose?

Cowell:

This is basic numerical software. That is eigen analysis computations are basic in the same sense that finding square root is.

Goldstein:

I was just wondering whether when you fashioned them if you geared them or engineered them for any particular application?

Cowell:

No, we did not. We intentionally made them general.

Goldstein:

Were most of your customers universities or did industry pick it up?

Cowell:

Yes to all of the above. As it turned out, we did not act as the distributor. As I said, the software center and IMSL distributed these things. And they would send us lists, IMSL would send us lists of people that they had sent them to, and it just included every imaginable kind of institution.

Goldstein:

Was there much work in upkeep? You said something about maintaining these.

Cowell:

No. The codes were good enough that occasionally we would get a call saying, “Gee, I found this sort of funny behavior,” or something, and we would look into it. But it turned out to be something we could almost do on the side, literally. It was not a major activity on our part.

Linpack

Goldstein:

Was this project the forerunner to the Linpack?

Cowell:

It was.

Goldstein:

How did Linpack develop?

Cowell:

Linpack was another collection of Wilkinson routines actually. It was patterned after NATS in that it involved many of the same people. There were some new people involved. And I think the grant was to Argonne and the University of Maryland. By that time we had decided to ask for small grants, for a field test sits for this acceptance testing. With the NATS project we just got volunteers for that although we had a little money to pay for project meetings and so forth.

Goldstein:

By acceptance testing you mean?

Cowell:

The field testing. We had test sites around. We did our field testing of the software at a number of universities and laboratories. They had small grants for that. The principal grants for the actual development were at Argonne and, I think, the University of Maryland (that is where Pete Stewart was), and at the University of New Mexico, because Moler by then had moved from Stanford to New Mexico.

Goldstein:

In what ways did this differ from EISPACK and the NATS project?

Cowell:

It was very similar. That is, the conduct of the project and the outcome were very similar. In fact, the algorithms that we started with were also from Wilkinson.

Goldstein:

Did they solve other systems?

Cowell:

Yes. They solved linear systems, rather than doing eigen analysis. And these were not sparse, you understand. These were full systems.

Goldstein:

And in that way it differs from the work that say Young or Golub were doing?

Cowell:

Yes, or Ian Duffor. There were manuals that were published. EISPACK was documented in two volumes from Springer Verlag, in their “Lecture Notes in Computer Science” series.

Goldstein:

Was the publication funded by the NSF or by the publisher?

Cowell:

The publisher. We just turned over a camera ready manuscript to him. Linpack was published as the Linpack Users Guide by SIAM in 1979. I understand this turned out to be a bestseller among the SIAM publications. SIAM is the Society for Industrial and Applied Mathematics.

Goldstein:

And you had many repeat customers, people who had been using EISPACK, or was that addressing a different audience?

Cowell:

No, it was addressing the same audience; it really just added to the repertoire of routines that had been translated from ALGOL and thoroughly tested and so forth. EISPACK and Linpack, although they came out of different projects, were really very closely related. Today people tend to say EISPACK and Linpack together, as if they really had the same origin. And in a sense they did, but from the NSF’s standpoint they were different projects. By the time of Linpack, we had pretty much abandoned the naming of software with all capital letters.

Goldstein:

I want to make sure that I have for once the definitive chronology of the pack projects.

Cowell:

Yes.

Toolpack and Other Packs

Goldstein:

What else is there?

Cowell:

Minpack and in more recent years LApack.

The latter had NSF funding. I had gone on to Toolpack by then, so Jack Dongarra was the project leader for LApack. Toolpack is not a project specifically oriented toward numerical linear algebra. Were you focusing on numerical linear algebra?

Goldstein:

For the purposes of this interview, yes, although the chapter on research actually discusses a number of different topics such as computer theory, graphics, interface, and coding theory. Numerical analysis is one whole section.

Cowell:

I do not know exactly how to categorize it, but there was NSF funding for the Toolpack project. It must have been 1979 or 1980 that we got the original grant for that. We collaborated with the University of Colorado and the University of Arizona.

Goldstein:

If that was not in numerical analysis, did you have the expertise to work on that, or did you simply organize it?

Cowell:

We sort of reorganized it. We brought in new people. It was not specifically numerical analysis. It required a different kind of talent. It was, however, aimed at the problem of developing high quality scientific software. We were producing a collection of FORTRAN tools to aid the programmers who were developing this software. Tools that would analyze FORTRAN programs and detect semantic errors and reformat them and do lots of things that we had done by hand in the EISPACK and Linpack projects. And we felt that a collection of software tools would be a great aid for this kind of program development. So we did get support from the NSF and the DOE. And by that time, the idea of working with the DOE was established. And so the DOE and the NSF actually explicitly agreed. The program managers got together and said we will give joint support to this Toolpack project.

Goldstein:

At this point had you started getting some input from the user community about what these packs should include and how they should work?

Cowell:

Yes. In fact, the idea of Toolpack came out of the user community. There was a professor named Welb Miller from the University of California at Santa Barbara who got up at a meeting in Pasadena and he said, “We need another pack.” He said, “We need a Toolpack. And the approach to developing Toolpack ought to be patterned after the EISPACK and Linpack projects.”

Goldstein:

That is why you were brought in?

Cowell:

Yes.

Goldstein:

In that case, were you solicited by the NSF at that point too?

Cowell:

We were solicited by Welb Miller, who was in close contact with the NSF, and we approached the NSF.

Goldstein:

How much interaction was there with you and the NSF? Did they provide any input into the nature of the pack or what its capabilities should be?

Cowell:

Not really at a technical level. When we approached them we did so with preliminary proposals. Let me just take an example. I remember going to Washington with Pete Stewart from the University of Maryland and sitting down with a program manager at the NSF, and we said, “This is what we want to do, this Linpack idea is what we want to do. It is patterned after EISPACK. And we have these ideas. And we will write up a prospectus for you, for your comment.” So we went back, wrote a prospectus, and sent it off to him. And he said, “This is a good idea. Go ahead and send us a proposal.” So we did not just drop a proposal over the transom so to speak. We did interact with them. They did not give us guidance at the level of, “Gee, we think this routine ought to be in the package” or “We think you ought to do that particular routine.” The NSF people knew that the people who were coming to them knew more about the field than they did. But what we had to do was demonstrate that these people were not only experts in the field but they wanted to do this particular project; they wanted to use their expertise in this particular way. And it is not necessarily true that university professors always want to develop software. You had to sell the idea that indeed these people with well established reputations at universities and national laboratories are going to work on this, and they were going to produce this kind of result, and they believed that it was a good contribution to science.

Goldstein:

Can you recall any of the items in your budget that you submitted to the NSF? Were they funding computer time or staff time or some other?

Cowell:

Yes. I think the largest part of the budget was probably for staff effort. There was travel. There was some computer time. It was not really a major item. It was primarily people, travel and some computer time, with people being the major item.

Chronology of Packs

Goldstein:

I interrupted your flow. You were describing some of the other packs and I would like it if I could get a chronology so I knew which came when.

Cowell:

The principal packs, as I said, were EISPACK, Funpack, Linpack, Minpack, and Toolpack. Minpack is a collection of minimization routines. Funpack is a collection of special function routines. I think that is probably the right order. There were a lot of packs, Andy, but these were the ones that we were principally involved in.

Goldstein:

Did other people take up the standard in other areas?

Cowell:

You might have heard of Fishpack or Elpack.

Goldstein:

And was there any coordination?

Cowell:

Not really. Except that we knew the people within the community who were doing these things. And our packs, I think it is fair to say, were models on which they based a lot of their thinking about how to conduct a project. But we were not part of the funding or part of the work.

Continuing Relevance of FORTRAN

Goldstein:

One thing I am curious about. This may be a modern perspective, and you should tell me if it is, but when you talk about implementing these routines in FORTRAN, I could see the sense of doing that then, but in current days FORTRAN is not the lingua franca that it was then, is it?

Cowell:

That is an interesting question. The computer scientists would tell you that it is not. Go out into the scientific community and talk to the people who are doing chemistry and physics and engineering and you will find that FORTRAN is still the language of choice.

Goldstein:

I see. So at the time there was certainly no dispute that that a useful —

Cowell:

No, not really. There might have been a dispute as to whether code development was worthy activity for university people, for research oriented people.

Recruiting Personnel

Goldstein:

That is interesting. Did you have trouble recruiting people to work on this?

Cowell:

No, not really. Because it was a small group anyway. There was not really that much recruiting. It was more an agreement among us that we needed to do this. There was a small group here that was of like mind, and so we did not have to go out and convince a lot of other people, because we already had formed the group before we started the project.

Goldstein:

And seeing your work recognized as being one of the most significant, does that vindicate the decision that it was a useful way to spend your time?

Cowell:

Yes. It does for me. I think probably if I had spent more time with theoretical computer science and mathematics and published more papers and worked less on computational software that I probably would have had a longer publication list, but all in all when you look at what gives you satisfaction and look at the impact that it has had, I would not want to change what we did.

Insights into Algorithms

Goldstein:

In your work on this, did you achieve any insights into the algorithms or numerical analysis simply by trying to implement the algorithms?

Cowell:

Good question. There was feedback to Wilkinson and to other developers. I guess I cannot just offhand cite a real outstanding example, because the algorithms were really quite well developed. But at a detailed level, we did discover things that were useful to Wilkinson as he carried out his analysis. So, yes, there was feedback. It was not perhaps one of the major aspects of the project.

The Soviets and the Toeplitz Project

Cowell:

Is there anything in your list of grants there that relates to the collaborative work with the Soviets?

Goldstein:

Actually I have seen a U.S.-Soviet collaboration, but I do not know if it was on this project. Tell me about it, please.

Cowell:

Okay. I mentioned Don Aufenkamp earlier. He was the guy at the NSF that saw that we were onto something that he liked when we came in with the NATS project, and he encouraged us in various ways. He sort of moved on though to another job at the NSF. There had been a treaty signed by President of the United States Richard Nixon and Premier of the Soviet Union Lenoid Breshnev in1972 that called for a scientific and cultural exchange between the United States and the Soviet Union. And it had many, many different aspects and layers. It was quite a bureaucratic thing. The money came from the State Department, though the National Science Foundation administered it. Aufenkamp had a job administering part of this U.S.-Soviet interchange. So he came to us and he said, “Hey, I think something along the lines of this numerical software development, this high quality software development, would make a good Soviet exchange project.” And there was a group at Moscow State University that had an interest in software. And so he sort of put us together, and there were over a period of several years exchange visits.

Soviets came to see us; we went to Moscow a couple times. And the result of that was a package called Toeplitz. It did not have a pack name. Toeplitz is named after a person, actually. It is a collection of linear algebra routines that solve a particular class of linear algebra systems called Toeplitz systems. And these are important in signal reduction and various things. The result was a collection of software. We were going to pattern this joint project after the packs and we were going to have Soviet test sites and U.S. test sites. We did not find that was all that easy in the Soviet Union. We found that the people at Moscow State University were fun to work with, but the system was ponderous and the idea of just calling up somebody and saying, “Hey, will you test some software,” was almost out of the question. So we had good interactions with this group at Moscow State University, but we did not really do a Soviet-style, full-scale pack project.

Goldstein:

You intended to use it both in the Soviet Union and the U.S.?

Cowell:

Yes. We were going to publish it in both countries, and it was in FORTRAN, and their FORTRAN is the same as ours, so they might have had Russian comments in the code, but they did not even want that. They wanted English comments. Anyway, before we really finished this, the Soviets invaded Afghanistan and President Carter turned the whole program off. Well, in a sense we did finish it, because Toeplitz does exist, it has been documented, and it has been distributed. And the user guide, which I have in front of me here, has eight names on it of whom four are Russian and four are Americans.

Goldstein:

When did the Toeplitz project begin? You say it was mandated by a 1972 treaty?

Cowell:

Right. That was when the treaty was signed. It was about the mid-1970s that the project was finished because I remember a visit to Moscow in 1978, and I see that the Toeplitz Users Guide is dated October 1983. We finished it ourselves.

Goldstein:

The U.S. contributors?

Cowell:

Right, and we made it available in the U.S. And we never picked it up again.

Goldstein:

How was the project born? You say the NSF got some money from the State Department to sponsor this scientific exchange?

Cowell:

Yes.

Goldstein:

Who decided on this project?

Cowell:

Aufenkamp. We submitted proposals to him. The NSF did the grants, and the State Department used them to actually make the selection.

Goldstein:

Was there a large pool of possible grant proposals, and then Aufenenkamp decided which ones the Soviets would collaborate on?

Cowell:

I do not really know. Probably.

Goldstein:

But you did not submit this as a joint U.S.-U.S.S.R. proposal?

Cowell:

We submitted a proposal for joint work with the U.S.S.R. As I recall, the process was this. One of these Soviets was spending a year in the United States, I think at Penn State, and Aufenkamp called us and said, “Would you like to come over and talk to this guy? Let’s go to Penn State and talk to him about a joint project.” So we did, and we wrote a proposal based on that.

Goldstein:

That is interesting. In that case the NSF seems to have been fairly proactive in bringing you together with him to hammer out a proposal.

Cowell:

Right. Actually, Aufenkamp did not fit the usual NSF mold, I think. He did not wait around for somebody to have a bright idea. He sort of recognized people that were liable to have bright ideas and encouraged them.

Goldstein:

Are there any other examples of that?

Cowell:

John Pasta was a good man at the NSF, and Kent Curtis. These guys are dead now, but they were good men.

Personnel Working on Pack Projects

Goldstein:

What happened in the 1980s?

Cowell:

After the Toolpack project I myself did not make any more proposals to the NSF. I got the support that I wanted from the DOE here at Argonne, the research I wanted to do on software tools, and that is where my research led. However, you must have some proposals there, you must have some grants to a guy named Jack Dongarra.

Goldstein:

Yes.

Cowell:

Jack had been a part of the Linpack project. He had been sort of a junior guy on the Linpack project, but he really showed his ability and he emerged as a real leader and went on in the 1980s to lead the LApack projects.

Goldstein:

You said before that it was not really an issue of persuading people to work on this. There were a small number of people. How many people?

Cowell:

When we were doing NATS and we had a project meeting, I suppose there were half a dozen people there.

Goldstein:

Did people from the universities get graduate students involved?

Cowell:

Yes. I would say any of these projects involved at any institution would have involved just two or three people, a professor and a couple of graduate students. And here at Argonne maybe there would be three senior staff people and several more junior people.

Goldstein:

So even Linpack was limited to about a dozen people?

Cowell:

Yes. Even if you include test site representatives. I think for EISPACK and Linpack we had as many as a couple dozen test sites. And if we would bring all them together, then we would have maybe 25 or 30 people in the room. Most of these people were doing very limited things for the project. They were not receiving any major funding.

Goldstein:

Was the feedback any different on Linpack?

Cowell:

Pretty much the same. I think we sort of got this formula going and we pretty much stuck with it.

Use of Pack Algorithms

Goldstein:

When I am writing about this I will want to describe the nature of the work, like I said at the beginning of this conversation, and then also some of its impact. Is there anything that you would like to comment about either of those? Anything you feel I should include?

Cowell:

I do not know that I need to add to what I already have said. I have already talked about its impact, the feeling I had is that this is going out to so many different places and been used by so many different people; that is where the satisfaction comes from. You go to a meeting and you hear somebody say, “Hey, I saw an EISPACK routine the other day being used in such and such a way,” and I do not always remember all these ways in which they say had been used, but it is very satisfying.

Goldstein:

That is interesting. I am not sure that I have got this. Were all the routines issued in a single package, or are the routines released in a single package, but then people pick out just the ones they need from libraries?

Cowell:

Yes. Most of them are used as a small subset. That is, you have a particular eigen problem to solve. You will generally use two or three or four of these sort of strung together in a certain way. And that is the way you will solve that probably. If you have a different eigen problem you will use another subset.

Goldstein:

Are the submodules in either EISPACK or Linpack named? Do they have identifiers?

Cowell:

Certainly all of the routines are named, and there is a naming convention that we used especially for Linpack. If you know the naming convention, it will tell you whether it is a double precision or a single precision routine and basically what matrix problem it solves. But you have to know how to decode the names.

Goldstein:

One thing it might be useful to know is there any major problems that are not included, such as commonly occurring matrix systems that cannot be handled by Linpack and then for what reasons?

Cowell:

Yes. Linpack is aimed at full matrices. EISPACK and Linpack are both aimed at full matrices as opposed to sparse matrices. The whole class of sparse matrices is another whole field, and EISPACK and Linpack do not address that. There are packs that address sparse problems. I think, in fact, there is one called Sparsepack. I do not know that the NSF had any role in funding it.

Biographical Information

Goldstein:

Let me just ask you some personal information.

Cowell:

Sure.

Goldstein:

When did you get your doctorate, and in what field?

Cowell:

The University of Wisconsin 1954, Mathematics.

Goldstein:

And how did you get involved with computer software?

Cowell:

Well, I taught mathematics for a few years and then I went off to Bell Labs at Murray Hill, NJ and got my introduction to computer applications and got quite interested in computing and came to Argonne a couple years later, 1961. By that time I was interested in applied mathematics and computing. I have been here ever since.

Goldstein:

Goodbye.

Cowell:

Bye bye.