gridap / gridap/Tutorials

Spurious memory allocation reproduced with `poisson_dev_fe.jl`

Open
#82 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
144
Forks
50
PR merge metrics
No merged PRs in 30d

Description

This issue is to document a strange behaviour which is reproduced in `poisson_dev_fe.jl` when the following code is executed:

```
@time begin
for i in 1:100_000
smart_sum(manual_uₕ_array_at_qₖ)
end
end
```

A comment was attached to this code, that I move from there and put here to not forget

```
WHY THE SECOND PIECE OF CODE REQUIRES A NUMBER OF ALLOCATIONS THAT GROWS
WITH THE NUMBER OF CELLS? I CAN UNDERSTAND THAT THE CACHE ARRAY of
`manual_uₕ_array_at_qₖ` REQUIRES MORE MEMORY IN ABSOLUTE TERMS, BUT I AM NOT
ABLE TO SEE WHY IT GROWS WITH THE NUMBER OF CELLS!!!! ANY HINT?
```

Contributor guide

Open the contributing guide

Research direction

Start with poisson_dev_fe.jl and run the shown @time loop around smart_sum(manual_uₕ_array_at_qₖ). Compare allocation counts as the number of cells changes, then trace the relevant Gridap and Julia calls. Done means identifying whether the growth is expected and documenting its cause or the next action.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.