[ 
https://issues.apache.org/jira/browse/MAHOUT-300?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12836649#action_12836649
 ] 

Robin Anil commented on MAHOUT-300:
-----------------------------------

On dense data 1000, 1000

{noformat}
BenchMarks              DenseVector             RandSparseVector        
SeqSparseVector         Dense.dot(Rand)         Dense.dot(Seq)          
Rand.dot(Dense)         Rand.dot(Seq)           Seq.dot(Dense)          
Seq.dot(Rand)           

DotProduct                                                                      
                                                                                
                                                                                
                        nCalls = 20000;         nCalls = 20000;         nCalls 
= 20000;         nCalls = 20000;         nCalls = 20000;         nCalls = 
20000;         nCalls = 20000;         nCalls = 20000;         nCalls = 20000;  
       
                        sum = 0.042869s;        sum = 1.139837s;        sum = 
0.293336s;        sum = 0.882977s;        sum = 0.452817s;        sum = 
1.330815s;        sum = 0.843993s;        sum = 0.931822s;        sum = 
1.093099s;        
                        min = 0.0010ms;         min = 0.046ms;          min = 
0.01ms;           min = 0.03ms;           min = 0.011ms;          min = 
0.049ms;          min = 0.027ms;          min = 0.036ms;          min = 
0.049ms;          
                        max = 2.717ms;          max = 21.51ms;          max = 
3.156ms;          max = 25.346ms;         max = 26.567ms;         max = 
14.738ms;         max = 53.265ms;         max = 9.44ms;           max = 
4.017ms;          
                        mean = 0.002143ms;      mean = 0.056991ms;      mean = 
0.014666ms;      mean = 0.044148ms;      mean = 0.02264ms;       mean = 
0.06654ms;       mean = 0.042199ms;      mean = 0.046591ms;      mean = 
0.054654ms;      
                        stdDev = 0.027798ms;    stdDev = 0.194404ms;    stdDev 
= 0.053138ms;    stdDev = 0.30642ms;     stdDev = 0.255753ms;    stdDev = 
0.212913ms;    stdDev = 0.446643ms;    stdDev = 0.131948ms;    stdDev = 
0.054681ms;    
                        Speed = 466537.6 /sec   Speed = 17546.367 /sec  Speed = 
68181.195 /sec  Speed = 22650.646 /sec  Speed = 44167.953 /sec  Speed = 
15028.385 /sec  Speed = 23696.877 /sec  Speed = 21463.326 /sec  Speed = 
18296.604 /sec  
                        Rate = 5598.451 MB/s    Rate = 210.55641 MB/s   Rate = 
818.17444 MB/s   Rate = 271.80777 MB/s   Rate = 530.01544 MB/s   Rate = 
180.34062 MB/s   Rate = 284.36255 MB/s   Rate = 257.55994 MB/s   Rate = 
219.55927 MB/s   
{noformat}

On Sparse Data (1000, 300)
Dont compare the MB/s see the unit/s


{noformat}
BenchMarks              DenseVector             RandSparseVector        
SeqSparseVector         Dense.dot(Rand)         Dense.dot(Seq)          
Rand.dot(Dense)         Rand.dot(Seq)           Seq.dot(Dense)          
Seq.dot(Rand)           

DotProduct                                                                      
                                                                                
                                                                                
                        nCalls = 20000;         nCalls = 20000;         nCalls 
= 20000;         nCalls = 20000;         nCalls = 20000;         nCalls = 
20000;         nCalls = 20000;         nCalls = 20000;         nCalls = 20000;  
       
                        sum = 0.048355s;        sum = 0.569326s;        sum = 
0.338478s;        sum = 0.408213s;        sum = 0.205143s;        sum = 
0.469473s;        sum = 0.242953s;        sum = 0.291587s;        sum = 
0.362947s;        
                        min = 0.0010ms;         min = 0.018ms;          min = 
0.011ms;          min = 0.012ms;          min = 0.0040ms;         min = 
0.017ms;          min = 0.01ms;           min = 0.011ms;          min = 
0.014ms;          
                        max = 6.525ms;          max = 33.768ms;         max = 
3.936ms;          max = 26.649ms;         max = 27.028ms;         max = 
3.969ms;          max = 3.042ms;          max = 4.704ms;          max = 7.04ms; 
          
                        mean = 0.002417ms;      mean = 0.028466ms;      mean = 
0.016923ms;      mean = 0.02041ms;       mean = 0.010257ms;      mean = 
0.023473ms;      mean = 0.012147ms;      mean = 0.014579ms;      mean = 
0.018147ms;      
                        stdDev = 0.062427ms;    stdDev = 0.302488ms;    stdDev 
= 0.059426ms;    stdDev = 0.237577ms;    stdDev = 0.222142ms;    stdDev = 
0.05819ms;     stdDev = 0.026846ms;    stdDev = 0.06257ms;     stdDev = 
0.06777ms;     
                        Speed = 413607.7 /sec   Speed = 35129.258 /sec  Speed = 
59088.03 /sec   Speed = 48994.03 /sec   Speed = 97492.96 /sec   Speed = 
42600.957 /sec  Speed = 82320.45 /sec   Speed = 68590.164 /sec  Speed = 
55104.46 /sec   
                        Rate = 1488.9877 MB/s   Rate = 126.46532 MB/s   Rate = 
212.7169 MB/s    Rate = 176.3785 MB/s    Rate = 350.97464 MB/s   Rate = 
153.36345 MB/s   Rate = 296.3536 MB/s    Rate = 246.92456 MB/s   Rate = 
198.37605 MB/s   

{noformat}

> Solve performance issues with Vector Implementations
> ----------------------------------------------------
>
>                 Key: MAHOUT-300
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-300
>             Project: Mahout
>          Issue Type: Improvement
>    Affects Versions: 0.3
>            Reporter: Robin Anil
>             Fix For: 0.3
>
>         Attachments: MAHOUT-300.patch, MAHOUT-300.patch, MAHOUT-300.patch, 
> MAHOUT-300.patch, MAHOUT-300.patch, MAHOUT-300.patch
>
>
> AbstractVector operations like times
>   public Vector times(double x) {
>     Vector result = clone();
>     Iterator<Element> iter = iterateNonZero();
>     while (iter.hasNext()) {
>       Element element = iter.next();
>       int index = element.index();
>       result.setQuick(index, element.get() * x);
>     }
>     return result;
>   }
> should be implemented as follows
>  public Vector times(double x) {
>     Vector result = clone();
>     Iterator<Element> iter = result.iterateNonZero();
>     while (iter.hasNext()) {
>       Element element = iter.next();
>       element.set(element.get() * x);
>     }
>     return result;
>   }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to