home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / sys / super / 944 < prev    next >
Encoding:
Internet Message Format  |  1992-09-15  |  2.1 KB

  1. Xref: sparky comp.sys.super:944 comp.lang.fortran:3569
  2. Path: sparky!uunet!spool.mu.edu!caen!zaphod.mps.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!ukma!psuvax1!rutgers!cmcl2!CIMS.NYU.EDU!mckenney
  3. From: mckenney@CIMS.NYU.EDU (Alan McKenney)
  4. Newsgroups: comp.sys.super,comp.lang.fortran
  5. Subject: Compiler directives to enforce scalar (non-vector) mode
  6. Summary: What are the compiler directives for scalar mode on
  7.          various vector machines?
  8. Message-ID: <9209151620.AA13202@GAUSS.CIMS.NYU.EDU>
  9. Date: 15 Sep 92 16:20:34 GMT
  10. Sender: daemon@cmcl2.nyu.edu (Mr Background)
  11. Followup-To: comp.sys.super
  12. Organization: Courant Institute, NYU, NY, NY, USA
  13. Lines: 41
  14.  
  15.  
  16.     I am currently writing (well, updating) a code which is
  17. supposed to be (a) portable and (b) have one loop which will be
  18. vectorized (on vector machines) and another, very similar, which will
  19. not be.  (The scalar version is for the case when the loop will
  20. only iterate a very few times.)
  21.  
  22.     My first attempt had the first loop be written in a typical
  23. vectorizable form, the second I put enough scalars into to make
  24. it scalar on one machine I used.  I later found that other
  25. compilers were smarter, and *both* loops vectorized.  I suspect
  26. that as compiler technology improves, any code which foils the
  27. vectorizer now will either (a) soon be vectorizable or (b)
  28. be so obfuscated that it will be slower than vector mode
  29. with vector length one anyway.
  30.  
  31.     So, I am now going to try just putting in compiler directives,
  32. enough so that most any vector machine should recognize one.  CONVEX
  33. machines require "C$DIR SCALAR" just before the DO, while CRI machines
  34. want "CDIR$ NOVECTOR" in the same place, so my scalar loop currently
  35. starts out:
  36.  
  37. C$DIR SCALAR
  38. CDIR$ NOVECTOR
  39.       DO ....
  40.  
  41.  
  42. Any other compiler directives that I should add to the list?
  43.  
  44.     ********************************************
  45.     * Please send me E-mail, and I will try to *
  46.     * summarize for the net.                   *
  47.     ********************************************
  48.  
  49. (Boy, I wish someone would come up with a standard for such
  50. compiler directives.)
  51.  
  52.  
  53.  
  54. Alan McKenney
  55. E-mail: mckenney@cims.nyu.edu  <-- "accept no substitutes!"
  56.