eekenpiet

eekenpiet

Genetic Algorithms in Elixir: Error in task script from ch11 page 180 ebook version 1.0.2

After running a while the benchee test I got the following error: no function clause matching in Task.async/1
I wrote a script with async/3 which works on Elixir 1.17.3-otp27.

defmodule Pmap do
  def pmap(collection,func) do
    collection
    |> Enum.map(&Task.async(Pmap, func, [&1]))
    |> Enum.map(&Task.await(&1))
  end

  def expensive(x) do
    x = x * x
    :timer.sleep(1000)
    x
  end

  def inexpensive(x) do
    x * x
  end
end

data = for x <- 1..100, do: x

 Benchee.run(
  %{
    "pmap, expensive" => fn -> Pmap.pmap(data, :expensive) end,
    "pmap, inexpensive" => fn -> Pmap.pmap(data, :inexpensive) end,
    "map, expensive" => fn -> Enum.map(data, &(Pmap.expensive(&1))) end,
    "map, inexpensive" => fn -> Enum.map(data, &(Pmap.inexpensive(&1))) end
  },
  memory_time: 2
 )

"""
Name                        ips        average  deviation         median         99th %
map, inexpensive       983.51 K        1.02 μs  ±3697.41%        0.89 μs        1.35 μs
pmap, inexpensive        2.46 K      406.45 μs    ±15.08%      403.66 μs      557.18 μs
pmap, expensive       0.00200 K   501196.83 μs     ±0.07%   501063.27 μs   501968.52 μs
map, expensive        0.00002 K 50099628.15 μs     ±0.00% 50099628.15 μs 50099628.15 μs

Comparison:
map, inexpensive       983.51 K
pmap, inexpensive        2.46 K - 399.74x slower +405.43 μs
pmap, expensive       0.00200 K - 492932.24x slower +501195.82 μs
map, expensive        0.00002 K - 49273499.77x slower +50099627.13 μs

Memory usage statistics:

Name                      average  deviation         median         99th %
map, inexpensive          1.56 KB     ±0.00%        1.56 KB        1.56 KB
pmap, inexpensive        39.62 KB     ±0.60%       39.60 KB       39.68 KB
pmap, expensive          40.21 KB     ±3.01%       39.60 KB       42.02 KB
map, expensive            1.56 KB     ±0.00%        1.56 KB        1.56 KB

Comparison:
map, inexpensive          1.56 KB
pmap, inexpensive        39.62 KB - 25.36x memory usage +38.06 KB
pmap, expensive          40.21 KB - 25.73x memory usage +38.64 KB
map, expensive            1.56 KB - 1.00x memory usage +0 KB


"""

Where Next?

Popular Pragmatic Bookshelf topics Top

jimschubert
In Chapter 3, the source for index introduces Config on page 31, followed by more code including tests; Config isn’t introduced until pag...
New
brianokken
Many tasks_proj/tests directories exist in chapters 2, 3, 5 that have tests that use the custom markers smoke and get, which are not decl...
New
simonpeter
When I try the command to create a pair of migration files I get an error. user=&gt; (create-migration "guestbook") Execution error (Ill...
New
jeremyhuiskamp
Title: Web Development with Clojure, Third Edition, vB17.0 (p9) The create table guestbook syntax suggested doesn’t seem to be accepted ...
New
Chrichton
Dear Sophie. I tried to do the “Authorization” exercise and have two questions: When trying to plug in an email-service, I found the ...
New
jskubick
I’m running Android Studio “Arctic Fox” 2020.3.1 Patch 2, and I’m embarrassed to admit that I only made it to page 8 before running into ...
New
jwandekoken
Book: Programming Phoenix LiveView, page 142 (157/378), file lib/pento_web/live/product_live/form_component.ex, in the function below: d...
New
New
mcpierce
@mfazio23 I’ve applied the changes from Chapter 5 of the book and everything builds correctly and runs. But, when I try to start a game,...
New
dachristenson
@mfazio23 Android Studio will not accept anything I do when trying to use the Transformations class, as described on pp. 140-141. Googl...
New

Other popular topics Top

New
PragmaticBookshelf
Learn from the award-winning programming series that inspired the Elixir language, and go on a step-by-step journey through the most impo...
New
PragmaticBookshelf
Rails 7 completely redefines what it means to produce fantastic user experiences and provides a way to achieve all the benefits of single...
New
PragmaticBookshelf
Build efficient applications that exploit the unique benefits of a pure functional language, learning from an engineer who uses Haskell t...
New
PragmaticBookshelf
Author Spotlight Rebecca Skinner @RebeccaSkinner Welcome to our latest author spotlight, where we sit down with Rebecca Skinner, auth...
New
New
CommunityNews
A Brief Review of the Minisforum V3 AMD Tablet. Update: I have created an awesome-minisforum-v3 GitHub repository to list information fo...
New
NewsBot
Node.js v22.14.0 has been released. Link: Release 2025-02-11, Version 22.14.0 'Jod' (LTS), @aduh95 · nodejs/node · GitHub
New
PragmaticBookshelf
As digital systems increasingly run the world, mastery of the recurring patterns of software development risk is the key to fast and effe...
New
pragdave
Build robust LLM-powered apps, chatbots, and agents while mastering AI engineering principles that will help you outlast the tools and th...
New

Sub Categories: