[ https://issues.apache.org/jira/browse/MAHOUT-300?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12836468#action_12836468 ]
Jake Mannix commented on MAHOUT-300: ------------------------------------ Ok, went away... probably a case of pebkac {code} org.apache.mahout.benchmark.VectorBenchmarks -vs 50000 -sp 1000 -nv 50 -l 100 -no 5 Feb 21, 2010 2:43:06 PM org.slf4j.impl.JCLLoggerAdapter info INFO: Create (copy) DenseVector nCalls = 5000; sumTime = 3.585996s; minTime = 0.12ms; maxTime = 54.331ms; meanTime = 0.717199ms; stdDevTime = 3.823725ms; Speed: 1394.3127 UnitsProcessed/sec 836.58765 MBytes/sec Feb 21, 2010 2:43:07 PM org.slf4j.impl.JCLLoggerAdapter info INFO: Create (copy) RandomAccessSparseVector nCalls = 5000; sumTime = 0.953957s; minTime = 0.115ms; maxTime = 97.032ms; meanTime = 0.190791ms; stdDevTime = 1.489048ms; Speed: 5241.326 UnitsProcessed/sec 3144.796 MBytes/sec Feb 21, 2010 2:43:08 PM org.slf4j.impl.JCLLoggerAdapter info INFO: Create (copy) SequentialAccessSparseVector nCalls = 5000; sumTime = 0.278149s; minTime = 0.0090ms; maxTime = 8.032ms; meanTime = 0.055629ms; stdDevTime = 0.149567ms; Speed: 17975.977 UnitsProcessed/sec 10785.587 MBytes/sec Feb 21, 2010 2:43:11 PM org.slf4j.impl.JCLLoggerAdapter info INFO: Create (incrementally) DenseVector nCalls = 5000; sumTime = 0.059921s; minTime = 0.0040ms; maxTime = 0.251ms; meanTime = 0.011984ms; stdDevTime = 0.009846ms; Speed: 83443.195 UnitsProcessed/sec 50065.92 MBytes/sec Feb 21, 2010 2:43:12 PM org.slf4j.impl.JCLLoggerAdapter info INFO: Create (incrementally) RandomAccessSparseVector nCalls = 5000; sumTime = 0.268465s; minTime = 0.021ms; maxTime = 3.14ms; meanTime = 0.053693ms; stdDevTime = 0.047671ms; Speed: 18624.402 UnitsProcessed/sec 11174.642 MBytes/sec Feb 21, 2010 2:43:15 PM org.slf4j.impl.JCLLoggerAdapter info INFO: Create (incrementally) SequentialAccessSparseVector nCalls = 5000; sumTime = 2.172348s; minTime = 0.356ms; maxTime = 6.754ms; meanTime = 0.434469ms; stdDevTime = 0.198236ms; Speed: 2301.657 UnitsProcessed/sec 1380.9943 MBytes/sec Feb 21, 2010 2:43:18 PM org.slf4j.impl.JCLLoggerAdapter info INFO: Clone DenseVector nCalls = 5000; sumTime = 3.192205s; minTime = 0.211ms; maxTime = 517.68ms; meanTime = 0.638441ms; stdDevTime = 7.573187ms; Speed: 1566.3154 UnitsProcessed/sec 939.78925 MBytes/sec Feb 21, 2010 2:43:18 PM org.slf4j.impl.JCLLoggerAdapter info INFO: Clone RandomAccessSparseVector nCalls = 5000; sumTime = 0.521343s; minTime = 0.048ms; maxTime = 22.281ms; meanTime = 0.104268ms; stdDevTime = 0.693174ms; Speed: 9590.614 UnitsProcessed/sec 5754.369 MBytes/sec Feb 21, 2010 2:43:19 PM org.slf4j.impl.JCLLoggerAdapter info INFO: Clone SequentialAccessSparseVector nCalls = 5000; sumTime = 0.56215s; minTime = 0.016ms; maxTime = 20.333ms; meanTime = 0.11243ms; stdDevTime = 0.70505ms; Speed: 8894.423 UnitsProcessed/sec 5336.654 MBytes/sec Feb 21, 2010 2:43:20 PM org.slf4j.impl.JCLLoggerAdapter info INFO: DotProduct DenseVector sum = -5423.620877902339 nCalls = 5000; sumTime = 1.07412s; minTime = 0.137ms; maxTime = 13.189ms; meanTime = 0.214824ms; stdDevTime = 0.228647ms; Speed: 4654.9736 UnitsProcessed/sec 2792.9841 MBytes/sec Feb 21, 2010 2:43:21 PM org.slf4j.impl.JCLLoggerAdapter info INFO: DotProduct RandomAccessSparseVector sum = -5564.910676620138 nCalls = 5000; sumTime = 0.890045s; minTime = 0.051ms; maxTime = 316.842ms; meanTime = 0.178009ms; stdDevTime = 4.501319ms; Speed: 5617.6934 UnitsProcessed/sec 3370.6162 MBytes/sec Feb 21, 2010 2:43:21 PM org.slf4j.impl.JCLLoggerAdapter info INFO: DotProduct SequentialAccessSparseVector sum = -5233.180796033902 nCalls = 5000; sumTime = 0.215025s; minTime = 0.026ms; maxTime = 1.744ms; meanTime = 0.043005ms; stdDevTime = 0.084628ms; Speed: 23253.111 UnitsProcessed/sec 13951.867 MBytes/sec Feb 21, 2010 2:43:29 PM org.slf4j.impl.JCLLoggerAdapter info INFO: org.apache.mahout.common.distance.CosineDistanceMeasure DenseVector minDistance = 4475.855202291762 nCalls = 5000; sumTime = 7.735503s; minTime = 1.368ms; maxTime = 9.961ms; meanTime = 1.5471ms; stdDevTime = 0.198466ms; Speed: 646.37036 UnitsProcessed/sec 387.82224 MBytes/sec Feb 21, 2010 2:43:35 PM org.slf4j.impl.JCLLoggerAdapter info INFO: org.apache.mahout.common.distance.CosineDistanceMeasure RandomAccessSparseVector minDistance = 4476.713744856023 nCalls = 5000; sumTime = 6.548142s; minTime = 1.175ms; maxTime = 16.329ms; meanTime = 1.309628ms; stdDevTime = 0.43387ms; Speed: 763.5754 UnitsProcessed/sec 458.14523 MBytes/sec Feb 21, 2010 2:43:37 PM org.slf4j.impl.JCLLoggerAdapter info INFO: org.apache.mahout.common.distance.CosineDistanceMeasure SequentialAccessSparseVector minDistance = 4476.265335106043 nCalls = 5000; sumTime = 2.016846s; minTime = 0.35ms; maxTime = 2.509ms; meanTime = 0.403369ms; stdDevTime = 0.068028ms; Speed: 2479.1184 UnitsProcessed/sec 1487.4711 MBytes/sec Feb 21, 2010 2:43:41 PM org.slf4j.impl.JCLLoggerAdapter info INFO: org.apache.mahout.common.distance.SquaredEuclideanDistanceMeasure DenseVector minDistance = 8484886.956608202 nCalls = 5000; sumTime = 3.524636s; minTime = 0.494ms; maxTime = 15.583ms; meanTime = 0.704927ms; stdDevTime = 0.299524ms; Speed: 1418.5862 UnitsProcessed/sec 851.15173 MBytes/sec Feb 21, 2010 2:43:44 PM org.slf4j.impl.JCLLoggerAdapter info INFO: org.apache.mahout.common.distance.SquaredEuclideanDistanceMeasure RandomAccessSparseVector minDistance = 8511604.21909139 nCalls = 5000; sumTime = 2.813478s; minTime = 0.358ms; maxTime = 12.641ms; meanTime = 0.562695ms; stdDevTime = 0.390631ms; Speed: 1777.1598 UnitsProcessed/sec 1066.2959 MBytes/sec Feb 21, 2010 2:43:46 PM org.slf4j.impl.JCLLoggerAdapter info INFO: org.apache.mahout.common.distance.SquaredEuclideanDistanceMeasure SequentialAccessSparseVector minDistance = 8493975.604847223 nCalls = 5000; sumTime = 2.581409s; minTime = 0.107ms; maxTime = 6.111ms; meanTime = 0.516281ms; stdDevTime = 0.185559ms; Speed: 1936.9266 UnitsProcessed/sec 1162.156 MBytes/sec Feb 21, 2010 2:43:52 PM org.slf4j.impl.JCLLoggerAdapter info INFO: org.apache.mahout.common.distance.EuclideanDistanceMeasure DenseVector minDistance = 195394.60246379836 nCalls = 5000; sumTime = 5.305836s; minTime = 0.498ms; maxTime = 15.373ms; meanTime = 1.061167ms; stdDevTime = 0.424037ms; Speed: 942.3585 UnitsProcessed/sec 565.41516 MBytes/sec Feb 21, 2010 2:43:55 PM org.slf4j.impl.JCLLoggerAdapter info INFO: org.apache.mahout.common.distance.EuclideanDistanceMeasure RandomAccessSparseVector minDistance = 195702.05210046135 nCalls = 5000; sumTime = 3.496844s; minTime = 0.322ms; maxTime = 9.142ms; meanTime = 0.699368ms; stdDevTime = 0.218266ms; Speed: 1429.8607 UnitsProcessed/sec 857.91644 MBytes/sec Feb 21, 2010 2:43:58 PM org.slf4j.impl.JCLLoggerAdapter info INFO: org.apache.mahout.common.distance.EuclideanDistanceMeasure SequentialAccessSparseVector minDistance = 195499.20347174452 nCalls = 5000; sumTime = 2.833197s; minTime = 0.08ms; maxTime = 1.996ms; meanTime = 0.566639ms; stdDevTime = 0.15453ms; Speed: 1764.7908 UnitsProcessed/sec 1058.8745 MBytes/sec Feb 21, 2010 2:44:12 PM org.slf4j.impl.JCLLoggerAdapter info INFO: org.apache.mahout.common.distance.ManhattanDistanceMeasure DenseVector minDistance = 6904798.339888407 nCalls = 5000; sumTime = 14.467698s; minTime = 2.166ms; maxTime = 18.034ms; meanTime = 2.893539ms; stdDevTime = 1.357886ms; Speed: 345.59747 UnitsProcessed/sec 207.3585 MBytes/sec Feb 21, 2010 2:44:21 PM org.slf4j.impl.JCLLoggerAdapter info INFO: org.apache.mahout.common.distance.ManhattanDistanceMeasure RandomAccessSparseVector minDistance = 6908061.128455167 nCalls = 5000; sumTime = 8.068168s; minTime = 1.329ms; maxTime = 40.717ms; meanTime = 1.613633ms; stdDevTime = 0.89013ms; Speed: 619.71936 UnitsProcessed/sec 371.83163 MBytes/sec Feb 21, 2010 2:44:42 PM org.slf4j.impl.JCLLoggerAdapter info INFO: org.apache.mahout.common.distance.ManhattanDistanceMeasure SequentialAccessSparseVector minDistance = 6909161.286918712 nCalls = 5000; sumTime = 21.172712s; minTime = 3.703ms; maxTime = 32.462ms; meanTime = 4.234542ms; stdDevTime = 0.84691ms; Speed: 236.15303 UnitsProcessed/sec 141.69182 MBytes/sec Feb 21, 2010 2:44:50 PM org.slf4j.impl.JCLLoggerAdapter info INFO: org.apache.mahout.common.distance.TanimotoDistanceMeasure DenseVector minDistance = 4487.889064527803 nCalls = 5000; sumTime = 8.488277s; minTime = 1.402ms; maxTime = 11.97ms; meanTime = 1.697655ms; stdDevTime = 0.269871ms; Speed: 589.04767 UnitsProcessed/sec 353.42862 MBytes/sec Feb 21, 2010 2:44:56 PM org.slf4j.impl.JCLLoggerAdapter info INFO: org.apache.mahout.common.distance.TanimotoDistanceMeasure RandomAccessSparseVector minDistance = 4488.320476909599 nCalls = 5000; sumTime = 5.47074s; minTime = 0.977ms; maxTime = 10.987ms; meanTime = 1.094148ms; stdDevTime = 0.368053ms; Speed: 913.9531 UnitsProcessed/sec 548.3719 MBytes/sec Feb 21, 2010 2:44:59 PM org.slf4j.impl.JCLLoggerAdapter info INFO: org.apache.mahout.common.distance.TanimotoDistanceMeasure SequentialAccessSparseVector minDistance = 4488.154156919953 nCalls = 5000; sumTime = 3.543727s; minTime = 0.597ms; maxTime = 8.928ms; meanTime = 0.708745ms; stdDevTime = 0.161759ms; Speed: 1410.9438 UnitsProcessed/sec 846.56635 MBytes/sec Feb 21, 2010 2:44:59 PM org.slf4j.impl.JCLLoggerAdapter info INFO: BenchMarks DenseVector RandomAccessSparseVector SequentialAccessSparseVector Clone nCalls = 5000; nCalls = 5000; nCalls = 5000; sumTime = 3.192205s; sumTime = 0.521343s; sumTime = 0.56215s; minTime = 0.211ms; minTime = 0.048ms; minTime = 0.016ms; maxTime = 517.68ms; maxTime = 22.281ms; maxTime = 20.333ms; meanTime = 0.638441ms; meanTime = 0.104268ms; meanTime = 0.11243ms; stdDevTime = 7.573187ms; stdDevTime = 0.693174ms; stdDevTime = 0.70505ms; Speed = 1566.3154 /sec Speed = 9590.614 /sec Speed = 8894.423 /sec Rate = 939.78925 MB/s Rate = 5754.369 MB/s Rate = 5336.654 MB/s Create (copy) nCalls = 5000; nCalls = 5000; nCalls = 5000; sumTime = 3.585996s; sumTime = 0.953957s; sumTime = 0.278149s; minTime = 0.12ms; minTime = 0.115ms; minTime = 0.0090ms; maxTime = 54.331ms; maxTime = 97.032ms; maxTime = 8.032ms; meanTime = 0.717199ms; meanTime = 0.190791ms; meanTime = 0.055629ms; stdDevTime = 3.823725ms; stdDevTime = 1.489048ms; stdDevTime = 0.149567ms; Speed = 1394.3127 /sec Speed = 5241.326 /sec Speed = 17975.977 /sec Rate = 836.58765 MB/s Rate = 3144.796 MB/s Rate = 10785.587 MB/s Create (incrementally) nCalls = 5000; nCalls = 5000; nCalls = 5000; sumTime = 0.059921s; sumTime = 0.268465s; sumTime = 2.172348s; minTime = 0.0040ms; minTime = 0.021ms; minTime = 0.356ms; maxTime = 0.251ms; maxTime = 3.14ms; maxTime = 6.754ms; meanTime = 0.011984ms; meanTime = 0.053693ms; meanTime = 0.434469ms; stdDevTime = 0.009846ms; stdDevTime = 0.047671ms; stdDevTime = 0.198236ms; Speed = 83443.195 /sec Speed = 18624.402 /sec Speed = 2301.657 /sec Rate = 50065.92 MB/s Rate = 11174.642 MB/s Rate = 1380.9943 MB/s DotProduct nCalls = 5000; nCalls = 5000; nCalls = 5000; sumTime = 1.07412s; sumTime = 0.890045s; sumTime = 0.215025s; minTime = 0.137ms; minTime = 0.051ms; minTime = 0.026ms; maxTime = 13.189ms; maxTime = 316.842ms; maxTime = 1.744ms; meanTime = 0.214824ms; meanTime = 0.178009ms; meanTime = 0.043005ms; stdDevTime = 0.228647ms; stdDevTime = 4.501319ms; stdDevTime = 0.084628ms; Speed = 4654.9736 /sec Speed = 5617.6934 /sec Speed = 23253.111 /sec Rate = 2792.9841 MB/s Rate = 3370.6162 MB/s Rate = 13951.867 MB/s org.apache.mahout.common.distance.CosineDistanceMeasure nCalls = 5000; nCalls = 5000; nCalls = 5000; sumTime = 7.735503s; sumTime = 6.548142s; sumTime = 2.016846s; minTime = 1.368ms; minTime = 1.175ms; minTime = 0.35ms; maxTime = 9.961ms; maxTime = 16.329ms; maxTime = 2.509ms; meanTime = 1.5471ms; meanTime = 1.309628ms; meanTime = 0.403369ms; stdDevTime = 0.198466ms; stdDevTime = 0.43387ms; stdDevTime = 0.068028ms; Speed = 646.37036 /sec Speed = 763.5754 /sec Speed = 2479.1184 /sec Rate = 387.82224 MB/s Rate = 458.14523 MB/s Rate = 1487.4711 MB/s org.apache.mahout.common.distance.EuclideanDistanceMeasure nCalls = 5000; nCalls = 5000; nCalls = 5000; sumTime = 5.305836s; sumTime = 3.496844s; sumTime = 2.833197s; minTime = 0.498ms; minTime = 0.322ms; minTime = 0.08ms; maxTime = 15.373ms; maxTime = 9.142ms; maxTime = 1.996ms; meanTime = 1.061167ms; meanTime = 0.699368ms; meanTime = 0.566639ms; stdDevTime = 0.424037ms; stdDevTime = 0.218266ms; stdDevTime = 0.15453ms; Speed = 942.3585 /sec Speed = 1429.8607 /sec Speed = 1764.7908 /sec Rate = 565.41516 MB/s Rate = 857.91644 MB/s Rate = 1058.8745 MB/s org.apache.mahout.common.distance.ManhattanDistanceMeasure nCalls = 5000; nCalls = 5000; nCalls = 5000; sumTime = 14.467698s; sumTime = 8.068168s; sumTime = 21.172712s; minTime = 2.166ms; minTime = 1.329ms; minTime = 3.703ms; maxTime = 18.034ms; maxTime = 40.717ms; maxTime = 32.462ms; meanTime = 2.893539ms; meanTime = 1.613633ms; meanTime = 4.234542ms; stdDevTime = 1.357886ms; stdDevTime = 0.89013ms; stdDevTime = 0.84691ms; Speed = 345.59747 /sec Speed = 619.71936 /sec Speed = 236.15303 /sec Rate = 207.3585 MB/s Rate = 371.83163 MB/s Rate = 141.69182 MB/s org.apache.mahout.common.distance.SquaredEuclideanDistanceMeasure nCalls = 5000; nCalls = 5000; nCalls = 5000; sumTime = 3.524636s; sumTime = 2.813478s; sumTime = 2.581409s; minTime = 0.494ms; minTime = 0.358ms; minTime = 0.107ms; maxTime = 15.583ms; maxTime = 12.641ms; maxTime = 6.111ms; meanTime = 0.704927ms; meanTime = 0.562695ms; meanTime = 0.516281ms; stdDevTime = 0.299524ms; stdDevTime = 0.390631ms; stdDevTime = 0.185559ms; Speed = 1418.5862 /sec Speed = 1777.1598 /sec Speed = 1936.9266 /sec Rate = 851.15173 MB/s Rate = 1066.2959 MB/s Rate = 1162.156 MB/s org.apache.mahout.common.distance.TanimotoDistanceMeasure nCalls = 5000; nCalls = 5000; nCalls = 5000; sumTime = 8.488277s; sumTime = 5.47074s; sumTime = 3.543727s; minTime = 1.402ms; minTime = 0.977ms; minTime = 0.597ms; maxTime = 11.97ms; maxTime = 10.987ms; maxTime = 8.928ms; meanTime = 1.697655ms; meanTime = 1.094148ms; meanTime = 0.708745ms; stdDevTime = 0.269871ms; stdDevTime = 0.368053ms; stdDevTime = 0.161759ms; Speed = 589.04767 /sec Speed = 913.9531 /sec Speed = 1410.9438 /sec Rate = 353.42862 MB/s Rate = 548.3719 MB/s Rate = 846.56635 MB/s Process finished with exit code 0 {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.