Posted by dog
on July 18, 2006 at 12:04 PM PDT
Just read this article:
It was talking about high vs low level. It pointed out a flaw in Java regarding lack of SIMD support for modern architectures.
If there were some sort of new "array" construct in Java that would allow you to operate on it as a single object, then different VMs could take advantage of SIMD instructions on the CPUs to make set opertations very fast and take better advantage of the CPUs.
Speeeeed! Why limit ourselves to single threads when we could be exploiting parallelism in current CPUs and in newer CPUs like multi-core CPUs etc..
Also applies to VMs for multiprocessors.
I dunno.. look at the literature for parallel processing. There are plenty of abstractions for this sort of thing proposed for parallel languajes. Stuff like 2-dimensional "arrays" on which you can perform operations (the whole "array" supports the operation.. I'm not talking about going through the array with a for loop.. but instead doing it in parallel)
This would mainly be used by people developing APIs like faster ArrayLists, faster Sets, faster Matrices, faster image processing, etc..
Some aspects of the Java API could be reimplemented to take advantage of this by using the new abstraction so that they run much faster.