[ 
https://issues.apache.org/jira/browse/HIVE-10180?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14482475#comment-14482475
 ] 

Chengxiang Li commented on HIVE-10180:
--------------------------------------

[~gopalv], i'm waiting for [~Ferd]'s working on micro benchmark 
tool(HIVE-10189), seems it would take some time, so i would just put my own 
test result here at first, i just calculate 
DoubleColAddDoubleColumn/LongColAddLongColumn 100000000 times w/ and w/o patch, 
here is the numbers:
||Expression||Not vectorized(sec)||Vectorized(sec)||
|DoubleColAddDoubleColumn|51.23|17.64|
|LongColAddLongColumn|51.17|21.51|
Environment:
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
Intel(R) Core(TM) i3-2130 CPU @ 3.40GHz
Linux version 2.6.32-279.el6.x86_64

> Loop optimization in ColumnArithmeticColumn.txt
> -----------------------------------------------
>
>                 Key: HIVE-10180
>                 URL: https://issues.apache.org/jira/browse/HIVE-10180
>             Project: Hive
>          Issue Type: Sub-task
>            Reporter: Chengxiang Li
>            Assignee: Chengxiang Li
>            Priority: Minor
>         Attachments: HIVE-10180.1.patch
>
>
> JVM is quite strict on the code schema which may executed with SIMD 
> instructions, take a loop in DoubleColAddDoubleColumn.java for example, 
> {code:java}
> for (int i = 0; i != n; i++) {
>   outputVector[i] = vector1[0] + vector2[i];
> }
> {code}
> The "vector1[0]" reference would prevent JVM to execute this part of code 
> with vectorized instructions, we need to assign the "vector1[0]" to a 
> variable outside of loop, and use that variable in loop.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to