home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / lang / fortran / 5171 < prev    next >
Encoding:
Internet Message Format  |  1993-01-25  |  2.8 KB

  1. Path: sparky!uunet!olivea!hal.com!decwrl!deccrl!news.crl.dec.com!dbased.nuo.dec.com!quark.enet.dec.com!lionel
  2. From: lionel@quark.enet.dec.com (Steve Lionel)
  3. Newsgroups: comp.lang.fortran
  4. Subject: Re: Compiler groups working on real apps?
  5. Message-ID: <1993Jan25.202650.2851@dbased.nuo.dec.com>
  6. Date: 25 Jan 93 20:26:50 GMT
  7. References: <1993Jan21.081105.4047@molene.ifremer.fr> <1993Jan22.193019.12936@news.eng.convex.com> <C19wHr.GF3@news.cso.uiuc.edu> <1993Jan23.003639.13681@craycos.com> <C1Cnq5.1zt@news.cso.uiuc.edu>
  8. Sender: news@dbased.nuo.dec.com (USENET News System)
  9. Reply-To: lionel@quark.enet.dec.com (Steve Lionel)
  10. Organization: Digital Equipment Corporation, Nashua NH
  11. Lines: 44
  12.  
  13.  
  14. In article <C1Cnq5.1zt@news.cso.uiuc.edu>, ercolessi@uimrl3.mrl.uiuc.edu 
  15. (furio ercolessi) writes:
  16. |>
  17. |>Moreover, these loops play with arrays which are quite small.
  18. |>For example, 4096 elements in total for each array in kernel 13.
  19. |>Maybe this is not of much concern to compiler writers, since this is
  20. |>after all a hardware issue, but nowadays the cache behavior is a 
  21. |>factor which often dominates benchmark results on real-world programs.  
  22. |>With present CPUs and memories, array sizes are happily going into the 
  23. |>millions, usually exceeding the cache sizes.   If compilers are tuned to 
  24. |>tiny benchmarks which fit into the cache, there could be surprises when 
  25. |>moving to the real world applications.  It is not rare to see dramatic 
  26. |>changes in performance when increasing the problem size, or transposing 
  27. |>arrays, on many new RISC architectures. 
  28. |>Could compilers at least try to alleviate these problems?
  29. |>
  30.  
  31. Yup.  DEC Fortran V6 for OpenVMS VAX has an optional level of optimization which
  32. is intended to improve performance of applications which operate over large
  33. arrays and which tend to induce cache thrashing.  It uses dependence analysis
  34. to see if it is safe to add an additional level of "chunking loops" and/or
  35. do loop reordering so that memory accesses are clustered together.  If
  36. this optimization is used, it can allow the application to maintain level
  37. performance no matter how large the problem size, rather than having performance
  38. decrease due to cache thrashing and excessive page faults.  The qualifier to
  39. enable this is /OPTIMIZE=LEVEL=4; look for more details on it in the 
  40. DEC Fortran Performance Guide for OpenVMS VAX Systems when it reaches your
  41. door.
  42.  
  43. If you have the KAP preprocessor, it too can do some amount of optimization
  44. for improved memory access.
  45.  
  46. However...  this optimization won't help the particular piece of code you
  47. posted, as the order of element access is unpredictable at compile-time.  It
  48. looks like a good test of the OS/hardware treatment of memory access, less so
  49. of compiler optimization.
  50. --
  51.  
  52. Steve Lionel                    lionel@quark.enet.dec.com
  53. SDT Languages Group
  54. Digital Equipment Corporation
  55. 110 Spit Brook Road
  56. Nashua, NH 03062
  57.