# Computer freezes with parallel

**URL:** <https://discourse.julialang.org/t/computer-freezes-with-parallel/33903>\
**Category:** Julia at Scale\
**Created:** [January 28, 2020, 8:13pm UTC](https://discourse.julialang.org/t/computer-freezes-with-parallel/33903 "2020-01-28T20:13:18Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![squirrel](https://avatars.discourse-cdn.com/v4/letter/s/96bed5/32.png) [@squirrel](https://discourse.julialang.org/u/squirrel)\
**Post date:** [January 28, 2020, 8:13pm UTC](https://discourse.julialang.org/t/computer-freezes-with-parallel/33903/1 "2020-01-28T20:13:18Z")

</div>

Hi. I need to use parallel programming and I’ve been trying to play around with some basic parts. When I try to benchmark a simple threaded function, my laptop freezes for over five minutes and I resort to doing a hard shutdown.

```julia
using Distributed
using BenchmarkTools
using .Threads

function test_serial(m)
    u = zeros(Int64, m)
    for i in eachindex(u)
        u[i] = threadid()
    end
    return u
end

function test_threads(m)
    u = zeros(Int64, m)
    Threads.@threads for i in eachindex(u)
        u[i] = threadid()
    end
    return u
end

m = 100_000_000
@benchmark test_serial($m)
@benchmark test_threads($m)

```

When `m` above is 100M, the code finishes no problem. When `m` is 1B, `test_serial` will benchmark two samples, and it is finished in about 6 seconds, but `test_threads` freezes my laptop.

Doing Ctrl J K doesn’t stop it, nor does Ctrl Alt Del. I’m guessing this is because all of my processors are occupied. Is there any way I can perform these functions on arrays this long and benchmark them without risking the health of my laptop? Maybe a timeout? Tasks?

Thanks.

```julia
julia> @benchmark test_serial($m) # m = 100M
BenchmarkTools.Trial:
  memory estimate: 762.94 MiB
  allocs estimate: 2
  --------------
  minimum time: 362.364 ms (3.82% GC)
  median time: 408.529 ms (15.66% GC)
  mean time: 410.735 ms (16.18% GC)
  maximum time: 445.156 ms (22.65% GC)
  --------------
  samples: 13
  evals/sample: 1

julia> @benchmark test_threads($m) # m = 100M
BenchmarkTools.Trial:
  memory estimate: 762.94 MiB
  allocs estimate: 34
  --------------
  minimum time: 333.686 ms (0.13% GC)
  median time: 396.594 ms (15.47% GC)
  mean time: 396.439 ms (15.15% GC)
  maximum time: 436.842 ms (23.00% GC)
  --------------
  samples: 13
  evals/sample: 1

julia> @benchmark test_serial($m) # m = 1B
BenchmarkTools.Trial:
  memory estimate: 7.45 GiB
  allocs estimate: 2
  --------------
  minimum time: 3.714 s (0.41% GC)
  median time: 6.760 s (0.54% GC)
  mean time: 6.760 s (0.54% GC)
  maximum time: 9.805 s (0.59% GC)
  --------------
  samples: 2
  evals/sample: 1

```
