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