# \[ANN\] ThreadsX.jl: Parallelized Base functions

**URL:** <https://discourse.julialang.org/t/ann-threadsx-jl-parallelized-base-functions/36666>\
**Category:** Package Announcements\
**Tags:** package, announcement, parallel\
**Created:** [March 29, 2020, 5:40am UTC](https://discourse.julialang.org/t/ann-threadsx-jl-parallelized-base-functions/36666 "2020-03-29T05:40:14Z")\
**Posts on this page:** 4\
**Page:** 4

<div class="post-metadata">

**Author:** ![carstenbauer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/carstenbauer/32/4981_2.png) [@carstenbauer](https://discourse.julialang.org/u/carstenbauer)\
**Post date:** [October 8, 2021, 7:56am UTC](https://discourse.julialang.org/t/ann-threadsx-jl-parallelized-base-functions/36666/61 "2021-10-08T07:56:12Z")

</div>

FYI: I’ve also wrapped a significant part of [LIKWID](https://github.com/RRZE-HPC/likwid) in [LIKWID.jl](https://github.com/JuliaPerf/LIKWID.jl). It has a perf mode but also its own daemon for accessing low-level information like performance counters.

---

<div class="post-metadata">

**Author:** ![pitsianis](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pitsianis/32/26588_2.png) [@pitsianis](https://discourse.julialang.org/u/pitsianis)\
**Post date:** [November 29, 2021, 1:50pm UTC](https://discourse.julialang.org/t/ann-threadsx-jl-parallelized-base-functions/36666/62 "2021-11-29T13:50:26Z")

</div>

Does `ThreadsX` support thread schedulers like the `WorkStealingEx` from `FoldsThreads`? I would like to use it with the `ThreadsX.maximum`.

---

<div class="post-metadata">

**Author:** ![tkf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkf/32/17635_2.png) [@tkf](https://discourse.julialang.org/u/tkf)\
**Post date:** [November 30, 2021, 12:59am UTC](https://discourse.julialang.org/t/ann-threadsx-jl-parallelized-base-functions/36666/63 "2021-11-30T00:59:52Z")

</div>

You can use `Folds.maximum` from [GitHub - JuliaFolds/Folds.jl: A unified interface for sequential, threaded, and distributed fold](https://github.com/JuliaFolds/Folds.jl) for specifying the executor.

Folds.jl and ThreadsX.jl have some overlapping features but the differences are that Folds.jl can take executor while ThreadsX.jl implements non-fold algorithms like quicksort.

---

<div class="post-metadata">

**Author:** ![Akatz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/akatz/32/15164_2.png) [@Akatz](https://discourse.julialang.org/u/Akatz)\
**Post date:** [February 2, 2022, 12:44am UTC](https://discourse.julialang.org/t/ann-threadsx-jl-parallelized-base-functions/36666/64 "2022-02-02T00:44:34Z")

</div>

> [@tkf](#):
>
> Also, it’s not so hard to put it in Strided.jl. For nested parallelism, I think making `@threads for` nestable with your PR (or the other one) is enough.
> 
> Having said that, I think transducer-based implementation is going to be appealing if we have some kind of filtering built into the broadcasting syntax. I keep thinking about this but it’s not obvious to me (in the sense it’s hard to come up with som

@rayegun This might be something to consider for your sparse codegen plans

[Previous page](https://discourse.julialang.org/t/ann-threadsx-jl-parallelized-base-functions/36666.md?page=3)
