Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Add TSVD #184

Open
wants to merge 18 commits into
base: master
Choose a base branch
from
Open

WIP: Add TSVD #184

wants to merge 18 commits into from

Conversation

rhl-
Copy link
Member

@rhl- rhl- commented Oct 18, 2016

I'm issuing this pull request to track progress on adding a Lanczos TSVD implementation to Elemental.

This may be slightly premature, so I am submitting a PR to track any work that is needed on this.

Added @andreasnoack and @jiahao. If you guys don't mind reviewing it would be much appreciated.

@rhl- rhl- added this to the Release 0.87 milestone Oct 18, 2016
const Real& A = Sk.Get(i,0);
const Real& B = S.Get(i,0);
Output( "Sk = ", A, "SVD: S_k", B);
auto eigenvalue_error = A - B;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I presume that this should be Abs(A-B) instead of A-B since you are testing its value being greater than a threshold later. (Also, the line is inconsistently indented and using snake_case for a variable. Also, why use A and B for scalars; that is a bit confusing when most of the library uses Householder notation for matrices and vectors.)

auto eigenvalue_error = A - B;
auto left_svec_error = Norm(Abs(Uk( ALL, IR(i))) - Abs(U( ALL, IR(i))));
auto right_svec_error = Norm(Abs(Vk( ALL, IR(i))) - Abs(V( ALL, IR(i))));
if( eigenvalue_error > limits<Real>::Epsilon()){
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you mean El::limits::Epsilon<Real>(); std::numeric_limits<Real> does not support many of Elemental's datatypes (e.g., BigFloat). The syntax is slightly different and this is the first problem breaking your Travis build.

It would also be a good idea to use a more principled failure condition, such as max(m,n) || A ||_F eps

@rhl- rhl- modified the milestones: Release 0.87, Elemental Release 0.88 Nov 29, 2016
@rhl- rhl- changed the title Add TSVD WIP: Add TSVD Nov 30, 2016
benson31 added a commit to benson31/Elemental that referenced this pull request Sep 5, 2024
If this option is not set, the communication will land on the
Hydrogen-default stream. This _could_ be a separate stream from the
data compute stream, but in the LBANN use case, it generally will be
the compute stream.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants