# Mixing vectorization and parallelization

**URL:** <https://discourse.julialang.org/t/mixing-vectorization-and-parallelization/9800>\
**Category:** General Usage\
**Created:** [March 18, 2018, 10:06pm UTC](https://discourse.julialang.org/t/mixing-vectorization-and-parallelization/9800 "2018-03-18T22:06:30Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)\
**Post date:** [March 20, 2018, 1:53pm UTC](https://discourse.julialang.org/t/mixing-vectorization-and-parallelization/9800/3 "2018-03-20T13:53:12Z")

</div>

> [@gideonsimpson](#):
>
> Ybar = @parallel(+) for j=1:nsamples  
> f(randn())/nsamples;  
> end

That’s not shared memory parallelism. You would want to use `Threads.@threads`, storing an intermediate sum for each thread then summing the intermediates.

Also the above 2 code snippets give different results. The first returns a vector and the second returns a number, so I don’t see how the comparison makes sense. See [How to add arrays using multithreading?](https://discourse.julialang.org/t/how-to-add-arrays-using-multithreading/9532) for doing the second example’s job with threading.

---

_[View the full topic](https://discourse.julialang.org/t/mixing-vectorization-and-parallelization/9800)._
