These are chat archives for elemental/chat

7th
Jan 2017
Jack Poulson
@poulson
Jan 07 2017 01:14
@cecborges_twitter The documentation is currently very behind due to many recent changes to the IPMs, sparse-direct solvers, etc.
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:17
@poulson Thanks for letting me. I noticed that you have LSQR implemented using matrices as input, do you have plans to implement it using functions as input?
Jack Poulson
@poulson
Jan 07 2017 01:18
I don't recall committing LSQR
do you have a link?
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:18
isn't your least squares function implementing LSQR? I thought I read that somewhere. Maybe I am wrong.
Jack Poulson
@poulson
Jan 07 2017 01:19
LeastSquares uses Flexible GMRES with the preconditioner being an iteratively-refined application of a sparse-direct solution to a nearby quasi-semidefinite problem
there is a note that Michael Saunders tends to use LSQR for this rather than FGMRES
I like GMRES(k) and FGMRES(k)
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:21
ah ok. my bad, I saw lsqr there and I thought that the implementation was using it. Sorry about that. But anyway, do you plan to implement LSQR using functions as input?
Jack Poulson
@poulson
Jan 07 2017 01:21
it would be nice but isn't in my critical path right now
I'm in the middle of refactoring the IPMs
a contribution would be welcome
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:24
I might implement that for my project. Unfortunately, I can't generate matrices. I implemented a randomized QR that can be changed to become a randomized SVD very easily that takes functions as input. I can send to you in case you want to clean it eventually and include in the code.
Jack Poulson
@poulson
Jan 07 2017 01:25
the best mechanism is to submit a Pull Request via GitHub and we can take it from there
I assume you are referring to randomized low-rank QR?
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:26
sure. I will talk with the boss here and see if it is ok to send.
I am
Jack Poulson
@poulson
Jan 07 2017 01:26
I thought you were in academia? ;-)
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:26
I am
Jack Poulson
@poulson
Jan 07 2017 01:26
you have to ask for permission to release open source?
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:26
I am at ICES. I worked with George
Jack Poulson
@poulson
Jan 07 2017 01:27
fair enough
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:27
I don't know if he wants to release it. I think he wants it. But I would not release it before asking him
Jack Poulson
@poulson
Jan 07 2017 01:27
ah, fair enough if it is existing project
I would worry more about whether Elemental is the right place to release rather than if it should be released though
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:29
It is a existing project. We are implementing FAIMS(method for solving inverse scattering problems) at 3D with several processors. BTW, why are you shipping elemental to use with openblas?
I am writing the entire method with elemental instead of Petsc.
Jack Poulson
@poulson
Jan 07 2017 01:30
What is wrong with OpenBLAS?
I assume you are implicitly asking why not BLIS?
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:30
yes
Jack Poulson
@poulson
Jan 07 2017 01:31
(the answer is that OpenBLAS is in more package managers and BLIS is harder to configure)
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:31
Also, I don't know if you had this problem, but if I run elemental using more than one processor with multiple threads it is breaking(with openblas). I can actually send you the error output.
I can run using mip with several processors, but if I don't set openblas_num_threads=1 I get some memory problems. Any ideas of what it can be?
Sorry if I look like an idiot in this one. It is just that I can't get it to work in any way possible.
Jack Poulson
@poulson
Jan 07 2017 01:36
What build configuration did you use?
There is no reason to feel ashamed.
Could you file a detailed GitHub issue?
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:37
I can. I am running some tests right now but I will do it tomorrow.
Jack Poulson
@poulson
Jan 07 2017 01:37
No worries.
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:37
Thanks for the help.
Jack Poulson
@poulson
Jan 07 2017 01:38
Btw, you may want to look at my randomized column pivoted QR
It includes some random projections and could be used as a template for contributing randomized QR
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:39
I will take a look. Is it committed to the website? The one that I implemented takes functions as input.
I need to use functions because my matrix vector multiplication actually is a integral operator.
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:43
I have also another question regarding the command resize for a a distributed matrix. I would expect it to work similarly to matlab, I mean if you have a 3 x3 matrix and try to resize to a 9x1 matrix, the command would stack the columns of the matrix. Is this what I should expect? I believe that in some of the col and row aligns it was not working like that.
Jack Poulson
@poulson
Jan 07 2017 01:43
the Gemm calls can be replaced with std::function calls similar to the way I implemented FGMRES
ah, that would be reshape
which does not exist in Elemental
at least, I don't think I ever implemented it
err, actually I did implement Reshape
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:44
I implemented using bind, instead of function, but the code is very similar
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:46
Ah ok. I actually made a copy of the matrix using <T,CIRC,CIRC> and them I used resize on this copy and this gives me the same as reshape.
DistMatrix<T,El::CIRC,El::CIRC> C_copy(C.Height(),C.Width(),g);
C_copy=C;
C_copy.Resize(C_copy.Height()*C_copy.Width(),1);
Jack Poulson
@poulson
Jan 07 2017 01:47
I would highly recommend calling Reshape instead
The CIRC,CIRC distribution puts the entire matrix on one process
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:48
Thanks I will do that, and it also saves me some trouble in having to change the distribution.
Jack Poulson
@poulson
Jan 07 2017 01:49
please feel free to ask any questions if you run into anymore road blocks
Carlos Borges
@cecborges_twitter
Jan 07 2017 01:50
thank you very much.
i started working on it last year but didn't find much material online.