zacky1972
Creator of Pelemay
This is a present of the end of year for Elixir programmers from me: The new package “Pelemay Fast Parallel map” has been released! It drives multi cores and is 3x faster than Enum! Check it out, soon!
Pelemay Fast Parallel map (or pelemay_fp) - Fast parallel map function for Elixir
- pelemay_fp | Hex
- GitHub - zeam-vm/pelemay_fp: Fast parallel map function for Elixir · GitHub
- PelemayFp — PelemayFp v0.1.0
Pelemay Fast Parallel map: provides fast Parallel map function, similar to the Enum module, although computations will be executed in parallel using Process.spawn/4.
Here is a quick example on how to calculate the square of each element with PelemayFp:
list
|> PelemayFp.map(& &1 * &1)
We conducted performance evaluation of PelemayFp, Pelemay, Flow, Enum and Pmap on iMac Pro (2017):
## PelemayFpBench
benchmark name iterations average time
PelemayFp 200 10177.85 µs/op
Pelemay 100 16762.24 µs/op
PelemayFp and Pelemay 100 18532.70 µs/op
Flow (without sorting) 100 18731.43 µs/op
Enum 50 31283.36 µs/op
Flow (with sorting) 10 105091.00 µs/op
Pmap 1 1213749.00 µs/op
Thanks! A happy new year!
Trending in Announcing
WebAuthnLiveComponent WebAuthnComponents
See this post about renaming the package.
Passwordless authentication for Phoenix LiveView app...
New
Edit: 2026 May 15 - This post is archived.
Mob is alive!!
Main docs: mob v0.7.11 — Documentation
A bit of explanation for the slightly c...
New
I released Doggo, a collection of unstyled Phoenix components.
https://github.com/woylie/doggo
Features
Unstyled Phoenix components....
New
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
Hi everyone,
I’ve been working on this protobuf library for 3 years. We use it in the company I work for, EasyMile, to communicate with ...
New
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
I’ll shortly be launching Text, a nascent text analysis library.
Current functionality
In this early version (not ready for prime time) ...
New
Other Trending Topics
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hi everyone!
The first release candidate for the Expert language server project is now available!
We’ve published a press release detai...
New
A little off-topic, but I feel like people here have a good head on their shoulders.
I used to be quite good at making software. Was luc...
New
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself.
My main conc...
New
Hey folks,
I just published a post about Hologram’s funding and where the project goes next - the short version:
Curiosum as Main Spons...
New
I love Elixir. It’s one of 2 programming languages I’ve ever fallen in love with.
But I don’t use it anymore.
Serverless was the promis...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ai
- #ecto-query
- #elixirconf-us
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #elixirconf-eu
- #api
- #forms
- #metaprogramming
- #hex











Showing Posts 1 to 10- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
Eiji
Nice idea! Here goes something from me …
https://github.com/zeam-vm/pelemay_fp/issues/2
zacky1972
Thank you!
It’s quite a strange behavior…
LostKobrakai
How does this compare to Task.async_stream, which would be the core way of separating computations into different processes?
zacky1972
Thank you. TIL Task.async_stream.
zacky1972
I may have misunderstood the specification of
spawn_monitor. Perhaps once a child process is launched byspawn_monitor, will it be started again even if it quit by executingexit(:normal)?Eiji
@LostKobrakai I tried
Task.async_stream/2in few benchmarks, but results are not as good as expected …Edit Updated benchmarks:
pelemay_fp: benchee
benchmark.exs
mix run benchmark.exs
pelemay_fp_benchmark: pelemay_fp_benchmark
mix bench
al2o3cr
PelemayFp splits the incoming value into chunks of 12000, so I’m not sure what this benchmark demonstrates - it will only spawn one worker. FWIW, the code in pelemay_fp_benchmark/bench/pelemay_fp_bench.exs at main · zeam-vm/pelemay_fp_benchmark · GitHub use a limit of 100k.
zacky1972
Fix this issue. Thanks!
zacky1972
I added benchmark of
StreamandTask.async_stream. Thanksal2o3cr
I tried out some changes to increase the per-element workload, because there’s a fair bit of overhead with starting communicating processes. See notes in [WIP] make work adjustable, add extra tests by al2o3cr · Pull Request #1 · zeam-vm/pelemay_fp_benchmark · GitHub