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

Jake Mannix commented on MAHOUT-300:
------------------------------------

New benchmark additions:

{code}INFO: 
BenchMarks              DenseVector             RandSparseVector        
SeqSparseVector         Dense.fn(Rand)          Dense.fn(Seq)           
Rand.fn(Dense)          Rand.fn(Seq)            Seq.fn(Dense)           
Seq.fn(Rand)            
Clone                                                                           
                
                        nCalls = 25000;         nCalls = 25000;         nCalls 
= 25000;         
                        sum = 222.609888s;      sum = 0.427272s;        sum = 
32.833216s;       
                        min = 4.509ms;          min = 0.0030ms;         min = 
0.381ms;          
                        max = 205.425ms;        max = 17.397ms;         max = 
164.729ms;        
                        mean = 8.904395ms;      mean = 0.01709ms;       mean = 
1.313328ms;      
                        stdDev = 11.839592ms;   stdDev = 0.256237ms;    stdDev 
= 4.730696ms;    
                        Speed = 112.30409 /sec  Speed = 58510.74 /sec   Speed = 
761.424 /sec    
                        Rate = 0.6738245 MB/s   Rate = 351.06442 MB/s   Rate = 
4.568544 MB/s    

Create (copy)                                                                   
                
                        nCalls = 25000;         nCalls = 25000;         nCalls 
= 25000;         
                        sum = 153.385135s;      sum = 1.316737s;        sum = 
0.654021s;        
                        min = 1.291ms;          min = 0.0080ms;         min = 
0.0ms;            
                        max = 149.59ms;         max = 18.778ms;         max = 
8.555ms;          
                        mean = 6.135405ms;      mean = 0.052669ms;      mean = 
0.02616ms;       
                        stdDev = 9.730283ms;    stdDev = 0.276396ms;    stdDev 
= 0.116822ms;    
                        Speed = 162.9884 /sec   Speed = 18986.328 /sec  Speed = 
38225.074 /sec  
                        Rate = 0.9779304 MB/s   Rate = 113.91796 MB/s   Rate = 
229.35042 MB/s   

Create (incrementally)                                                          
                
                        nCalls = 25000;         nCalls = 25000;         nCalls 
= 25000;         
                        sum = 0.556807s;        sum = 1.914268s;        sum = 
4.109328s;        
                        min = 0.0ms;            min = 0.02ms;           min = 
0.093ms;          
                        max = 2.523ms;          max = 184.955ms;        max = 
16.624ms;         
                        mean = 0.022272ms;      mean = 0.07657ms;       mean = 
0.164373ms;      
                        stdDev = 0.038841ms;    stdDev = 1.192837ms;    stdDev 
= 0.214126ms;    
                        Speed = 44898.863 /sec  Speed = 13059.822 /sec  Speed = 
6083.72 /sec    
                        Rate = 269.39316 MB/s   Rate = 78.35893 MB/s    Rate = 
36.50232 MB/s    

DotProduct                                                                      
                                                                                
                                                                                
                        nCalls = 25000;         nCalls = 25000;         nCalls 
= 25000;         nCalls = 25000;         nCalls = 25000;         nCalls = 
25000;         nCalls = 25000;         nCalls = 25000;         nCalls = 25000;  
       
                        sum = 48.730579s;       sum = 1.214007s;        sum = 
0.421372s;        sum = 2.091561s;        sum = 0.883674s;        sum = 
2.110771s;        sum = 0.571964s;        sum = 0.370673s;        sum = 
0.624421s;        
                        min = 1.581ms;          min = 0.0040ms;         min = 
0.0ms;            min = 0.036ms;          min = 0.0ms;            min = 
0.033ms;          min = 0.018ms;          min = 0.0ms;            min = 
0.019ms;          
                        max = 14.217ms;         max = 26.558ms;         max = 
2.628ms;          max = 9.386ms;          max = 8.269ms;          max = 
8.159ms;          max = 1.525ms;          max = 1.674ms;          max = 7.62ms; 
          
                        mean = 1.949223ms;      mean = 0.04856ms;       mean = 
0.016854ms;      mean = 0.083662ms;      mean = 0.035346ms;      mean = 
0.08443ms;       mean = 0.022878ms;      mean = 0.014826ms;      mean = 
0.024976ms;      
                        stdDev = 0.342952ms;    stdDev = 0.216698ms;    stdDev 
= 0.028979ms;    stdDev = 0.070128ms;    stdDev = 0.065883ms;    stdDev = 
0.064003ms;    stdDev = 0.026759ms;    stdDev = 0.034967ms;    stdDev = 
0.059001ms;    
                        Speed = 513.0249 /sec   Speed = 20592.96 /sec   Speed = 
59330.0 /sec    Speed = 11952.795 /sec  Speed = 28290.977 /sec  Speed = 
11844.014 /sec  Speed = 43709.043 /sec  Speed = 67444.89 /sec   Speed = 
40037.09 /sec   
                        Rate = 3.0781493 MB/s   Rate = 123.55776 MB/s   Rate = 
