Hi,

The BlockMatrix multiplication should be much more efficient on the current
master (and will be available with Spark 1.6). Could you please give that a
try if you have the chance?

Thanks,
Burak

On Fri, Nov 13, 2015 at 10:11 AM, Sabarish Sasidharan <
sabarish.sasidha...@manthan.com> wrote:

> Hi Eilidh
>
> Because you are multiplying with the transpose you don't have  to
> necessarily build the right side of the matrix. I hope you see that. You
> can broadcast blocks of the indexed row matrix to itself and achieve the
> multiplication.
>
> But for similarity computation you might want to use some approach like
> locality sensitive hashing first to identify a bunch of similar customers
> and then apply cosine similarity on that narrowed down list. That would
> scale much better than matrix multiplication. You could try the following
> options for the same.
>
> https://github.com/soundcloud/cosine-lsh-join-spark
> http://spark-packages.org/package/tdebatty/spark-knn-graphs
> https://github.com/marufaytekin/lsh-spark
>
> Regards
> Sab
> Hi Sab,
>
> Thanks for your response. We’re thinking of trying a bigger cluster,
> because we just started with 2 nodes. What we really want to know is
> whether the code will scale up with larger matrices and more nodes. I’d be
> interested to hear how large a matrix multiplication you managed to do?
>
> Is there an alternative you’d recommend for calculating similarity over a
> large dataset?
>
> Thanks,
> Eilidh
>
> On 13 Nov 2015, at 09:55, Sabarish Sasidharan <
> sabarish.sasidha...@manthan.com> wrote:
>
> We have done this by blocking but without using BlockMatrix. We used our
> own blocking mechanism because BlockMatrix didn't exist in Spark 1.2. What
> is the size of your block? How much memory are you giving to the executors?
> I assume you are running on YARN, if so you would want to make sure your
> yarn executor memory overhead is set to a higher value than default.
>
> Just curious, could you also explain why you need matrix multiplication
> with transpose? Smells like similarity computation.
>
> Regards
> Sab
>
> On Thu, Nov 12, 2015 at 7:27 PM, Eilidh Troup <e.tr...@epcc.ed.ac.uk>
> wrote:
>
>> Hi,
>>
>> I’m trying to multiply a large squarish matrix with its transpose.
>> Eventually I’d like to work with matrices of size 200,000 by 500,000, but
>> I’ve started off first with 100 by 100 which was fine, and then with 10,000
>> by 10,000 which failed with an out of memory exception.
>>
>> I used MLlib and BlockMatrix and tried various block sizes, and also
>> tried switching disk serialisation on.
>>
>> We are running on a small cluster, using a CSV file in HDFS as the input
>> data.
>>
>> Would anyone with experience of multiplying large, dense matrices in
>> spark be able to comment on what to try to make this work?
>>
>> Thanks,
>> Eilidh
>>
>>
>> --
>> The University of Edinburgh is a charitable body, registered in
>> Scotland, with registration number SC005336.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscr...@spark.apache.org
>> For additional commands, e-mail: user-h...@spark.apache.org
>>
>>
>
>
> --
>
> Architect - Big Data
> Ph: +91 99805 99458
>
> Manthan Systems | *Company of the year - Analytics (2014 Frost and
> Sullivan India ICT)*
> +++
>
>
>
> The University of Edinburgh is a charitable body, registered in
> Scotland, with registration number SC005336.
>
>

Reply via email to