# How to avoid repeated data movement between processes?

**URL:** <https://discourse.julialang.org/t/how-to-avoid-repeated-data-movement-between-processes/9835>\
**Category:** General Usage\
**Tags:** question\
**Created:** [March 20, 2018, 1:06pm UTC](https://discourse.julialang.org/t/how-to-avoid-repeated-data-movement-between-processes/9835 "2018-03-20T13:06:25Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![Michael\_Eastwood](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/michael_eastwood/32/669_2.png) [@Michael\_Eastwood](https://discourse.julialang.org/u/Michael_Eastwood)\
**Post date:** [March 20, 2018, 9:25pm UTC](https://discourse.julialang.org/t/how-to-avoid-repeated-data-movement-between-processes/9835/3 "2018-03-20T21:25:03Z")

</div>

> [@Chong\_Wang](#):
>
> The problem is that each time a task starts, a large object (nm) is moving from local process to remote process, which costs some unnecessary computation time. For the simple example above, a SharedArray can be used. However, in my program, a quite complex type is assigned to nm. In this case, how to avoid this overhead?

Try using a `CachingPool`: [https://docs.julialang.org/en/stable/stdlib/parallel/#Base.Distributed.CachingPool](https://docs.julialang.org/en/stable/stdlib/parallel/#Base.Distributed.CachingPool)

---

_[View the full topic](https://discourse.julialang.org/t/how-to-avoid-repeated-data-movement-between-processes/9835)._
