Optimized decompression for specific matrix types
@gdalle já está trabalhando nisso.
Desde 3/10/2024.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 30/100
- Tipo de issue
- Funcionalidade
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- julia
- Domínio
- data, performance
Direção de pesquisa
Comece lendo o caminho existente de descompressão de SparseMatrixCSC para o modo :direct e, em seguida, revise as issues relacionadas #65 e #44. A direção proposta é descomprimir em um buffer SparseMatrixCSC e copiar para outros tipos de matriz, mas os tipos de matriz compatíveis e os critérios de conclusão ainda precisam ser decididos.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Linguagem predominante
- Julia
- Estrelas
- 46
- Forks
- 14
- Merge médio
- 6h 30min
- PRs com merge (30d)
- 2
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de JuliaDiff/SparseMatrixColorings.jl
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
JuliaDiff/SparseMatrixColorings.jl#342 · 1 comentário ·
-
ContributorsAbertawontfix
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 20/100
JuliaDiff/SparseMatrixColorings.jl#331 · 4 comentários ·
-
Compiled (trimmed) binariesTalvez já em andamento @amontoison assumiu há 41 dias. Aberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
JuliaDiff/SparseMatrixColorings.jl#329 · 2 comentários · 2 reações ·
-
Coloring for symmetric banded matricesTalvez livre de novo @amontoison assumiu há 259 dias e não há nenhum pull request aberto. Abertafeature
JuliaDiff/SparseMatrixColorings.jl#302 · 1 responsável ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 50/100
JuliaDiff/SparseMatrixColorings.jl#301 · 1 comentário ·
Todas as issues de JuliaDiff/SparseMatrixColorings.jl
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
JuliaGPU/KernelAbstractions.jl#897 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
oscar-system/GAP.jl#1455 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
JuliaAI/MLJTransforms.jl#85 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
SciML/OrdinaryDiffEq.jl#4875 ·
Mantenedores costumam responder em até 4 dias