[R-SIG-Mac]vectorizing calculations

Don MacQueen macq@llnl.gov
Mon, 4 Jun 2001 08:09:50 -0700


Hi,
 From Apple's scitech mailing list, Veridian Systems is (are) looking 
for beta testers for an OS X vectorizing compiler. Given the 
vectorized nature of R, this seems like it ought to have some 
potential.

-Don

p.s.
Please let me know if copying something like this to r-sig-mac is 
considered inappropriate to r-sig-mac (I doubt that Veridian would 
object...)
[and I expect there might be licensing issues]

For those who don't know about it, see
   <http://www.lists.apple.com/mailman/listinfo/scitech>,
   <mailto:scitech-request@lists.apple.com?subject=subscribe>
for info about Apple's scitech mailing list.



-----------------------------
text below copied from Apple's scitech mailing list 
-----------------------------

X-Sender: bobbrode@mail.psrv.com
To: scitech@lists.apple.com
From: Bob Brode <bob.brode@veridian.com>
Subject: AltiVec Fortran vectorizer beta test on OS X
Date: Thu, 31 May 2001 13:29:42 -0700

We're looking for beta testers for a new product of ours on OS X,
VAST-F/AltiVec.  If you're interested, please contact me (see below).

Using Absoft's F90 beta version and Apple's [g]cc, we're seeing speedups
for simple operations roughly like this (at vector lengths of 100):

array+array     3.8
array*array     3.8
saxpy           3.5
sqrt(array)     7.1

Real applications won't show this much gain; roughly speaking a factor of
two is a pretty good target for a fairly-well-vectorizable program.  (The
reason for this is that the limiting factor tends to be how much of the
code _doesn't_ get vectorized, not how much faster the vectorized part
is.)   For example, Linpack 100x100 acclerates by 1.8, ARC2D (a well-known
older fluid dynamics benchmark) by 1.6.

Some caveats:  As you probably know, there's no double precision support on
AltiVec.  Because of various overheads in this particular setup, vectorized
code may be slower than scalar at loop counts less than about 8.

A little background:  VAST-F/AltiVec operates by converting vectorizable
loops into calls to VAST-generated C functions containing vector
operations.  This somewhat roundabout procedure is necessitated by
Motorola's having defined source-level vector extensions only for C;
however the compilation details are handled by the driver we supply, so
compiler invocation is identical to what you're used to except for the name
of the compiler.

On OS X we also have an existing analogous product for C, VAST-C/AltiVec,
and are preparing versions of VAST-F/Parallel and VAST-C/Parallel, for
autoparallelization on dual-processor systems.  All these products are also
available on Linux.

More information is available on our web site, and again please contact me
directly if you're interested in the beta test.


Bob Brode
Senior Product Manager
Veridian Systems
(310) 314-2334

www.psrv.com
_______________________________________________
scitech mailing list
scitech@lists.apple.com
http://www.lists.apple.com/mailman/listinfo/scitech
-- 
--------------------------------------
Don MacQueen
Environmental Protection Department
Lawrence Livermore National Laboratory
Livermore, CA, USA
--------------------------------------