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

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

Running this on my laptop, with numNonzeroElements = 1000, vector cardinality 
100,000, numVectors = 100, numLoops = 100 (requires -Xmx1g).
{code}
INFO: 
BenchMarks                    DenseVector                   
RandomAccessSparseVector      SequentialAccessSparseVector  
Clone                                                                           
                                        
                              nCalls = 10000;               nCalls = 10000;     
          nCalls = 10000;               
                              sumTime = 12.240903s;         sumTime = 2.40168s; 
          sumTime = 2.1353s;            
                              minTime = 0.425ms;            minTime = 0.065ms;  
          minTime = 0.065ms;            
                              maxTime = 96.625ms;           maxTime = 30.835ms; 
          maxTime = 25.169ms;           
                              meanTime = 1.22409ms;         meanTime = 
0.240168ms;        meanTime = 0.21353ms;         
                              stdDevTime = 3.994235ms;      stdDevTime = 
1.468017ms;      stdDevTime = 1.271389ms;      
                              Speed = 816.93317 /sec        Speed = 4163.752 
/sec         Speed = 4683.1826 /sec        
                              Rate = 980.3198 MB/s          Rate = 4996.503 
MB/s          Rate = 5619.8193 MB/s         

Create (copy)                                                                   
                                        
                              nCalls = 10000;               nCalls = 10000;     
          nCalls = 10000;               
                              sumTime = 13.525425s;         sumTime = 
1.855115s;          sumTime = 0.662937s;          
                              minTime = 0.206ms;            minTime = 0.088ms;  
          minTime = 0.015ms;            
                              maxTime = 99.047ms;           maxTime = 25.277ms; 
          maxTime = 26.974ms;           
                              meanTime = 1.352542ms;        meanTime = 
0.185511ms;        meanTime = 0.066293ms;        
                              stdDevTime = 5.680836ms;      stdDevTime = 
0.718719ms;      stdDevTime = 0.364231ms;      
                              Speed = 739.34827 /sec        Speed = 5390.5015 
/sec        Speed = 15084.389 /sec        
                              Rate = 887.21796 MB/s         Rate = 6468.6016 
MB/s         Rate = 18101.268 MB/s         

Create (incrementally)                                                          
                                        
                              nCalls = 10000;               nCalls = 10000;     
          nCalls = 10000;               
                              sumTime = 0.145204s;          sumTime = 
0.533273s;          sumTime = 4.398924s;          
                              minTime = 0.0ms;              minTime = 0.014ms;  
          minTime = 0.338ms;            
                              maxTime = 2.874ms;            maxTime = 2.713ms;  
          maxTime = 22.045ms;           
                              meanTime = 0.01452ms;         meanTime = 
0.053327ms;        meanTime = 0.439892ms;        
                              stdDevTime = 0.037578ms;      stdDevTime = 
0.034625ms;      stdDevTime = 0.29153ms;       
                              Speed = 68868.625 /sec        Speed = 18752.121 
/sec        Speed = 2273.2832 /sec        
                              Rate = 82642.35 MB/s          Rate = 22502.547 
MB/s         Rate = 2727.94 MB/s           

DotProduct                                                                      
                                        
                              nCalls = 10000;               nCalls = 10000;     
          nCalls = 10000;               
                              sumTime = 3.094423s;          sumTime = 
1.218703s;          sumTime = 0.378118s;          
                              minTime = 0.237ms;            minTime = 0.07ms;   
          minTime = 0.025ms;            
                              maxTime = 5.995ms;            maxTime = 20.012ms; 
          maxTime = 9.925ms;            
                              meanTime = 0.309442ms;        meanTime = 
0.12187ms;         meanTime = 0.037811ms;        
                              stdDevTime = 0.095079ms;      stdDevTime = 
0.288768ms;      stdDevTime = 0.1183ms;        
                              Speed = 3231.62 /sec          Speed = 8205.444 
/sec         Speed = 26446.77 /sec         
                              Rate = 3877.9443 MB/s         Rate = 9846.534 
MB/s          Rate = 31736.123 MB/s         

org.apache.mahout.common.distance.CosineDistanceMeasure                         
                                                                 
                              nCalls = 10000;               nCalls = 10000;     
          nCalls = 10000;               
                              sumTime = 5.9166s;            sumTime = 
2.970111s;          sumTime = 0.812395s;          
                              minTime = 0.459ms;            minTime = 0.223ms;  
          minTime = 0.037ms;            
                              maxTime = 2.295ms;            maxTime = 9.043ms;  
          maxTime = 0.716ms;            
                              meanTime = 0.59166ms;         meanTime = 
