Quantcast

GSoC 2017 project -- Speeding up tensor contraction in Octave

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

GSoC 2017 project -- Speeding up tensor contraction in Octave

Somesh Singh
Hi All

Tensor contraction is a widely used operation that comes up quite often when performing operations on tensors. It is widely used in many domains such as analysis of chemical compounds. There are a lot of ongoing efforts to speed-up tensor contraction.
Many of the softwares for numerical computation have sound implementations of tensor contraction. In this light, I believe it will be a good idea to have a fast implementation of tensor contraction in Octave for muti-core systems, since tensor contraction offers a lot of scope for parallelism. I would like to propose this as a project for GSoC 2017 and get involved with it.
Please share your thoughts on the suggestion.

Thanks and regards.  

- Somesh Singh
IIT Madras
India
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: GSoC 2017 project -- Speeding up tensor contraction in Octave

Colin Macdonald-2
On 28/02/17 00:58, Somesh Singh wrote:

> Tensor contraction is a widely used operation that comes up quite often
> when performing operations on tensors. It is widely used in many domains
> such as analysis of chemical compounds. There are a lot of ongoing
> efforts to speed-up tensor contraction.
> Many of the softwares for numerical computation have sound
> implementations of tensor contraction. In this light, I believe it will
> be a good idea to have a fast implementation of tensor contraction in
> Octave for muti-core systems, since tensor contraction offers a lot of
> scope for parallelism. I would like to propose this as a project for
> GSoC 2017 and get involved with it.
> Please share your thoughts on the suggestion.

That sounds interested.  However, the challenge will be in finding a
mentor.  At minimum, you'd have to demonstrate an operation that is slow
and how (specifically, with code) you would speed it up.

You might also look at the existing list of project ideas:

http://wiki.octave.org/Summer_of_Code_Project_Ideas

best,
Colin

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: GSoC 2017 project -- Speeding up tensor contraction in Octave

Somesh Singh
Hello Colin

Thanks for the reply.
Could you please help me with how to go about finding a mentor? Is there a set procedure that is needed to be followed? Who shall I pitch the idea to? Kindly let me know.

Thanks and regards.

- Somesh

On Wed, Mar 1, 2017 at 1:03 AM, Colin Macdonald <[hidden email]> wrote:
On 28/02/17 00:58, Somesh Singh wrote:
Tensor contraction is a widely used operation that comes up quite often
when performing operations on tensors. It is widely used in many domains
such as analysis of chemical compounds. There are a lot of ongoing
efforts to speed-up tensor contraction.
Many of the softwares for numerical computation have sound
implementations of tensor contraction. In this light, I believe it will
be a good idea to have a fast implementation of tensor contraction in
Octave for muti-core systems, since tensor contraction offers a lot of
scope for parallelism. I would like to propose this as a project for
GSoC 2017 and get involved with it.
Please share your thoughts on the suggestion.

That sounds interested.  However, the challenge will be in finding a mentor.  At minimum, you'd have to demonstrate an operation that is slow and how (specifically, with code) you would speed it up.

You might also look at the existing list of project ideas:

http://wiki.octave.org/Summer_of_Code_Project_Ideas

best,
Colin


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: GSoC 2017 project -- Speeding up tensor contraction in Octave

Colin Macdonald-2
On 01/03/17 04:47, Somesh Singh wrote:
> Could you please help me with how to go about finding a mentor? Is there
> a set procedure that is needed to be followed? Who shall I pitch the
> idea to? Kindly let me know.

Read the URL I sent, should have some suggestions: help us improve it if
it doesn't!  Start trying to fix some bugs etc.

Ideas should be pitched to the maillist.

p.s., please bottom post on this maillist.

Colin

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: GSoC 2017 project -- Speeding up tensor contraction in Octave

Susi Lehtola-2
In reply to this post by Somesh Singh
On 02/28/2017 12:58 AM, Somesh Singh wrote:

> Hi All
>
> Tensor contraction is a widely used operation that comes up quite often
> when performing operations on tensors. It is widely used in many domains
> such as analysis of chemical compounds. There are a lot of ongoing
> efforts to speed-up tensor contraction.
> Many of the softwares for numerical computation have sound
> implementations of tensor contraction. In this light, I believe it will
> be a good idea to have a fast implementation of tensor contraction in
> Octave for muti-core systems, since tensor contraction offers a lot of
> scope for parallelism. I would like to propose this as a project for
> GSoC 2017 and get involved with it.
> Please share your thoughts on the suggestion.

What would be the scope of this? Tensor contractions are typically
handled using BLAS calls by permuting the contracted indices to either
the start or the end, and then calling dgemv or dgemm to get the result.
These would be AFAIK pretty straightforward to loop-parallellize.

There are recent software developments that are able to do the tensor
contraction without the permutations, but these basically involve novel
implementations of BLAS...
--
-----------------------------------------------------------------------
Mr. Susi Lehtola, PhD             Chemist Postdoctoral Fellow
[hidden email]   Lawrence Berkeley National Laboratory
http://www.helsinki.fi/~jzlehtol  USA
-----------------------------------------------------------------------

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: GSoC 2017 project -- Speeding up tensor contraction in Octave

John W. Eaton
Administrator
On 03/02/2017 09:52 AM, Susi Lehtola wrote:

> On 02/28/2017 12:58 AM, Somesh Singh wrote:
>> Hi All
>>
>> Tensor contraction is a widely used operation that comes up quite often
>> when performing operations on tensors. It is widely used in many domains
>> such as analysis of chemical compounds. There are a lot of ongoing
>> efforts to speed-up tensor contraction.
>> Many of the softwares for numerical computation have sound
>> implementations of tensor contraction. In this light, I believe it will
>> be a good idea to have a fast implementation of tensor contraction in
>> Octave for muti-core systems, since tensor contraction offers a lot of
>> scope for parallelism. I would like to propose this as a project for
>> GSoC 2017 and get involved with it.
>> Please share your thoughts on the suggestion.
>
> What would be the scope of this? Tensor contractions are typically
> handled using BLAS calls by permuting the contracted indices to either
> the start or the end, and then calling dgemv or dgemm to get the result.
> These would be AFAIK pretty straightforward to loop-parallellize.
>
> There are recent software developments that are able to do the tensor
> contraction without the permutations, but these basically involve novel
> implementations of BLAS...

I agree.  To me, it doesn't seem like something that should be specific
to Octave.  It sounds like something that should be developed as a
fairly low-level library (like the BLAS or LAPACK libraries) and then we
would just use these functions in Octave.

jwe


Loading...