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

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

With these opts: -vs 500000 -sp 500 -nv 50 -l 500 -no 10

Dot product looks more sensible.  

Executive summary: fastest is  SequentialAccess.dot(Dense), clocking in at 
69,246 units/s, which is as expected. 

Leaderboard for dotProduct:
{code}
Seq.dot(Den)     :  69,246 units/s
Seq.dot(Seq)     :  63,958 units/s
Seq.dot(Rnd)     :  49,638 units/s
Rnd.dot(Seq)     :  39,019 units/s
Den.dot(Seq)     :  30,337 units/s
Rnd.dot(Rnd)     :  5,320 units/s
Den.dot(Rnd)     :  5,177 units/s
Rnd.dot(Den)     :  5,101 units/s
Den.dot(Den)     :  516 units/s
{code}

{code}
INFO: DotProduct DenseVector 
sum = 48.442942s;
min = 1.554ms;
max = 32.55ms;
mean = 1.937717ms;
stdDev = 0.55081ms; 
Speed: 516.07104 UnitsProcessed/sec 3.0964262 MBytes/sec       
                            
INFO: DotProduct RandSparseVector 
sum = 4.69924s;
min = 0.116ms;
max = 24.211ms;
mean = 0.187969ms;
stdDev = 0.343685ms; 
Speed: 5320.0093 UnitsProcessed/sec 31.920053 MBytes/sec 
                                  
INFO: DotProduct SeqSparseVector 
sum = 0.390877s;
min = 0.012ms;
max = 2.698ms;
mean = 0.015635ms;
stdDev = 0.037619ms; 
Speed: 63958.742 UnitsProcessed/sec 383.7524 MBytes/sec       
                            
INFO: DotProduct Dense.dot(Rand) 
sum = 4.828592s;
min = 0.137ms;
max = 4.09ms;
mean = 0.193143ms;
stdDev = 0.052169ms; 
Speed: 5177.4927 UnitsProcessed/sec 31.064955 MBytes/sec   
                                
INFO: DotProduct Dense.dot(Seq) 
sum = 0.823286s;
min = 0.0ms;
max = 4.606ms;
mean = 0.032931ms;
stdDev = 0.03774ms; 
Speed: 30366.117 UnitsProcessed/sec 182.1967 MBytes/sec   
                                
INFO: DotProduct Rand.dot(Dense) 
sum = 4.900044s;
min = 0.14ms;
max = 3.969ms;
mean = 0.196001ms;
stdDev = 0.056772ms; 
Speed: 5101.995 UnitsProcessed/sec 30.61197 MBytes/sec    
                               
INFO: DotProduct Rand.dot(Seq) 
sum = 0.640713s;
min = 0.0ms;
max = 2.253ms;
mean = 0.025628ms;
stdDev = 0.041805ms; 
Speed: 39019.027 UnitsProcessed/sec 234.11417 MBytes/sec         
                          
INFO: DotProduct Seq.dot(Dense) 
sum = 0.361031s;
min = 0.0ms;
max = 4.63ms;
mean = 0.014441ms;
stdDev = 0.040413ms; 
Speed: 69246.13 UnitsProcessed/sec 415.47675 MBytes/sec   
                                
INFO: DotProduct Seq.dot(Rand) 
sum = 0.503642s;
min = 0.0090ms;
max = 5.203ms;
mean = 0.020145ms;
stdDev = 0.05134ms; 
Speed: 49638.434 UnitsProcessed/sec 297.8306 MBytes/sec   
{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