355.97998 MB/s   Rate = 71.71677 MB/s    Rate = 169.74585 MB/s   Rate = 
71.06408 MB/s    Rate = 262.25424 MB/s   Rate = 404.66934 MB/s   Rate = 
240.22253 MB/s   

org.apache.mahout.common.distance.CosineDistanceMeasure                         
                                                                                
                                                                                
                               
                        nCalls = 25000;         nCalls = 25000;         nCalls 
= 25000;         nCalls = 25000;         nCalls = 25000;         nCalls = 
25000;         nCalls = 25000;         nCalls = 25000;         nCalls = 25000;  
       
                        sum = 519.610621s;      sum = 11.427173s;       sum = 
3.760684s;        sum = 20.867298s;       sum = 9.421122s;        sum = 
19.608871s;       sum = 5.052896s;        sum = 5.783377s;        sum = 
5.489122s;        
                        min = 16.208ms;         min = 0.345ms;          min = 
0.093ms;          min = 0.684ms;          min = 0.251ms;          min = 
0.625ms;          min = 0.148ms;          min = 0.165ms;          min = 
0.157ms;          
                        max = 626.848ms;        max = 80.046ms;         max = 
29.404ms;         max = 91.928ms;         max = 35.83ms;          max = 
36.961ms;         max = 3.089ms;          max = 7.846ms;          max = 
10.664ms;         
                        mean = 20.784424ms;     mean = 0.457086ms;      mean = 
0.150427ms;      mean = 0.834691ms;      mean = 0.376844ms;      mean = 
0.784354ms;      mean = 0.202115ms;      mean = 0.231335ms;      mean = 
0.219564ms;      
                        stdDev = 8.10056ms;     stdDev = 0.736416ms;    stdDev 
= 0.293471ms;    stdDev = 0.98559ms;     stdDev = 0.536685ms;    stdDev = 
0.644877ms;    stdDev = 0.042781ms;    stdDev = 0.072166ms;    stdDev = 
0.113785ms;    
                        Speed = 48.11295 /sec   Speed = 2187.7676 /sec  Speed = 
6647.727 /sec   Speed = 1198.0469 /sec  Speed = 2653.6118 /sec  Speed = 
1274.9332 /sec  Speed = 4947.6577 /sec  Speed = 4322.734 /sec   Speed = 
4554.4624 /sec  
                        Rate = 0.2886777 MB/s   Rate = 13.126605 MB/s   Rate = 
39.88636 MB/s    Rate = 7.188281 MB/s    Rate = 15.921671 MB/s   Rate = 
7.6495986 MB/s   Rate = 29.685944 MB/s   Rate = 25.936403 MB/s   Rate = 
27.326775 MB/s   

org.apache.mahout.common.distance.EuclideanDistanceMeasure                      
                                                                                
                                                                                
                                  
                        nCalls = 25000;         nCalls = 25000;         nCalls 
= 25000;         nCalls = 25000;         nCalls = 25000;         nCalls = 
25000;         nCalls = 25000;         nCalls = 25000;         nCalls = 25000;  
       
                        sum = 499.784788s;      sum = 11.288858s;       sum = 
3.52738s;         sum = 19.439231s;       sum = 5.891554s;        sum = 
19.720618s;       sum = 5.305099s;        sum = 7.936919s;        sum = 
4.982583s;        
                        min = 16.397ms;         min = 0.351ms;          min = 
0.092ms;          min = 0.619ms;          min = 0.163ms;          min = 
0.685ms;          min = 0.156ms;          min = 0.253ms;          min = 
0.148ms;          
                        max = 257.139ms;        max = 21.049ms;         max = 
8.605ms;          max = 23.782ms;         max = 9.518ms;          max = 
9.401ms;          max = 2.853ms;          max = 8.218ms;          max = 
7.286ms;          
                        mean = 19.991391ms;     mean = 0.451554ms;      mean = 
0.141095ms;      mean = 0.777569ms;      mean = 0.235662ms;      mean = 
0.788824ms;      mean = 0.212203ms;      mean = 0.317476ms;      mean = 
0.199303ms;      
                        stdDev = 4.514066ms;    stdDev = 0.332325ms;    stdDev 
= 0.083645ms;    stdDev = 0.373561ms;    stdDev = 0.087087ms;    stdDev = 
0.209666ms;    stdDev = 0.041706ms;    stdDev = 0.086971ms;    stdDev = 
0.053ms;       
                        Speed = 50.02153 /sec   Speed = 2214.573 /sec   Speed = 
7087.4136 /sec  Speed = 1286.0591 /sec  Speed = 4243.363 /sec   Speed = 
1267.7087 /sec  Speed = 4712.4478 /sec  Speed = 3149.837 /sec   Speed = 
5017.478 /sec   
                        Rate = 0.30012918 MB/s  Rate = 13.287437 MB/s   Rate = 
42.52448 MB/s    Rate = 7.7163544 MB/s   Rate = 25.460175 MB/s   Rate = 
7.606252 MB/s    Rate = 28.274685 MB/s   Rate = 18.89902 MB/s    Rate = 
30.104868 MB/s   

