🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: sci.math.num-analysis
7 messages
7 total messages Started by Ajay Shah Thu, 27 Aug 1992 07:12
The importance of high-performance computing
#352
Author: Ajay Shah
Date: Thu, 27 Aug 1992 07:12
26 lines
1701 bytes
In the Great Lwars, one point which commonly comes up is that fortran
is conceptually lowbrow and hence well-suited for the generation of
good code, esp. to exploit various parallel architectures.

I suspect a modest correction to this viewpoint may be in order in
considering the implications of this fact.  I've spent many years in
scientific computation and generally observed a lot of people at work
firsthand.  It may be a pernicious dataset as I see it, but I know
exactly one person who uses parallel hardware.  Every single person I
know who does scientific computation uses single-CPUs.

Parallel hardware is obviously a way to get revolutionary gains in
compute power, but Bill Joy's law suggests that single CPUs will give
tremendous gains without paying any software irritations (they
certainly have done great in the last five years).

If this is indeed the case; that most people use workstation-type
computers, then the argument changes quite a bit.  There may be room
for a language with simple semantics like fortran, but only for those
5% of users who want to use parallel hardware.  I suspect most
scientific computation out there does not know or care about parallel
hardware.

        -ans.
-- 
Ajay Shah, (213)749-8133, ajayshah@usc.edu
Re: The importance of high-performance computing
#355
Author: "Steve" Stevenson
Date: Thu, 27 Aug 1992 12:46
22 lines
1388 bytes
ajayshah@almaak.usc.edu (Ajay Shah) writes:

>Parallel hardware is obviously a way to get revolutionary gains in
>compute power, but Bill Joy's law suggests that single CPUs will give
>tremendous gains without paying any software irritations (they
>certainly have done great in the last five years).

>If this is indeed the case; that most people use workstation-type
>computers, then the argument changes quite a bit.  There may be room
>for a language with simple semantics like fortran, but only for those
>5% of users who want to use parallel hardware.  I suspect most
>scientific computation out there does not know or care about parallel
>hardware.

>        -ans.
>-- 
>Ajay Shah, (213)749-8133, ajayshah@usc.edu
-- 
===============================================================================
Steve (really "D. E.") Stevenson           steve@hubcap.clemson.edu
Department of Computer Science,            (803)656-5880.mabell
Clemson University, Clemson, SC 29634-1906
Re: The importance of high-performance computing
#357
Author: Marc Roussel
Date: Thu, 27 Aug 1992 15:27
69 lines
4357 bytes
In article <l9p02vINNorv@almaak.usc.edu> ajayshah@almaak.usc.edu (Ajay Shah)
writes:
>Parallel hardware is obviously a way to get revolutionary gains in
>compute power, but Bill Joy's law suggests that single CPUs will give
>tremendous gains without paying any software irritations (they
>certainly have done great in the last five years).

     I have no idea what Joy's law might be, but if you mean that you
expect the price/performance ratio for single CPUs to keep going down
the way it has been doing the last little while, I believe you are
mistaken.  There is only so much this ratio can improve before
various bits of physics start to interfere.  It's hard to say how close
to those limits we are, but it strikes me that when we see things like
special cooling systems being considered for top-of-the-line
microcomputers, we must be getting close to the point where increased
performance will cost more, even if performance keeps increasing.

>If this is indeed the case; that most people use workstation-type
>computers, then the argument changes quite a bit.  There may be room
>for a language with simple semantics like fortran, but only for those
>5% of users who want to use parallel hardware.  I suspect most
>scientific computation out there does not know or care about parallel
>hardware.

If my previous argument is correct, then your argument is irrelevant;
parallel hardware is simply the next logical step in improving
price/performance ratio.  You may be at least partly right however:
A lot of tasks are simply not very parallelizable so that, even running
on multi-CPU machines, they will hog one processor and leave the others
alone.  There are nevertheless other factors which in my opinion make
Fortran a logical choice for much scientific computing.

	  1) Fortran has an exceedingly shallow learning curve.
	     I'm not saying that you can learn to program well in
	     Fortran faster than you can learn to program well in any
	     other language, but you can write your first useful program
	     faster in Fortran than in most other languages.  Scientists
	     don't write programs as ends in themselves; it is not just
	     that they THINK they have better things to do with their
	     time, they actually DO have better things to do with their
	     time.  This occasionally causes a good deal of trouble, but
	     it is a sociological factor which can't be overlooked and
	     which accounts for a good deal of Fortran's popularity.

          2) Part of the reason that Fortran is so easy to learn is that
	     it provides fairly direct support for the things which a
	     broad class of scientists do routinely.  No other commonly
	     available language handles complex arithmetic right out of
	     the box.  C++ doesn't count because it forces us to deal
	     with C's awful syntactic conventions.  (To quote Carlin:
	     "These are my rules, I make them up!"  More seriously, C
	     and C++ violate criterion (1).  For example, I learned Fortran
	     by writing a library which performs certain quantum chemical
	     calculations.  As far as I know, this library is still in use.
	     I doubt that I could have undertaken such a project in C and
	     completed it in the alloted time without at least some prior
	     experience with the language.)

          3) You can convert Fortran code to C code, but if you want to
	     have any chance of maintaining it, you had better hold on to
	     the Fortran code.  The old libraries and programs are still
	     useful and we can't just throw them away.

     The old "Fortran optimizes better" argument is weak (as Ajay points
out), but it's hardly the only argument around for the continued existence
of the language.

				Marc R. Roussel
                                mroussel@alchemy.chem.utoronto.ca
