-
Notifications
You must be signed in to change notification settings - Fork 2
Version 0.2
The following lays out the development plan for version 0.2. To help manage workload we will have the following point system where any individual will not be doing any more than 4 points of work in a week. First for revisions the points are as follows:
| Point | Description |
|---|---|
| 2 | A PR whose main file more than 2 data structures |
| 1 | A PR whose main file has 2 data structures or 2nd revision of 2 point PR |
| 0.5 | A 2nd revision of a 1 point PR or 3rd revision of 2 point PR or Small abstract type PR |
| 0.25 | A 3rd Revision of a 1 point PR or 4th revision of 2 point PR |
Beyond the first increment each subsequent increment will focus on implementing all similar techniques at once to make the review process more consistent and efficient. The goal of these implementations, should result in the library approximately subsuming most of the core functionality of version 0.1 by version 0.2.2.
The first incrementation of version 0.2.1 will be made when we have built the basics of what is currently in version 0.1. Specifically, we will have built:
| Solvers | Approximators | Compressors | Loggers | SubSolvers |
|---|---|---|---|---|
| 1. Row_Projection(Kaczmarz Solver) 2. Col_Projection (Coordinate Descent) |
1. Random RangeFinder (Randomized QR) 2. Randomized SVD |
1. Sparse Sign 2. Gaussian |
1. Basic Logger 2. MA Logger |
1. LQ Solver 2. QR Solver |
| Week | Tasks completed | PRs Reviewed |
|---|---|---|
| Feb 3 | 1. Abstract Types 2. Design Description |
None |
| Feb 10 | 1. Sparse Sign Compressor | 1. Compressors (.5) 2. Approximators (.5) 3. Solvers (.5) 4. RLinearAlgebra (.5) |
| Feb 17 | 1. Basic Logger 2. Revisions |
1. SubSolvers (.5) 2. Loggers (.5) 3. SparseSign (2) |
| Feb 24 | 1. LQSubSolver 2. Revisions |
1. SpareSign (1) 2. BasicLogger (1) |
| Mar 3 | 1. KaczmarzSolver 2. Revisions |
1. SparseSign (.5) 2. BasicLogger (.5) 3. LQSubSolver (1) |
| Mar 10 | 1. QRSubSolver 2. GaussianCompressor 3. Revisions |
1. KaczmarzSolver (2) 2. LQSubSolver (1) |
| Mar 17 | 1. CoordinateDescentSolver 2. RangeFinder |
1. KaczmarzSolver (1) 2. QRSubSolver (1) 3. GaussianCompresssor (1) 4. LQSubSolver (.5) |
| Mar 24 | 1. MALogger 2. Revisions |
1. KaczmarzSolver (.5) 2. QRSubSolver (.5) 3. GaussianCompresssor (.5) 4. CoordinateDescentSolver (2) 5. RangeFinder (2) |
| Mar 31 | 1. RandomizedSVD 2. Revisions |
1. CoordinateDescentSolver (1) 2. RangeFinder (1) 3. MALogger (1) |
| April 7 | 1. Revisions | 1. RandomizedSVD (1) 2. CoordinateDescentSolver(.5) 3. RangeFinder (.5) 4. MALogger (.5) |
| April 14 | 1. Revisions | 1. RandomizedSVD (.5) |
Version 0.2.1 Completed by April 21nd
We will be able to increment when we have finished all the compressors.
- CountSketch
- BlockFJLT
- CyclicSampling
- SamplingWithoutReplacement
- Sketch With Uniform entries
- AchlioptasSketch (Rademacher)
- BlockSRHT
| Week | Tasks completed | PRs Reviewed |
|---|---|---|
| April 21 | 1. Sketch With Uniform entries 2. BlockFJLT 3. Revisions |
None |
| April 28 | 1. CyclicSampling 2. SamplingWithoutReplacement 3. Revisions |
1. Sketch With Uniform entries (1) 2. BlockFJLT (1) |
| May 5 | 1. AchlioptasSketch 2. FJLT 3. Revisions |
1. Sketch With Uniform entries (.5) 2. BlockFJLT (.5) 3. CyclicSampling (1) 4. SamplingWithoutReplacement (1) |
| May 12 | 1. CyclicSampling 2. CountSketch 3. Revisions |
1. CyclicSampling (.5) 2. SamplingWithoutReplacement (.5) 3. AchlioptasSketch (1) 4. FJLT (1) |
| May 12 | 1. SRHT 2. Revisions |
1. AchlioptasSketch (.5) 2. FJLT (.5) 3. CyclicSampling (1) 4. CountSketch (1) |
| May 19 | Revisions | 1. CyclicSampling (.5) 2. CountSketch (.5) 3. SRHT (1) |
| May 26 | Revisions | 1. SRHT (.5) |
| June 2 | Revisions | Extra Week for Overages |
Version 0.2.2 Completed by May 27th
In version 0.2.3, we will fill out the CUR techniques in the approximators. This will require that we first create a general abstract CUR type. We then will iterative and single pass implementation of these methods. The user will be able to choose a column selection, row selection, pseudo inverse, refinement technique, and error technique.
- LeverageScore
- Approximate LeverageScore
- Sketch and Pivot QR
- Sketch and Pivot LU
- Pivot LU
- Pivot QR
- Osinsky
- IterativeCUR
| Week | Tasks completed | PRs Reviewed |
|---|---|---|
| June 9 | 1. CUR Structure | None |
| June 16 | 1. Pivoted LU 2. Pivoted QR |
1. CUR Structure (2) |
| June 23 | 1. LeverageScore 2. Approximate LeverageScore |
1. CUR Structure (1) 2. Pivoted LU (1) 3. Pivoted QR (1) |
| June 30 | Revisions | 1. CUR Structure (.5) 2. Pivoted LU (.5) 3. Pivoted QR (.5) 4. LeverageScore (1) 5. Approximate LeverageScore (1) |
| July 6 | 1. IterativeCUR structure | 1. LeverageScore (.5) 2. Approximate LeverageScore (.5) |
| July 13 | 1. Sketch and Pivot LU 2. Sketch and Pivot QR |
1. IterativeCUR structure (2) |
| July 20 | 1. Osinsky selection | 1. IterativeCUR structure (1) 2. Sketch and Pivot LU (1) 3. Sketch and Pivot QR (1) |
| July 27 | Revisions | 1. IterativeCUR structure (.5) 2. Sketch and Pivot LU (.5) 3. Sketch and Pivot QR (.5) |
| August 4 | Revisions | Week to catch up |
| Version 0.2.3 Completed by August 4th |
Version 0.2.4 will focus on adding additional SubSolver techniques to the code base. These can be called by the row and block solver techniques. Each solver should have an implmentation that over-writes ldiv! from the LinearAlgebra library.
- LU Solver
- Cholesky Solver
- Randomized Cholesky Solver
- LSQR
- LSMR
- CG
- BICGSTAB
- GMRES
| Week | Tasks completed | PRs Reviewed |
|---|---|---|
| Aug 11 | 1. LU Solver 2. Cholesky Solver |
None |
| Aug 18 | 1. Randomized Cholesky 2. CG |
1. LU Solver (1) 2. Cholesky Solver (1) |
| Aug 25 | 1. LSQR 2. LSMR |
1. LU Solver (.5) 2. Cholesky Solver (.5) 3. Randomized Cholesky (1) 4. CG (1) |
| Sep 1 | 1. BICGSTAB 2. GMRES |
1. Randomized Cholesky (.5) 2. CG (.5) 3. LSQR (1) 4. LSMR (1) |
| Sep 8 | Revisions | 1. LSQR (.5) 2. LSMR (.5) 3. BICGSTAB (1) 4. GMRES (1) |
| Sep 15 | Revisions | 1. BICGSTAB (1) 2. GMRES (1) |
Version 0.2.4 Completed by Sep 15th
With the completion of the version 0.2.1, we will have implementations of the row and column projection methods. In version 0.2.5 we will expand the method available in the library for solving linear systems. These will follow a similar implementation pattern to the row and column projection methods of version 0.2.1.
- Iterative Hessian Sketch
- Preconditioned Krylov (LSRN and Blendenpik)
- FOSSILS
- Sketch and Solve (Row Sketch and solve the sketched problem)
- Balabanov and Grigori Randomized Krylov
- Nakatsukasa and Tropp Randomized GMRES
-
Week of Jun 22nd:
- PRs to be reviewed (2):
- Iterative Hessian Sketch (1)
- Sketch and Solve (1)
- PRs to be reviewed (2):
-
Week of Jun 29th:
- PRs to be reviewed (2):
- Iterative Hessian Sketch (.5)
- Sketch and Solve (.5)
- Fossils (1)
- PRs to be reviewed (2):
-
Week of Jul 6th:
- PRs to be reviewed (3):
- Iterative Hessian Sketch (.25)
- Sketch and Solve (.25)
- Fossils (.5)
- Preconditioned Krylov (2)
- PRs to be reviewed (3):
-
Week of Jul 13th:
- PRs to be reviewed (2.25):
- Fossils (.25)
- Preconditioned Krylov (1)
- B and G Krylov (1)
- PRs to be reviewed (2.25):
-
Week of Jul 20th:
- PRs to be reviewed (2):
- Preconditioned Krylov (.5)
- B and G Krylov (.5)
- J and N Krylov (1)
- PRs to be reviewed (2):
-
Week of Jul 27th:
- PRs to be reviewed (1):
- Preconditioned Krylov (.25)
- B and G Krylov (.25)
- J and N Krylov (.5)
- PRs to be reviewed (1):
-
Week of Aug 3rd:
- PRs to be reviewed (.25):
- J and N Krylov (.25)
- PRs to be reviewed (.25):
Version 0.2.5 Completed by August 10th
The final main set of implementations for version 0.2.6 will be the Nystrom approximations. The techniques that need to be implemented for this portion include RPCholesky, as well as others, but more research needs to be done to make a final determination of the overall techniques. The implementation design should be similar to that of the CUR techniques in version 0.2.3.
- RPCholesky
- Uniform Column Selection
- Nystrom Outer Method
-
Week of Jul 27th:
- PRs to be reviewed (2):
- Nystrom Outer Method (2)
- PRs to be reviewed (2):
-
Week of Aug 3rd:
- PRs to be reviewed (2):
- Nystrom Outer Method (1)
- RPCholesky (1)
- PRs to be reviewed (2):
-
Week of Aug 10th:
- PRs to be reviewed (2):
- Nystrom Outer Method (.5)
- RPCholesky (.5)
- Uniform Selection (1)
- PRs to be reviewed (2):
-
Week of Aug 17th:
- PRs to be reviewed (1):
- Nystrom Outer Method (.25)
- RPCholesky (.25)
- Uniform Selection (.5)
- PRs to be reviewed (1):
-
Week of Aug 24th:
- PRs to be reviewed (.25):
- Uniform Selection (.25)
- PRs to be reviewed (.25):
Version 0.2.6 Completed by August 31st