[
https://issues.apache.org/jira/browse/MAHOUT-300?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12836460#action_12836460
]
Jake Mannix commented on MAHOUT-300:
------------------------------------
Another run, even more sparse: cardinality: 500,000, density: 100, only 50
vectors this time, because I was running out of memory, 100 loops:
{code}INFO:
BenchMarks DenseVector
RandomAccessSparseVector SequentialAccessSparseVector
Clone
nCalls = 5000; nCalls = 5000;
nCalls = 5000;
sumTime = 41.899077s; sumTime =
6.736452s; sumTime = 6.268572s;
minTime = 4.593ms; minTime = 0.453ms;
minTime = 0.415ms;
maxTime = 186.272ms; maxTime =
183.524ms; maxTime = 187.254ms;
meanTime = 8.379815ms; meanTime =
1.34729ms; meanTime = 1.253714ms;
stdDevTime = 11.260108ms; stdDevTime =
4.647302ms; stdDevTime = 4.992136ms;
Speed = 119.334366 /sec Speed = 742.23047
/sec Speed = 797.6298 /sec
Rate = -514.0831 MB/s Rate = -3197.471
MB/s Rate = -3436.127 MB/s
Create (copy)
nCalls = 5000; nCalls = 5000;
nCalls = 5000;
sumTime = 33.213833s; sumTime = 0.14521s;
sumTime = 0.035935s;
minTime = 1.643ms; minTime = 0.011ms;
minTime = 0.0040ms;
maxTime = 139.441ms; maxTime = 18.174ms;
maxTime = 1.431ms;
meanTime = 6.642766ms; meanTime =
0.029042ms; meanTime = 0.007187ms;
stdDevTime = 11.24469ms; stdDevTime =
0.349996ms; stdDevTime = 0.030313ms;
Speed = 150.53969 /sec Speed = 34432.89
/sec Speed = 139140.11 /sec
Rate = -648.5132 MB/s Rate = -148334.2
MB/s Rate = -599404.75 MB/s
Create (incrementally)
nCalls = 5000; nCalls = 5000;
nCalls = 5000;
sumTime = 0.04538s; sumTime =
0.035935s; sumTime = 0.089474s;
minTime = 0.0ms; minTime = 0.0ms;
minTime = 0.0ms;
maxTime = 0.172ms; maxTime = 1.201ms;
maxTime = 0.612ms;
meanTime = 0.009076ms; meanTime =
0.007187ms; meanTime = 0.017894ms;
stdDevTime = 0.006338ms; stdDevTime =
0.023144ms; stdDevTime = 0.016724ms;
Speed = 110180.695 /sec Speed = 139140.11
/sec Speed = 55882.156 /sec
Rate = -474649.8 MB/s Rate = -599404.75
MB/s Rate = -240735.95 MB/s
DotProduct
nCalls = 5000; nCalls = 5000;
nCalls = 5000;
sumTime = 5.036773s; sumTime =
0.510658s; sumTime = 0.063884s;
minTime = 0.848ms; minTime = 0.047ms;
minTime = 0.0020ms;
maxTime = 7.558ms; maxTime = 8.919ms;
maxTime = 0.325ms;
meanTime = 1.007354ms; meanTime =
0.102131ms; meanTime = 0.012776ms;
stdDevTime = 0.203069ms; stdDevTime =
0.19957ms; stdDevTime = 0.024669ms;
Speed = 992.6991 /sec Speed = 9791.289
/sec Speed = 78266.86 /sec
Rate = -4276.47 MB/s Rate = -42180.11
MB/s Rate = -337167.5 MB/s
org.apache.mahout.common.distance.CosineDistanceMeasure
nCalls = 5000; nCalls = 5000;
nCalls = 5000;
sumTime = 29.883311s; sumTime =
2.141407s; sumTime = 0.112809s;
minTime = 5.362ms; minTime = 0.362ms;
minTime = 0.015ms;
maxTime = 22.912ms; maxTime = 9.322ms;
maxTime = 14.899ms;
meanTime = 5.976662ms; meanTime =
0.428281ms; meanTime = 0.022561ms;
stdDevTime = 0.764279ms; stdDevTime =
0.133002ms; stdDevTime = 0.216971ms;
Speed = 167.31747 /sec Speed = 2334.9133
/sec Speed = 44322.703 /sec
Rate = -720.7906 MB/s Rate = -10058.625
MB/s Rate = -190938.75 MB/s
org.apache.mahout.common.distance.EuclideanDistanceMeasure
nCalls = 5000; nCalls = 5000;
nCalls = 5000;
sumTime = 11.211339s; sumTime =
0.830761s; sumTime = 0.100585s;
minTime = 1.791ms; minTime = 0.116ms;
minTime = 0.0040ms;
maxTime = 5.327ms; maxTime = 2.808ms;
maxTime = 0.235ms;
meanTime = 2.242267ms; meanTime =
0.166152ms; meanTime = 0.020117ms;
stdDevTime = 0.206909ms; stdDevTime =
0.050465ms; stdDevTime = 0.006688ms;
Speed = 445.97705 /sec Speed = 6018.5776
/sec Speed = 49709.2 /sec
Rate = -1921.2344 MB/s Rate = -25927.562
MB/s Rate = -214143.36 MB/s
org.apache.mahout.common.distance.ManhattanDistanceMeasure
nCalls = 5000; nCalls = 5000;
nCalls = 5000;
sumTime = 79.638441s; sumTime =
10.13851s; sumTime = 7.503073s;
minTime = 13.119ms; minTime = 1.309ms;
minTime = 0.756ms;
maxTime = 42.521ms; maxTime = 30.281ms;
maxTime = 19.813ms;
meanTime = 15.927688ms; meanTime =
2.027702ms; meanTime = 1.500614ms;
stdDevTime = 3.771848ms; stdDevTime =
1.900016ms; stdDevTime = 1.66222ms;
Speed = 62.783752 /sec Speed = 493.1691
/sec Speed = 666.3936 /sec
Rate = -270.4675 MB/s Rate = -2124.534
MB/s Rate = -2870.7717 MB/s
org.apache.mahout.common.distance.SquaredEuclideanDistanceMeasure
nCalls = 5000; nCalls = 5000;
nCalls = 5000;
sumTime = 9.871233s; sumTime = 0.82808s;
sumTime = 0.106835s;
minTime = 1.758ms; minTime = 0.108ms;
minTime = 0.0040ms;
maxTime = 11.031ms; maxTime = 1.151ms;
maxTime = 2.86ms;
meanTime = 1.974246ms; meanTime =
0.165616ms; meanTime = 0.021367ms;
stdDevTime = 0.254992ms; stdDevTime =
0.044317ms; stdDevTime = 0.04582ms;
Speed = 506.52234 /sec Speed = 6038.064
/sec Speed = 46801.14 /sec
Rate = -2182.0586 MB/s Rate = -26011.508
MB/s Rate = -201615.66 MB/s
org.apache.mahout.common.distance.TanimotoDistanceMeasure
nCalls = 5000; nCalls = 5000;
nCalls = 5000;
sumTime = 32.850508s; sumTime =
2.129189s; sumTime = 0.142919s;
minTime = 5.336ms; minTime = 0.353ms;
minTime = 0.0ms;
maxTime = 68.024ms; maxTime = 20.729ms;
maxTime = 0.407ms;
meanTime = 6.570101ms; meanTime =
0.425837ms; meanTime = 0.028583ms;
stdDevTime = 2.417741ms; stdDevTime =
0.307561ms; stdDevTime = 0.023598ms;
Speed = 152.20465 /sec Speed = 2348.312
/sec Speed = 34984.848 /sec
Rate = -655.6857 MB/s Rate = -10116.345
MB/s Rate = -150712.0 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.