Re: The importance of high-performance computing
#359
Author: John Prentice
Date: Thu, 27 Aug 1992 16:34
86 lines
5462 bytes
In article <l9p02vINNorv@almaak.usc.edu> ajayshah@almaak.usc.edu (Ajay Shah) writes:
>In the Great Lwars, one point which commonly comes up is that fortran
>is conceptually lowbrow and hence well-suited for the generation of
>good code, esp. to exploit various parallel architectures.
>
>  [some stuff deleted]
>
>Parallel hardware is obviously a way to get revolutionary gains in
>compute power, but Bill Joy's law suggests that single CPUs will give
>tremendous gains without paying any software irritations (they
>certainly have done great in the last five years).
>
>If this is indeed the case; that most people use workstation-type
>computers, then the argument changes quite a bit.  There may be room
>for a language with simple semantics like fortran, but only for those
>5% of users who want to use parallel hardware.  I suspect most
>scientific computation out there does not know or care about parallel
>hardware.
>

Let me make two comments.  One is overall agreement with your statement
as regards the likely users of massively parallel supercomputers.
The general comment about supercomputing is that 10% of the computing
community uses 90% of the supercomputing power.  I think that is probably
a correct statement, it certainly is within the DoD and DoE laboratories
I have been affiliated with over the years.  The projections for the use
of high performance massively parallel supercomputers preserve that 
user mixture, meaning that only a small minority of people doing
scientific computing will use highly parallel computers.  The outlook
for small parallelism is quite different however.  Consider the
Sparc 10, a workstation by any measure.  It has 4 CPU's in it and is
meant to exploit parallelism on a small scale.  Just as there has not
been a single CPU supercomputer built in years, I stronly suspect that
there will be fewer and fewer single processor workstations in the future.
It is less clear whether the multiprocessors in your workstation will be
something only the operating system will know about or whether they will
be available to the user.  An side comment is that most workstations sit
idle most of the time, which has generated considerable interest in
distributing parallel computing where you use network linked workstations
as the computing nodes.  

My second comment takes issue with your characterization of Fortran as
the language of choice for parallel computing.  Let us assume you meant
Fortran 90, since there is nothing about Fortran 77 that would make it
particularly good for this purpose (the same being true of C and other
procedural languages out there).  Fortran 90 does have array syntax,
which makes data parallelism easier to perform.  However, the trend is
away from data parallelism and toward control parallelism (though many
would argue this.  However, even the guru's of data parallelism, 
Thinking Machines Corporation, are now producing a system which is
at least partly MIMD).  I guess I don't see anything about Fortran 90
which makes control parallelism any easier.  I would argue in fact
that none of the current generation of procedural languages address
parallelism at all well.  Some of the OOPS concepts make it easier,
but only in allowing one to hide the machine architecture from the user.
Certainly they do little to enhance efficiency and the usual reason you
run on a supercomputer is because you are sweating bricks about
speed (otherwise, why not use a workstation).  Functional languages
actually strike me as the ones currently best suited to expressing
parallelism (data or control).  

Having said all that, there is hardly a bit of difference in the
functionality of Fortran 90 and any of the other procedural languages.
Fortran 90 has structures, pointers, recursion, all the things that
people have been trashing on it for not having all these years.  So
I am not sure I see where you are going with your comment, since there
is little about it that I would call "conceptually lowbrow".  That
it is not an OOPS language or a functional language hardly makes it
conceptually lowbrow.  In addition, each of these concepts, OOPS,
procedural, and functional, have their pros and cons.  If you want
to compete in the 90's world of computing, you are going to have to
use a variety of languages, exploting the strength of each when the
problem demands it.

I would make a final comment about Fortran also.  There are now at
least two variants of Fortran 90 being developed which are attempting
to address the issue of parallelism.  One is Fortran D by Ken Kennedy
and company, the other is High Performance Fortran.  I don't think I
would call either of these "lowbrow" languages.

