Show HN: Parex – Simple Elixir module for parallel execution
1–9 of 9 posts
Re: Show HN: Parex – Simple Elixir module for parallel execution
#2Re: Show HN: Parex – Simple Elixir module for parallel execution
#3This is very cool though!
Re: Show HN: Parex – Simple Elixir module for parallel execution
#4In your parallel code sample, hang2 is only 1000ms instead of 5000ms. This is very cool though!
Re: Show HN: Parex – Simple Elixir module for parallel execution
#5Re: Show HN: Parex – Simple Elixir module for parallel execution
#6So this is having a single (Erlang VM) process run code on as many cores as it can? Is this designed for a sequential program so that you don't have to split it up into processes? I'm still learning Erlang/Elixir, so I apologize if this is a stupid question.
Re: Show HN: Parex – Simple Elixir module for parallel execution
#7So this is having a single (Erlang VM) process run code on as many cores as it can? Is this designed for a sequential program so that you don't have to split it up into processes? I'm still learning Erlang/Elixir, so I apologize if this is a stupid question.
Whether the code is executed on many cores or not is completely orthogonal to this library. Indeed it is a property of the Erlang VM: you can configure it to run on only one system process, or many.
That said, if you are looking for computing performances, Erlang/Elixir is probably not the language of choice: it is optimized for latency and fault tolerance, not to maximize raw cpu usage.
Re: Show HN: Parex – Simple Elixir module for parallel execution
#8So this is having a single (Erlang VM) process run code on as many cores as it can? Is this designed for a sequential program so that you don't have to split it up into processes? I'm still learning Erlang/Elixir, so I apologize if this is a stupid question.
Re: Show HN: Parex – Simple Elixir module for parallel execution
#9 [
add: fn() -> 1+2 end,
hang1: fn() -> :timer.sleep(1000) end,
hang2: fn() -> :timer.sleep(5000) end
]
|> Enum.map(fn {k, t} ->
{k, Task.async(t)}
end)
|> Enum.map(fn {k, t} ->
{k, Task.await(t, :infinity)}
end)