On 1/14/21 7:55 PM, Fred Cisin wrote:
You are right.? At the time, it simply never occured
to me that anybody
would use it for anything other than matrix processing of scientific data.
(MY view of the elephant)
The vector thing did strange things to your thinking. Any scalar
instruction was basically timed at k+e, where k is the pipeline startup
time and e is the actual time to do the operation.
Vectors of length n basically had timings of k+ne. That lead to all
sorts of interesting things, such as for N<1000, the fastest sort was a
vector selection sort, not any of the traditional scalar methods such as
Quicksort. Hashing a lookup table was often slower than simply
performing a serial search. I wrote a text editor back around 1974
using vector instructions as a bootleg project. I found the same editor
still in use in 1985 on the ETA-10 super. It was called OGNATE, for "oh
god, not another text editor".
So, you could see how APL was somehow appropriate to the architecture.
Too bad that nobody really used it. FORTRAN, FORTRAN and more FORTRAN.
I was able to speed up the OS resident by almost 30 percent by rewriting
scalar code as vector and making some scalar optimizations. The
implementation language was IMPL, a dialect of LRLTRAN.
The instruction set on the STAR was, to put it mildly, huge. Later
CYBER and ETA implementations stripped a lot of the more exotic
instructions away--and added a dedicated scalar unit.
Good times on a failed project...
Now, of course, any major CPU has vector instructions squirreled away
somewhere; e.g. Intel SSE, AVX, etc.