John
-- 
Dr. John K. Prentice                      
Partner, Quetzal Computational Associates    
3200 Carlisle N.E., Albuquerque, NM   87110-1664; 505-889-4543
john@aquarius.unm.edu -or- jkprent@cs.sandia.gov -or- prentice@rufous.cs.unm.edu
Re: The importance of high-performance computing
#365
Author: Ronald Schoenberg
Date: Fri, 28 Aug 1992 00:49
41 lines
3037 bytes
In article <1992Aug27.152740.29641@alchemy.chem.utoronto.ca> mroussel@alchemy.chem.utoronto.ca (Marc Roussel) writes:
>In article <l9p02vINNorv@almaak.usc.edu> ajayshah@almaak.usc.edu (Ajay Shah)
>writes:
[....]
>	     with C's awful syntactic conventions.  (To quote Carlin:
>	     "These are my rules, I make them up!"  More seriously, C
>	     and C++ violate criterion (1).  For example, I learned Fortran
>	     by writing a library which performs certain quantum chemical
>	     calculations.  As far as I know, this library is still in use.
>	     I doubt that I could have undertaken such a project in C and
>	     completed it in the alloted time without at least some prior
>	     experience with the language.)
>
>          3) You can convert Fortran code to C code, but if you want to
>	     have any chance of maintaining it, you had better hold on to
>	     the Fortran code.  The old libraries and programs are still
>	     useful and we can't just throw them away.
>

It is a mistake to compare C++ to C.  With a set of good matrix class
libraries, and some experience with array languages, you can begin
programming immediately in C++, not to mention with many times the
productivity of FORTRAN.  C++ is all about interface.  Let a
specialist design the classes (i.e., the interface) and the
scientist/engineer can go from there.  And I don't throw away my
Fortran - I write C++ wrappers for them.  That way I can merrily
factorize and decompose without having to keep track of all those
Fortran subroutine arguments (because the C++ objects take care of all
that), and I don't have to mess with those cryptic function names
(because I can overload function names and the C++ object knows what
to do).  And if I do want to get into object-oriented programming I
can design my own classes, for example, I could design a new data type
that suited my problem.  With a templated matrix class all I would
have to do is provide functions for computing the operations of a new
data type, for example, +, -, *, and /, for interval numbers, and I
would instantly have an array language with interval numbers.  In fact
with not much trouble I could declare a multi-dimensional array of
double precision rational complex interval numbers (if that was what I
wanted).  
   I think it is a huge mistake to try to do numeric programming in C,
but such a judgment doesn't generalize to C++.  
Re: The importance of high-performance computing
#393
Author: Andrew Mullhaupt
Date: Mon, 31 Aug 1992 01:04
32 lines
1920 bytes
In article <l9p02vINNorv@almaak.usc.edu> ajayshah@almaak.usc.edu (Ajay Shah) writes:
>... I know
>exactly one person who uses parallel hardware.  Every single person I
>know who does scientific computation uses single-CPUs.

This just means you don't know people with big enough problems.

>Parallel hardware is obviously a way to get revolutionary gains in
>compute power, but Bill Joy's law suggests that single CPUs will give
>tremendous gains without paying any software irritations (they
>certainly have done great in the last five years).

There is a limit. Have you noticed that all the screaming "uniprocessors" are
going superscalar? SPARCs are already starting down the multiprocessing road.

Now I'm not trying to tell you that most scientific computing is parallel, or
anything similarly off-planet. But don't think that parallel computing is
going to go away anytime soon. Eventually, you hit the Boltzmann limit and then
the _only_ performance gain is parallelization. Your enthusiasm for single
CPU performance gains just means that you'll hit this wall sooner, rather than
later.
>
> I suspect most
>scientific computation out there does not know or care about parallel
>hardware.

You aren't talking about the major leaguers here, are you? In my experience,
places with graduate programs specializing in scientific computation are also
hotbeds of parallelization research and cross-fertilization.

Later,
Andrew Mullhaupt
Re: The importance of high-performance computing
#406
Author: William Gropp
Date: Wed, 02 Sep 1992 14:51
15 lines
1470 bytes
] Parallel hardware is obviously a way to get revolutionary gains in
] compute power, but Bill Joy's law suggests that single CPUs will give
] tremendous gains without paying any software irritations (they
] certainly have done great in the last five years).
                                   ^^^^^^^^^^^^^^^
This is not true.  What is true is that low end machines (PC's and 
workstations) have made great strides in the last ten years.  The high
end SINGLE PROCESSORS have not.  For example, a single Cray processor has
gone from about 140 Megaflops (Cray 1) to 1000 Megaflops (Cray C-90) in
the last 12 years (these are peak speeds; as such, there is a lot of
room for argument).  If you define a uniprocessor as having a single
set of functional units, the peak gets even lower, as peak clock speeds
have gone from about 12.5 ns (Cray 1) to 2.9 ns (NEC SX-3).  

Bill Gropp
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads