Optimized decompression for specific matrix types
@gdalle ya está trabajando en esto.
Desde el 3/10/2024.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- julia
- Área
- data, performance
Línea de trabajo
Comienza leyendo la ruta de descompresión existente de SparseMatrixCSC para el modo :direct y, después, revisa las issues relacionadas #65 y #44. La dirección propuesta es descomprimir en un búfer SparseMatrixCSC y copiar en otros tipos de matriz, pero todavía hay que decidir los tipos de matriz compatibles y los criterios de finalización.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
At the moment, our only optimized decompression is for SparseMatrixCSC in :direct mode: we store a vector of compressed_indices such that nonzeros(A) = vec(B)[compressed_indices].
We can probably find a similar optimization for :substitution mode.
What do we want to do for other matrix types, like:
- the ones from
LinearAlgebra:Bidiagonal,Tridiagonal,Symmetric, etc. - BandedMatrices.jl, BlockBandedMatrices.jl
It would be rather tiring to find optimal decompression methods for each of these. My proposal (as a first step) would be to always have a SparseMatrixCSC buffer into which we decompress, and then copy the A_buffer::SparseMatrixCSC into A::SomeWeirdMatrix.
Essentially, it's easier to implement fast copy from SparseMatrixCSC than fast decompression.
Related:
- #65
- #44
- Lenguaje dominante
- Julia
- Estrellas
- 46
- Forks
- 14
- Merge medio
- 6 h 30 min
- PR fusionados (30 d)
- 2
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de JuliaDiff/SparseMatrixColorings.jl
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
JuliaDiff/SparseMatrixColorings.jl#342 · 1 comentario ·
-
ContributorsAbiertowontfix
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
JuliaDiff/SparseMatrixColorings.jl#331 · 4 comentarios ·
-
Compiled (trimmed) binariesPosiblemente ocupada @amontoison la tomó hace 40 días. Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
JuliaDiff/SparseMatrixColorings.jl#329 · 2 comentarios · 2 reacciones ·
-
Coloring for symmetric banded matricesQuizá libre de nuevo @amontoison la tomó hace 258 días y no hay ningún pull request abierto. Abiertofeature
JuliaDiff/SparseMatrixColorings.jl#302 · 1 asignado ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 50/100
JuliaDiff/SparseMatrixColorings.jl#301 · 1 comentario ·
Todos los issues de JuliaDiff/SparseMatrixColorings.jl
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
SciML/OrdinaryDiffEq.jl#4875 ·
Los mantenedores suelen responder en 3 días
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
SciML/NonlinearSolve.jl#1372 ·
Los mantenedores suelen responder en 1 día
-
Truncated discrete ccdf and logccdf return incorrect values at the lower atomPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
JuliaStats/Distributions.jl#2095 ·
-
documentation 📜 microphysics💧 ❄️
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
NumericalEarth/Breeze.jl#1073 ·
Los mantenedores suelen responder en 1 día