You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by Jingguo Yao <ya...@gmail.com> on 2016/02/03 07:17:17 UTC

How vectorization is implemented in Drill?

[1] says:

> Vectorization: Drill takes advantage of the latest SIMD instructions
> available in modern processors.

I have done a quick browse of the source code. The following list are
the clues which may relate with vectorization:

- Drill source use Arrays.fill, Arrays.copyOf and Arrays.copyOfRange.
- Project in exec/vector folder uses hppc. And hppc use Arrays.copyOf
  and Arrays.fill.

[2] shows that Arrays.fill, Arrays.copyOf and Arrays.copyOfRange are intrinsic
methods. [3] shows that such intrinsics can be optimized by the JVM to
use SIMD methods.

Is my understanding correct?

[1]: https://drill.apache.org/faq/
[2]: http://hg.openjdk.java.net/jdk8/jdk8/hotspot/file/87ee5ee27509/src/share/vm/classfile/vmSymbols.hpp
[3]: http://psy-lob-saw.blogspot.hk/2015/04/on-arraysfill-intrinsics-superword-and.html