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

CQRRP (blocked CQRRPT) #58

Merged
merged 279 commits into from
Nov 17, 2023
Merged

CQRRP (blocked CQRRPT) #58

merged 279 commits into from
Nov 17, 2023

Conversation

rileyjmurray
Copy link
Contributor

@rileyjmurray rileyjmurray commented Aug 28, 2023

This PR adds CQRRP - an extension of CQRRPT's idea in a form of an iterative algorithm for QRCP that uses randomization. The output format is identical to that of GEQP3.

Most of the algorithm's computations are taking place in the original matrix A's space, as described in detail in the algorithm's comments.

We have also updated rl_hqrrp.cc, allowing to switch between GEQRF+LARFT (original strategy for getting Q, R factors) and CholQR+ORHR_col.
We also add Kahan matrix generator and overhaus some utility routines.

Updated yaml workflow file to be in synch with the most recent LAPACK++/BLAS++ build recipes and to pull the most recent MKL version.

…tau vector on its main diagonal; Q in its current form is the same as output from geqrf.
…t was present before the output format switch.
…to lapack functions in HQRRP, unless a workspace query is required. That is, we can get rid of the larfb wrapper if we want (but it will be tideous).
@TeachRaccooon
Copy link
Contributor

Our build recipes were outdated.
Fixed that, but we are now getting errors with "orhr_col" being undefined.
Last time this was happening when we were using an old version of MKL.

@TeachRaccooon
Copy link
Contributor

Looks like we are using a 2020 version of MKL.
Not sure if "orhr_col" was defined back then; orhr_col was initially introduced in LAPACK 3.9.0 in late 2019.
I am using the 2023 version of MKL in my local builds.

@TeachRaccooon
Copy link
Contributor

@rileyjmurray I changed the way we install MKL; it now downloads and installs the most recent version.
LAPACK++ build on MacOS still fails (will check what the build recipe there is), but even if everything was installed properly, it would fail because LAPACK++, as you remember, fails to use accelerate with LAPACK 3.9.1 at the moment.

@TeachRaccooon
Copy link
Contributor

Should have commented this yesterday, but I've updated MacOS-related stuff and everything works now!

@TeachRaccooon
Copy link
Contributor

@rileyjmurray Since we realized that PAQR is not of interest to reproduce in RandLAPACK, i think this PR is ready to be reviewed.

Copy link
Contributor Author

@rileyjmurray rileyjmurray left a comment

Choose a reason for hiding this comment

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

I left a handful of comments. Please respond to each, @TeachRaccooon!

RandLAPACK/drivers/rl_hqrrp.hh Outdated Show resolved Hide resolved
RandLAPACK/misc/rl_gen.hh Outdated Show resolved Hide resolved
RandLAPACK/misc/rl_gen.hh Outdated Show resolved Hide resolved
RandLAPACK/misc/rl_util.hh Show resolved Hide resolved
RandLAPACK/misc/rl_util.hh Outdated Show resolved Hide resolved
benchmark/CQRRP_inner_speed.cc Outdated Show resolved Hide resolved
test/drivers/test_cqrrp.cc Show resolved Hide resolved
test/drivers/test_cqrrp.cc Show resolved Hide resolved
test/drivers/test_cqrrp.cc Show resolved Hide resolved
test/drivers/test_cqrrp.cc Show resolved Hide resolved
@rileyjmurray rileyjmurray mentioned this pull request Nov 16, 2023
@rileyjmurray rileyjmurray changed the title WIP : Cqrrp blocked CQRRP (blocked CQRRPT) Nov 17, 2023
@TeachRaccooon TeachRaccooon merged commit 5cffe25 into main Nov 17, 2023
2 checks passed
@TeachRaccooon TeachRaccooon deleted the cqrrp-blocked branch November 17, 2023 15:44
TeachRaccooon added a commit that referenced this pull request Nov 17, 2023
This PR adds CQRRP - an extension of CQRRPT's idea in a form of an
iterative algorithm for QRCP that uses randomization. The output format
is identical to that of GEQP3.

Most of the algorithm's computations are taking place in the original
matrix A's space, as described in detail in the algorithm's comments.

We have also updated rl_hqrrp.cc, allowing to switch between GEQRF+LARFT
(original strategy for getting Q, R factors) and CholQR+ORHR_col.
We also add Kahan matrix generator and overhaus some utility routines.

Updated yaml workflow file to be in synch with the most recent
LAPACK++/BLAS++ build recipes and to pull the most recent MKL version.

---------

Co-authored-by: TeachRaccooon <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants