# Cumsum and TiledIteration

**URL:** <https://discourse.julialang.org/t/cumsum-and-tilediteration/10656>\
**Category:** Performance\
**Created:** [May 2, 2018, 2:54pm UTC](https://discourse.julialang.org/t/cumsum-and-tilediteration/10656 "2018-05-02T14:54:51Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![johnh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnh/32/3615_2.png) [@johnh](https://discourse.julialang.org/u/johnh)\
**Post date:** [May 2, 2018, 2:54pm UTC](https://discourse.julialang.org/t/cumsum-and-tilediteration/10656/1 "2018-05-02T14:54:51Z")

</div>

In a mailing list in another galaxy, far far away, someone posted a question regarding taking the cumulative sum along the axes of a 3 dimensional array.  
Julia has the cumsum function for this.

I am asking myself if cumsum can be run in parallel on the columns of a 3D array.  
It may ‘just work’ or is TiledIteration the way to go:  
[https://github.com/JuliaArrays/TiledIteration.jl](https://github.com/JuliaArrays/TiledIteration.jl)

Note to self - just blooming well try it out.

---

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [May 2, 2018, 3:18pm UTC](https://discourse.julialang.org/t/cumsum-and-tilediteration/10656/2 "2018-05-02T15:18:53Z")

</div>

> [@johnh](#):
>
> I am asking myself if cumsum can be run in parallel on the columns of a 3D array.

Yes. e.g. this works:

```julia
using Compat
function pcumsum(A::AbstractMatrix)
    S = similar(A);
    Threads.@threads for i in Compat.axes(A,2)
        @views cumsum!(S[:,i], A[:,i])
    end
    return S
end

```
