# Multi-threading packages - preferences, use cases. recommendations?

**URL:** https://discourse.julialang.org/t/multi-threading-packages-preferences-use-cases-recommendations/112436
**Category:** Performance
**Tags:** question, multithreading
**Created:** [April 2, 2024, 6:06pm UTC](https://discourse.julialang.org/t/multi-threading-packages-preferences-use-cases-recommendations/112436 "2024-04-02T18:06:31Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![braamvandyk](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/braamvandyk/32/5086_2.png) [@braamvandyk](https://discourse.julialang.org/u/braamvandyk)
#### Post date: [April 2, 2024, 6:06pm UTC](https://discourse.julialang.org/t/multi-threading-packages-preferences-use-cases-recommendations/112436/1 "2024-04-02T18:06:32Z")

</div>

I have so far not specifically needed to multi-thread any of my code. I have, out of curiosity, tossed the odd `@threads` in front of one or two `for` loops to see if it made enough of a difference to bother, but the calculations didn’t justify the overheads.

I am now looking at some work that has (I believe) some potential to multithread (a large number of identical calculations on an array of independent inputs). While I am perfectly happy to work with the standard `Threads` library, I noticed a surprisingly large number of (helper) packages to facilitate multithreading.

As someone who has not thought about this much before, I was wondering what the preferred packages are in this area? I have scanned through the documentation of a few ([Polyester.jl](https://github.com/JuliaSIMD/Polyester.jl), [ThreadPools.jl](https://github.com/tro3/ThreadPools.jl), [ThreadsX.jl](https://github.com/tkf/ThreadsX.jl), [FLoops.jl](https://github.com/JuliaFolds/FLoops.jl), etc.) and they all seem to be very interesting and user-friendly. I, however, can put aside time to learn only one or two of these.

Which package would be a good choice for the casual, non-expert user? And for what type of application, assuming there are horses for courses here? Even if this purely a personal preference, and not a technical recommendation, I would love to hear what people who actually use this would recommend.

---

<div class="post-metadata">

### Author: ![adienes](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adienes/32/37459_2.png) [@adienes](https://discourse.julialang.org/u/adienes)
#### Post date: [April 2, 2024, 6:15pm UTC](https://discourse.julialang.org/t/multi-threading-packages-preferences-use-cases-recommendations/112436/2 "2024-04-02T18:15:39Z")

</div>

`OhMyThreads.jl` is almost certainly what you’re looking for

---

<div class="post-metadata">

### Author: ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)
#### Post date: [April 2, 2024, 7:19pm UTC](https://discourse.julialang.org/t/multi-threading-packages-preferences-use-cases-recommendations/112436/3 "2024-04-02T19:19:48Z")

</div>

More generally, some of the links you posted point to the JuliaFolds organization (first of its name), which is now inactive. Development is happening over in [JuliaFolds2](https://github.com/JuliaFolds2), where you can find

- the forks of everything that was in JuliaFolds
- new niceties such as OhMyThreads.jl
