You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "yuhao yang (JIRA)" <ji...@apache.org> on 2015/01/26 10:06:34 UTC

[jira] [Updated] (SPARK-5406) LocalLAPACK mode in RowMatrix.computeSVD should have much smaller upper bound

     [ https://issues.apache.org/jira/browse/SPARK-5406?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

yuhao yang updated SPARK-5406:
------------------------------
    Description: 
In RowMatrix.computeSVD, under LocalLAPACK mode, the code would invoke brzSvd. Yet breeze svd for dense matrix has latent constraint. In it's implementation
(https://github.com/scalanlp/breeze/blob/master/math/src/main/scala/breeze/linalg/functions/svd.scala):

      val workSize = ( 3
        * scala.math.min(m, n)
        * scala.math.min(m, n)
        + scala.math.max(scala.math.max(m, n), 4 * scala.math.min(m, n)
          * scala.math.min(m, n) + 4 * scala.math.min(m, n))
      )
      val work = new Array[Double](workSize)

as a result, column num must satisfy 7 * n * n + 4 * n < Int.MaxValue
thus, n < 17515.

This jira is only the first step. If possbile, I hope spark can handle matrix computation up to 80K * 80K.


  was:
In RowMatrix.computeSVD, under LocalLAPACK mode, the code would invoke brzSvd. Yet breeze svd for dense matrix has latent constraint. In it's implementation:

      val workSize = ( 3
        * scala.math.min(m, n)
        * scala.math.min(m, n)
        + scala.math.max(scala.math.max(m, n), 4 * scala.math.min(m, n)
          * scala.math.min(m, n) + 4 * scala.math.min(m, n))
      )
      val work = new Array[Double](workSize)

as a result, column num must satisfy 7 * n * n + 4 * n < Int.MaxValue
thus, n < 17515.

This jira is only the first step. If possbile, I hope spark can handle matrix computation up to 80K * 80K.



> LocalLAPACK mode in RowMatrix.computeSVD should have much smaller upper bound
> -----------------------------------------------------------------------------
>
>                 Key: SPARK-5406
>                 URL: https://issues.apache.org/jira/browse/SPARK-5406
>             Project: Spark
>          Issue Type: Bug
>          Components: MLlib
>    Affects Versions: 1.2.0
>         Environment: centos, others should be similar
>            Reporter: yuhao yang
>            Priority: Minor
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> In RowMatrix.computeSVD, under LocalLAPACK mode, the code would invoke brzSvd. Yet breeze svd for dense matrix has latent constraint. In it's implementation
> (https://github.com/scalanlp/breeze/blob/master/math/src/main/scala/breeze/linalg/functions/svd.scala):
>       val workSize = ( 3
>         * scala.math.min(m, n)
>         * scala.math.min(m, n)
>         + scala.math.max(scala.math.max(m, n), 4 * scala.math.min(m, n)
>           * scala.math.min(m, n) + 4 * scala.math.min(m, n))
>       )
>       val work = new Array[Double](workSize)
> as a result, column num must satisfy 7 * n * n + 4 * n < Int.MaxValue
> thus, n < 17515.
> This jira is only the first step. If possbile, I hope spark can handle matrix computation up to 80K * 80K.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org