Andrew Palumbo (JIRA)
2017-03-26 04:05:42 UTC
Andrew Palumbo created MAHOUT-1960:
--------------------------------------
Summary: Flipped sign in the SparseSparseDrmTimer.mscala causes Desnse Matrix multiplication
Key: MAHOUT-1960
URL: https://issues.apache.org/jira/browse/MAHOUT-1960
Project: Mahout
Issue Type: Bug
Affects Versions: 0.13.0
Reporter: Andrew Palumbo
Assignee: Andrew Palumbo
Priority: Blocker
Fix For: 0.13.0
In {{SparseSparseDrmTimer.mscala}} with the signature:
{code}
def timeSparseDRMMMul(m: Int, n: Int, s: Int, para: Int, pctDense: Double = .20, seed: Long = 1234L): Long = {
{code}
the {{pctDense}} argument indicates the percent of nonZero elements in the matrix.
As is the code to produce a random DRM for testing is as follows:
{code}
val drmA = drmParallelizeEmpty(m , s, para).mapBlock(){
case (keys,block:Matrix) =>
val R = scala.util.Random
R.setSeed(seed)
val blockB = new SparseRowMatrix(block.nrow, block.ncol)
blockB := {x => if (R.nextDouble > pctDense) R.nextDouble else x }
(keys -> blockB)
}
{code)
The greater than sign in line:
{code}
blockB := {x => if (R.nextDouble > pctDense) R.nextDouble else x }
{code}
should be less than; i.e.:
{code}
blockB := {x => if (R.nextDouble < pctDense) R.nextDouble else x }
{code}
This incorrect sign produces matrices of Incorrect density and can cause OOM errors.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
--------------------------------------
Summary: Flipped sign in the SparseSparseDrmTimer.mscala causes Desnse Matrix multiplication
Key: MAHOUT-1960
URL: https://issues.apache.org/jira/browse/MAHOUT-1960
Project: Mahout
Issue Type: Bug
Affects Versions: 0.13.0
Reporter: Andrew Palumbo
Assignee: Andrew Palumbo
Priority: Blocker
Fix For: 0.13.0
In {{SparseSparseDrmTimer.mscala}} with the signature:
{code}
def timeSparseDRMMMul(m: Int, n: Int, s: Int, para: Int, pctDense: Double = .20, seed: Long = 1234L): Long = {
{code}
the {{pctDense}} argument indicates the percent of nonZero elements in the matrix.
As is the code to produce a random DRM for testing is as follows:
{code}
val drmA = drmParallelizeEmpty(m , s, para).mapBlock(){
case (keys,block:Matrix) =>
val R = scala.util.Random
R.setSeed(seed)
val blockB = new SparseRowMatrix(block.nrow, block.ncol)
blockB := {x => if (R.nextDouble > pctDense) R.nextDouble else x }
(keys -> blockB)
}
{code)
The greater than sign in line:
{code}
blockB := {x => if (R.nextDouble > pctDense) R.nextDouble else x }
{code}
should be less than; i.e.:
{code}
blockB := {x => if (R.nextDouble < pctDense) R.nextDouble else x }
{code}
This incorrect sign produces matrices of Incorrect density and can cause OOM errors.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)