Generating PVD files when the Triangulation is not present on all Ranks
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- julia
Direzione di ricerca
Inizia dai punti di ingresso Visualization.createpvd e Visualization.savepvd e analizza l’issue #70; quindi esamina come viene usato Mpi.jl per coordinare i rank. Confronta il flusso DistributedPvd proposto con l’implementazione attuale. Il lavoro è completato quando è possibile generare file PVD anche se una triangolazione distribuita è assente su alcuni rank MPI.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
With the current implementation, we can not generate the paraview files when the triangulations are not present on all MPI ranks. In issue #70, this has been written as a #TODO task for taking nothing.
Since I needed this functionality for my use case, I tried to fix it myself, but I had to use functions from Mpi.jl as well. Below are the changes I made to make it work.
struct DistributedPvd{T<:AbstractArray}
pvds::T
main_rank::Int
end
function Visualization.createpvd(trian::DistributedTriangulation,parts::AbstractArray,args...;kwargs...)
main_rank = -1
map(local_views(trian), parts) do LocTrian, part
flag = part * !(num_cells(LocTrian) == 0)
global_flag = Vector{Int}(undef, MPI.Comm_size(MPI.COMM_WORLD))
MPI.Allgather!([flag], global_flag, MPI.COMM_WORLD)
main_rank = maximum(global_flag)
end
pvds = map_main(parts,main = main_rank) do part
p = paraview_collection(args...;kwargs...)
end
DistributedPvd(pvds,main_rank)
end
function Visualization.createpvd(f,trian::DistributedTriangulation,parts::AbstractArray,args...;kwargs...)
pvd = createpvd(trian,parts,args...;kwargs...)
try
f(pvd)
finally
savepvd(pvd)
end
end
function Visualization.createpvd(parts::AbstractArray,args...;kwargs...)
pvds = map_main(parts, main = 1) do part
p = paraview_collection(args...;kwargs...)
end
DistributedPvd(pvds,1)
end
function Visualization.createpvd(f,parts::AbstractArray,args...;kwargs...)
pvd = createpvd(parts,args...;kwargs...)
try
f(pvd)
finally
savepvd(pvd)
end
end
function Visualization.savepvd(pvd::DistributedPvd)
map_main(pvd.pvds, main = pvd.main_rank) do pvd
vtk_save(pvd)
end
end
function Base.setindex!(pvd::DistributedPvd,pvtk::AbstractArray,time::Real)
map(pvtk) do pvtk
if !isnothing(pvtk)
vtk_save(pvtk)
end
end
map_main(pvtk,pvd.pvds,main = pvd.main_rank) do pvtk,pvd
pvd[time] = pvtk
end
end
- Lingua principale
- Julia
- Stelle
- 150
- Fork
- 28
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di gridap/GridapDistributed.jl
-
A generic method of the abstract type DistributedDiscreteModel{Dc,Dp} directly accesses to a field name .face_gidsForse di nuovo libera @amartinhuertas l’ha presa 124 giorni fa e non c’è nessuna pull request aperta. Aperta
gridap/GridapDistributed.jl#211 · 1 assegnatario ·
-
Automatically add ghost cells to triangulation whenever a CellField is created out of a DistributedTriangulationForse di nuovo libera @JordiManyer l’ha presa 157 giorni fa e non c’è nessuna pull request aperta. Aperta
gridap/GridapDistributed.jl#209 · 2 assegnatari ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
gridap/GridapDistributed.jl#189 · 1 commento ·
-
Issue with DG-SIP and FullyAssembledRowsForse di nuovo libera @amartinhuertas l’ha presa 362 giorni fa e non c’è nessuna pull request aperta. Aperta
gridap/GridapDistributed.jl#186 · 20 commenti · 1 assegnatario ·
-
Potential issue when interpolating DistributedCelllFields that are only defined on own cellsForse di nuovo libera @JordiManyer l’ha presa 377 giorni fa e non c’è nessuna pull request aperta. Aperta
gridap/GridapDistributed.jl#184 · 1 commento · 2 assegnatari ·
Tutte le issue di gridap/GridapDistributed.jl
Issue simili
-
`ShallowWaterModel` allocates ~9 KiB per grid point per RK3 stage on the CPUForse già presa @ali-ramadhan l’ha presa oggi. Apertaperformance 🏍️
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
CliMA/Oceananigans.jl#6421 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
NCAR/musica#1118 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
`AMSGrad` state starts at `epsilon` instead of zero, so zero gradients move parameters and small gradients are dampedForse già presa @parth-patel010 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
FluxML/Optimisers.jl#247 · 1 commento ·
-
README should say that row and column order must matchForse già presa @SAUMYARSH l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 84/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
OpenFUSIONToolkit/GPEC#644 ·
I maintainer di solito rispondono entro 3 giorni