0.297011ms;        meanTime = 0.081239ms;        
                              stdDevTime = 0.074413ms;      stdDevTime = 
0.175312ms;      stdDevTime = 0.025369ms;      
                              Speed = 1690.1599 /sec        Speed = 3366.8774 
/sec        Speed = 12309.282 /sec        
                              Rate = 2028.192 MB/s          Rate = 4040.2532 
MB/s         Rate = 14771.14 MB/s          

org.apache.mahout.common.distance.EuclideanDistanceMeasure                      
                                                                    
                              nCalls = 10000;               nCalls = 10000;     
          nCalls = 10000;               
                              sumTime = 3.43192s;           sumTime = 
1.703885s;          sumTime = 1.218073s;          
                              minTime = 0.196ms;            minTime = 0.059ms;  
          minTime = 0.011ms;            
                              maxTime = 2.494ms;            maxTime = 6.272ms;  
          maxTime = 3.491ms;            
                              meanTime = 0.343192ms;        meanTime = 
0.170388ms;        meanTime = 0.121807ms;        
                              stdDevTime = 0.054743ms;      stdDevTime = 
0.065581ms;      stdDevTime = 0.045384ms;      
                              Speed = 2913.8206 /sec        Speed = 5868.9404 
/sec        Speed = 8209.688 /sec         
                              Rate = 3496.585 MB/s          Rate = 7042.7285 
MB/s         Rate = 9851.627 MB/s          

org.apache.mahout.common.distance.ManhattanDistanceMeasure                      
                                                                    
                              nCalls = 10000;               nCalls = 10000;     
          nCalls = 10000;               
                              sumTime = 11.521895s;         sumTime = 4.10605s; 
          sumTime = 9.535213s;          
                              minTime = 0.734ms;            minTime = 0.251ms;  
          minTime = 0.661ms;            
                              maxTime = 20.341ms;           maxTime = 29.624ms; 
          maxTime = 11.764ms;           
                              meanTime = 1.152189ms;        meanTime = 
0.410605ms;        meanTime = 0.953521ms;        
                              stdDevTime = 0.982439ms;      stdDevTime = 
0.568994ms;      stdDevTime = 0.425346ms;      
                              Speed = 867.9127 /sec         Speed = 2435.4307 
/sec        Speed = 1048.7443 /sec        
                              Rate = 1041.4954 MB/s         Rate = 2922.5168 
MB/s         Rate = 1258.4932 MB/s         

org.apache.mahout.common.distance.SquaredEuclideanDistanceMeasure               
                                                                           
                              nCalls = 10000;               nCalls = 10000;     
          nCalls = 10000;               
                              sumTime = 2.952337s;          sumTime = 
1.410157s;          sumTime = 1.138238s;          
                              minTime = 0.17ms;             minTime = 0.084ms;  
          minTime = 0.011ms;            
                              maxTime = 17.479ms;           maxTime = 7.72ms;   
          maxTime = 3.753ms;            
                              meanTime = 0.295233ms;        meanTime = 
0.141015ms;        meanTime = 0.113823ms;        
                              stdDevTime = 0.206201ms;      stdDevTime = 
0.103339ms;      stdDevTime = 0.053248ms;      
                              Speed = 3387.1472 /sec        Speed = 7091.4087 
/sec        Speed = 8785.509 /sec         
                              Rate = 4064.577 MB/s          Rate = 8509.69 MB/s 
          Rate = 10542.611 MB/s         

org.apache.mahout.common.distance.TanimotoDistanceMeasure                       
                                                                   
                              nCalls = 10000;               nCalls = 10000;     
          nCalls = 10000;               
                              sumTime = 5.545072s;          sumTime = 2.58138s; 
          sumTime = 1.460984s;          
                              minTime = 0.455ms;            minTime = 0.186ms;  
          minTime = 0.056ms;            
                              maxTime = 17.208ms;           maxTime = 14.809ms; 
          maxTime = 5.938ms;            
                              meanTime = 0.554507ms;        meanTime = 
0.258138ms;        meanTime = 0.146098ms;        
                              stdDevTime = 0.195172ms;      stdDevTime = 
0.192851ms;      stdDevTime = 0.08797ms;       
                              Speed = 1803.4031 /sec        Speed = 3873.8967 
/sec        Speed = 6844.7017 /sec        
                              Rate = 2164.0837 MB/s         Rate = 4648.6763 
MB/s         Rate = 8213.643 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
>
>
> 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