org.apache.mahout.common.distance.SquaredEuclideanDistanceMeasure               
                                                                                
                                                                                
                                         
                        nCalls = 25000;         nCalls = 25000;         nCalls 
= 25000;         nCalls = 25000;         nCalls = 25000;         nCalls = 
25000;         nCalls = 25000;         nCalls = 25000;         nCalls = 25000;  
       
                        sum = 508.401241s;      sum = 12.027223s;       sum = 
3.69059s;         sum = 19.178181s;       sum = 6.142044s;        sum = 
20.469989s;       sum = 5.401286s;        sum = 8.606827s;        sum = 
5.298659s;        
                        min = 16.398ms;         min = 0.35ms;           min = 
0.091ms;          min = 0.617ms;          min = 0.164ms;          min = 0.69ms; 
          min = 0.157ms;          min = 0.252ms;          min = 0.148ms;        
  
                        max = 133.55ms;         max = 23.696ms;         max = 
10.698ms;         max = 18.251ms;         max = 8.108ms;          max = 
10.478ms;         max = 7.638ms;          max = 14.862ms;         max = 
4.461ms;          
                        mean = 20.336049ms;     mean = 0.481088ms;      mean = 
0.147623ms;      mean = 0.767127ms;      mean = 0.245681ms;      mean = 
0.818799ms;      mean = 0.216051ms;      mean = 0.344273ms;      mean = 
0.211946ms;      
                        stdDev = 4.884008ms;    stdDev = 0.479707ms;    stdDev 
= 0.138958ms;    stdDev = 0.346367ms;    stdDev = 0.124146ms;    stdDev = 
0.253845ms;    stdDev = 0.070431ms;    stdDev = 0.239597ms;    stdDev = 
0.099821ms;    
                        Speed = 49.17376 /sec   Speed = 2078.618 /sec   Speed = 
6773.985 /sec   Speed = 1303.5647 /sec  Speed = 4070.3062 /sec  Speed = 1221.3 
/sec     Speed = 4628.5273 /sec  Speed = 2904.6711 /sec  Speed = 4718.1753 /sec 
 
                        Rate = 0.29504254 MB/s  Rate = 12.471706 MB/s   Rate = 
40.643906 MB/s   Rate = 7.8213882 MB/s   Rate = 24.421835 MB/s   Rate = 
7.3278003 MB/s   Rate = 27.771162 MB/s   Rate = 17.428026 MB/s   Rate = 
28.30905 MB/s    

org.apache.mahout.common.distance.TanimotoDistanceMeasure                       
                                                                                
                                                                                
                                 
                        nCalls = 25000;         nCalls = 25000;         nCalls 
= 25000;         nCalls = 25000;         nCalls = 25000;         nCalls = 
25000;         nCalls = 25000;         nCalls = 25000;         nCalls = 25000;  
       
                        sum = 577.91672s;       sum = 10.97274s;        sum = 
3.52993s;         sum = 18.45456s;        sum = 5.71744s;         sum = 
23.672822s;       sum = 6.857617s;        sum = 10.690839s;       sum = 
5.134141s;        
                        min = 16.289ms;         min = 0.348ms;          min = 
0.092ms;          min = 0.621ms;          min = 0.163ms;          min = 0.68ms; 
          min = 0.16ms;           min = 0.252ms;          min = 0.149ms;        
  
                        max = 613.695ms;        max = 20.58ms;          max = 
7.289ms;          max = 30.631ms;         max = 7.287ms;          max = 
47.461ms;         max = 30.947ms;         max = 55.628ms;         max = 
10.655ms;         
                        mean = 23.116668ms;     mean = 0.438909ms;      mean = 
0.141197ms;      mean = 0.738182ms;      mean = 0.228697ms;      mean = 
0.946912ms;      mean = 0.274304ms;      mean = 0.427633ms;      mean = 
0.205365ms;      
                        stdDev = 15.463552ms;   stdDev = 0.262454ms;    stdDev 
= 0.069564ms;    stdDev = 0.336865ms;    stdDev = 0.102889ms;    stdDev = 
0.988334ms;    stdDev = 0.4687ms;      stdDev = 0.740098ms;    stdDev = 
0.102672ms;    
                        Speed = 43.25883 /sec   Speed = 2278.3735 /sec  Speed = 
7082.2935 /sec  Speed = 1354.6787 /sec  Speed = 4372.5864 /sec  Speed = 
1056.0634 /sec  Speed = 3645.5813 /sec  Speed = 2338.451 /sec   Speed = 
4869.364 /sec   
                        Rate = 0.25955296 MB/s  Rate = 13.67024 MB/s    Rate = 
42.49376 MB/s    Rate = 8.128072 MB/s    Rate = 26.235518 MB/s   Rate = 6.33638 
MB/s     Rate = 21.873487 MB/s   Rate = 14.0307045 MB/s  Rate = 29.21618 MB/s   
 

{code}


> 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, 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