home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / edu / 1408 < prev    next >
Encoding:
Internet Message Format  |  1992-08-30  |  8.9 KB

  1. Xref: sparky comp.edu:1408 comp.lang.fortran:3281 comp.lang.misc:2804 sci.math:10695
  2. Path: sparky!uunet!charon.amdahl.com!pacbell.com!att!linac!uwm.edu!rpi!gatech!purdue!mentor.cc.purdue.edu!pop.stat.purdue.edu!hrubin
  3. From: hrubin@pop.stat.purdue.edu (Herman Rubin)
  4. Newsgroups: comp.edu,comp.lang.fortran,comp.lang.misc,sci.math
  5. Subject: Re: Scientists as Programmers (was Re: Small Language Wanted)
  6. Message-ID: <BttB9z.IAy@mentor.cc.purdue.edu>
  7. Date: 30 Aug 92 19:53:59 GMT
  8. References: <BtpAIn.EE5@mentor.cc.purdue.edu> <17mcr4INN4qq@network.ucsd.edu>
  9. Sender: news@mentor.cc.purdue.edu (USENET News)
  10. Organization: Purdue University Statistics Department
  11. Lines: 157
  12.  
  13. In article <17mcr4INN4qq@network.ucsd.edu> mbk@lyapunov.ucsd.edu (Matt Kennel) writes:
  14. >hrubin@pop.stat.purdue.edu (Herman Rubin) writes:
  15. >: The problem is that the CS people are, in this sense, like the purissima
  16. >: mathematicians (if it can be applied, it is time to work on something else.)
  17. >: They concentrate on what no scientist is particularly worried about, like
  18. >: making the printed output look neat, or even making life easy for the
  19. >: compiler.
  20.  
  21.  
  22. >: Most good scientists can think of their problem, and how reasonable operations
  23. >: can attack it.  But the languages do not facilitate this, and often even if 
  24. >: the features are present, they are in some obfuscated syntax.
  25.  
  26. >I agree.  I believe the CS vs. Science programming divide is cultural, but
  27. >I'm going be somewhat partisan and blame the programming authorities a bit more
  28. >than the scientists.
  29.  
  30. >My view of things:
  31.  
  32. >1) There are scientists who don't know the value of organized software
  33. >    engineering.  I mean basic things like type-checking subroutine
  34. >    arguments, modularization, modern data types, and other things like
  35. >    that.  They write the infamous spaghetti Fortran.
  36.  
  37. This statement is too broad.  Modularization is not a problem for the
  38. scientist, but it can be a major time-waster if the current software is
  39. used.  Subroutine calls are, at this time, and for the foreseeable future,
  40. quite expensive.  This was not the case when Fortran and Algol were first
  41. produced; there were few registers then, transfer was the fastest instruction,
  42. and context switching cost less than one multiplication.
  43.  
  44. I have deliberately violated types to get the job done.  In fact, I see no
  45. good way out of it.  Now there might be some point to informing the programmer
  46. that types are violated, but very definitely not to insist on it, or to force
  47.  
  48. Also, mathematicians especially use lots of operators.  Despite what the CS
  49. gurus say, allowing the introduction of additional functions is not the
  50. same thing.  Also, mathematicians and scientists are accustomed to using
  51. whatever syntax they like, as long as it does not lead to confusion.  But
  52. the CS people insist that only the standard operators are to be allowed to
  53. use infix notation, and all others must be prefix, except in reverse Polish
  54. systems, in which all must be postfix.  
  55.  
  56. >2)  There are computer scientists who don't understand the demands of
  57. >    scientific computing, which is understandable, because they never
  58. >    write scientific programs.
  59. >
  60. >The problem is this:
  61. >
  62. >There are scientists who *have* learned the value of good software
  63. >engineering and believe what the comptuer scientists have said for years, and
  64.  
  65. >
  66. >Too many CSoids however dismiss the concerns of scientists as being
  67. >narrow and "uninformed", assuming that they're all like the nerds in
  68. >#1 above.  Or they claim that language X does what scientists need
  69. >(or "no we don't need to bother because it's possible to implement that
  70. >in a library" or "a quality of implementation issue" (a euphemism for
  71.  
  72. Scientists generally come up with types in a logical manner which are not
  73. included in the list presented by the language.  Some languages have allowed
  74. the introduction of additional types.  But C is a bad example here; typedef
  75. was usurped for something of little use anyhow, and should have been called
  76. typealias, reserving typedef for a special case of struct, or class in C++.
  77.  
  78. Also, mathematicians especially use lots of operators.  Despite what the CS
  79. gurus say, allowing the introduction of additional functions is not the
  80. same thing.  Also, mathematicians and scientists are accustomed to using
  81. whatever syntax they like, as long as it does not lead to confusion.  But
  82. the CS people insist that only the standard operators are to be allowed to
  83. use infix notation, and all others must be prefix, except in reverse Polish
  84. systems, in which all must be postfix.  
  85.  
  86. >Software technology and practice for addressing the particular concerns of
  87. >computer scientists has advanced tremendously since the early days, but the
  88. >model of scientific computation hasn't changed much since early Fortran
  89. >except vicariously through the progress in "regular" computer science.
  90.  
  91. >I personally would love a "Numerical Eiffel" type of language, but I bet the
  92. >Eiffel gurus would say "eeuy yuck, you're polluting our pristine creation
  93. >with needless cruft".  One of the Modula-3 people has said that one of
  94. >their design goals was to make it good for numerical computation (a
  95. >refreshing attitude).  One of the examples was "easy access to the IEEE
  96. >rounding modes" (what the f*???) as standard in the library, but admitted that
  97. >complex numbers weren't, much less array operations.
  98.  
  99. >I don't want "good for numerical computation" to mean "not all that much
  100. >worse than Fortran 77"!
  101.  
  102. >I believe Herman Rubin and other mathemeticians when they say that they want
  103. >good performance and easy use of multiprecision integers and fixed point
  104. >numbers, even though I and most physicists, would never have a use for
  105. >them.  So can the computer scientists accept our needs as well?  Remember,
  106. >it's the scientific programmers who *DO* want change who are doing all the
  107. >complaining--the "old farts" just keep on banging out Fortran and mind their
  108. >own business.
  109.  
  110. >Scientists don't want to needlessly accept *regress* in concrete areas in
  111. >order to make supposed "progress" in areas they haven't been convinced they
  112. >want.  The progress has to be good enough to convince departmental computer
  113. >comittees to buy a new $2000 compiler.  Notice that scientists aren't
  114. >all that hidebound by tradition---they enthusiastically take up Maple
  115. >and Mathematica---because they can immediately recognize progress, and
  116. >even despite their lack of "goto". :-)
  117.  
  118. >And finally the old standby "why speed is in fact, important".  Why does
  119. >factor of 2 matter?  It's the old "the program is everything" view.  Running
  120. >any particular one program faster is not, in fact, what matters.  What does
  121. >matter, is that with a faster machine and a faster language I can do *more*
  122. >and *better* science.  (I could easily use up a 10 teraflop machine next
  123. >month.) Many times we're running things on hardware far too underpowered to
  124. >"do the job right" in any case, but science accepts approximate solutions.
  125.  
  126. The previous reference to such things as Mathematica is an example of the
  127. need for speed.  One of my colleagues set something up on Mathematica, and
  128. for checking a single case, that was fine.  But for the production run, the
  129. speedup of over 100 garnered by converting from Mathematica to C was needed
  130. to get the job done.
  131.  
  132. >Take the statement, "Scientific progress is proportional to the logarithm of
  133. >computer power."
  134.  
  135. >The computer scientist hears this and says "You silly fools, if you
  136. >saw the big picture you'd realize that the constant factor doesn't matter
  137. >one bit so quit complaining."
  138.  
  139. >The scientist hears this and says "Well that's why we need to get
  140. >all we can get, and then some, in order to make progress."
  141.  
  142. Even more, how much speedup do you think we will get in the future?  Our
  143. current switching time is about 10^-10 second, maybe 10^-11.  Probably
  144. 10^-15 will be obtained, but 10^-18 is the length of time for light to
  145. cross a small molecule.  Wave lengths of X-rays are comparable to the
  146. interatomic distances.
  147. >
  148. >I think there is in fact some hope.
  149.  
  150. >Specifically, the parallel- and super- computer research community.
  151. >In it, there are people who truly understand both the computer scientists
  152. >and the scientific users and are committed to progress rather than
  153. >defining away the problem as uninteresting or trivial.
  154.  
  155. But these have their problems as well.  Vector computers which can only
  156. handle "rigid" vectors (the spacing between elements cannot change) run
  157. into problems, and parallel processors even more so.  To give a simple
  158. example ot such a problem, consider the problem of computing a function
  159. for which there are several different parts of the domain, each calling
  160. for a different algorithm.  Parallelism is almost a curse here.  Or a 
  161. simulation in which about 0.01% of the cases take 1,000 times as long?
  162. A parallel processor with 2^14 or more processors is going to be doing
  163. one of those most of the time.  Now this problem is partly hardware and
  164. partly software, and I can handle some of them myself.
  165. -- 
  166. Herman Rubin, Dept. of Statistics, Purdue Univ., West Lafayette IN47907-1399
  167. Phone: (317)494-6054
  168. hrubin@pop.stat.purdue.edu (Internet, bitnet)  
  169. {purdue,pur-ee}!pop.stat!hrubin(UUCP)
  170.