|
|
|
|
|
by mhh__
1665 days ago
|
|
Can you show me any source code of a Cray being programmed in a high level language? What you describe sounds like a higher level ISA, but that has to be easily expressed in C++ for the argument to hold (or alternatively any high level language available at the time). The thing with the Intel model is that although the programming model in the abstract is probably worse (although I'm curious if it allows a wider processor), it is trivial to use conceptually if you understand roughly which instructions you want i.e. it's just a blob as far as the compiler is concerned. The compiler I work on supports Intel SIMD, I'm not sure it could be easily made to get the most out of a vector programming model without a lot of rewrites. It could, however, basically emulate the fixed width things in terms of a vector ISA if needs be. |
|
http://www.audentia-gestion.fr/CRAY/PDF/Cray_C_and_C___Refer...
You literally just write regular old C code doing a tight inner-loop computation, and use pragmas to tell the compiler what it needs to safely parallelize.
Of course these days you can do the same thing in any vectorizing compiler. But the point is that a modern vectorizing compiler has to do some pretty impressive transformations to generate SIMD code which looks nothing like the original, whereas the Cray code pretty much compiles to the same thing when vectorized.