# Parallel loop

**URL:** https://discourse.julialang.org/t/parallel-loop/29561
**Category:** New to Julia
**Created:** [October 6, 2019, 7:07pm UTC](https://discourse.julialang.org/t/parallel-loop/29561 "2019-10-06T19:07:49Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![donquicote](https://avatars.discourse-cdn.com/v4/letter/d/c2a13f/32.png) [@donquicote](https://discourse.julialang.org/u/donquicote)
#### Post date: [October 6, 2019, 7:07pm UTC](https://discourse.julialang.org/t/parallel-loop/29561/1 "2019-10-06T19:07:49Z")

</div>

Hi,

Can anyone help me to parallelize the following code? I’ve tried to look for how to parallelize nested loops in the documentation but I couldn’t find anything about it.

Thank you,

```julia
using Optim

s_vals = collect(range(0.5,1.5,length=10))
k_vals = collect(range(50.0,150.0,length=10))

function obj(x,s,k)
    return (s - x[1])^2 + k * (x[2] - x[1]^2)^2
end

sol = zeros(Float64, 2, length(k_vals), length(s_vals))
for (i_s, s) in enumerate(s_vals), (i_k, k) in enumerate(k_vals)
    obj!(x) = obj(x,s,k)
    res = optimize(obj!, zeros(2), Optim.BFGS())
    sol[1, i_k, i_s], sol[2, i_k, i_s] = res.minimizer
end

```

---

<div class="post-metadata">

### Author: ![longemen3000](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/longemen3000/32/7298_2.png) [@longemen3000](https://discourse.julialang.org/u/longemen3000)
#### Post date: [October 7, 2019, 4:16am UTC](https://discourse.julialang.org/t/parallel-loop/29561/2 "2019-10-07T04:16:56Z")

</div>

In julia 1.3, you can use the [@threads macro](https://docs.julialang.org/en/v1.4-dev/base/multi-threading/#Base.Threads.@threads):

```julia
Threads.@threads for (i_s, s) in enumerate(s_vals), (i_k, k) in enumerate(k_vals)
    obj!(x) = obj(x,s,k)
    res = optimize(obj!, zeros(2), Optim.BFGS())
    sol[1, i_k, i_s], sol[2, i_k, i_s] = res.minimizer
end

```
