[
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.