fluxsort

A fast branchless stable quicksort / mergesort hybrid that is highly adaptive. (by scandum)

Fluxsort Alternatives

Similar projects and alternatives to fluxsort

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better fluxsort alternative or higher similarity.

fluxsort reviews and mentions

Posts with mentions or reviews of fluxsort. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-10.
  • Fluxsort: A stable quicksort, now faster than Timsort for both random and ordered data
    1 project | /r/dataengineering | 11 Jul 2023
    2 projects | /r/programming | 4 Feb 2023
  • 10~17x faster than what? A performance analysis of Intel x86-SIMD-sort (AVX-512)
    12 projects | news.ycombinator.com | 10 Jun 2023
    Steps to build a fast, highly adaptive AVX-512 sorting algorithm:

    - Clone fluxsort (https://github.com/scandum/fluxsort)

    - Replace the partitioning code in flux_default_partition and flux_reverse_partition with the obvious AVX-512 version using a compare and two compress instructions

    - If you're feeling ambitious, swap out the small array sorting, or incorporate crumsort's fulcrum partition for larger arrays.

    I know why I haven't done this: my computer doesn't have AVX-512, and hardly anyone else's seems to. Maybe a couple Zen 4 owners. I'm less clear on why the tech giants are reinventing the wheel to make these sorting alrogithms that don't even handle pre-sorted data rather than working with some of the very high-quality open source stuff out there. Is adaptivity really considered that worthless?

    Fluxsort makes this particularly simple because it gets great performance out of a stable out-of-place partition. It's a bit newer; maybe the authors weren't aware of this work. But these algorithms both use (fairly difficult) in-place partitioning code; why not slot that into the well-known pdqsort?

  • A Rust port of crumsort, up to 75% faster than pdqsort
    8 projects | /r/rust | 21 May 2023
  • GitHub - scandum/fluxsort: A branchless stable quicksort / mergesort hybrid.
    1 project | /r/tech_article | 5 Feb 2023
  • Reinforcement learned branchless sorting functions for sort3, sort4 and sort5 were landed in LLVM
    3 projects | /r/rust | 4 Feb 2023
    With the right code and code-gen https://github.com/scandum/fluxsort/issues/5 these can be excellent at exploiting wide super-scalar architectures. I use them in both ipn_stable and to a larger extent in ipn_unstable which even uses the lesser known median networks for pivot selection. That said, I've done a lot of experiments with smaller sorting networks, sort3/4/5 as used in libcxx. And I found that they only look good in synthetic micro-benchmarks. If all your program does, is sort inputs of one specific size 3/4/5 in a hot loop and does nothing else, yes they are faster than insertion sort. But as soon as your application does some non-trivial amount of other work before calling sort again, the code complexity and additional branching required to get to that sort network is not worth it anymore. Depending on your architecture, my findings suggest they only start pulling ahead beginning at sizes 8-12.
  • Changing std:sort at Google’s Scale and Beyond
    7 projects | news.ycombinator.com | 20 Apr 2022
    Any chance you could comment on fluxsort[0], another fast quicksort? It's stable and uses a buffer about the size of the original array, which sounds like it puts it in a similar category as glidesort. Benchmarks against pdqsort at the end of that README; I can verify that it's faster on random data by 30% or so, and the stable partitioning should mean it's at least as adaptive (but the current implementation uses an initial analysis pass followed by adaptive mergesort rather than optimistic insertion sort to deal with nearly-sorted data, which IMO is fragile). There's an in-place effort called crumsort along similar lines, but it's not stable.

    I've been doing a lot of work on sorting[2], in particular working to hybridize various approaches better. Very much looking forward to seeing how glidesort works.

    [0] https://github.com/scandum/fluxsort

    [1] https://github.com/scandum/crumsort

    [2] https://mlochbaum.github.io/BQN/implementation/primitive/sor...

  • I tried creating a sorting algorithm in C language.
    4 projects | /r/algorithms | 22 Aug 2021
  • Fluxsort: A stable adaptive partitioning comparison sort
    1 project | /r/u_python7test | 25 Jul 2021
  • Hacker News top posts: Jul 25, 2021
    2 projects | /r/hackerdigest | 25 Jul 2021
    Fluxsort: A stable adaptive partitioning comparison sort\ (0 comments)
  • A note from our sponsor - InfluxDB
    www.influxdata.com | 26 Apr 2024
    Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →

Stats

Basic fluxsort repo stats
12
661
6.4
3 months ago

Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com