SortingNetworks VS JDK

Compare SortingNetworks vs JDK and see what are their differences.

JDK

JDK main-line development https://openjdk.org/projects/jdk (by openjdk)
InfluxDB - Power Real-Time Data Analytics at Scale
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.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
SortingNetworks JDK
7 193
20 18,442
- 1.1%
5.2 10.0
over 2 years ago about 5 hours ago
C# Java
MIT License GNU General Public License v3.0 only
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

SortingNetworks

Posts with mentions or reviews of SortingNetworks. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-11-11.
  • NSA Cybersecurity Information Sheet remarks on C and C++.
    7 projects | /r/cpp | 11 Nov 2022
    On a side-note: I did an experiment to see whether C# could match C++ for vector-intensive computing: https://github.com/zvrba/SortingNetworks
  • What are the hardest topics in C#/.NET you would like to know more/better?
    4 projects | /r/csharp | 26 Sep 2022
    Here's a concrete example of using pointers to access raw array memory and use SIMD intrinsics: https://github.com/zvrba/SortingNetworks
  • i made std::find using simd intrinsics
    2 projects | /r/cpp | 27 Nov 2021
    And now, for the fun of it, you can try with sorting. I've already done the hard work in C# (AVX2 intrinsics): https://github.com/zvrba/SortingNetworks
  • Show HN: Fast(er) Sorting with Sorting Networks
    3 projects | news.ycombinator.com | 26 Nov 2021
    > I can't read C#

    Not much different than C++...

    > Do you generate the sorting network at compile time

    No, except for power of two sizes up to 32. I experimented with run-time code generation (and compilation) for given sizes, but... the generated machine code has too long prologue and epilogue for that to be worth-while (though the sorting code itself is well optimized, as if directly compiled from source). That's also mentioned in "Benchmarks" section.

    > What's your sorting network template?

    See References.

    > And probably related: how is vectorization used?

    See the code. There's no template, the code is fully "dynamic" and adapts itself to array size. As for vectorization... it compares/swaps 8 ints/floats at once, with some swizzles to rearrange the elements. For sizes that are not power of 2, I use masked loads and stores and some extra logic for deciding which comparisons to skip. (I treat non-existing elements "as if" they were set to intmax or float infinity.)

    This file https://github.com/zvrba/SortingNetworks/blob/master/Sorting... has it all.

    > this week-end project

    Sorry, can't read Rust. (Though it reminds me of days spent coding in Perl.) Most networks are not SIMD-friendly and the code as it's now is the 3rd iteration where I figured out how to best leverage SIMD to exploit the recursiveness and regularity in the network. (Not the least, no random memory accesses: only forward and backward loads and stores.)

    Without SIMD, I don't think it'll be worth it, because network will also access the memory randomly (just as "standard" sort), and in addition it has worse algorithmic complexity.

  • Fast(er) sorting with sorting networks, part 2
    1 project | /r/csharp | 26 Nov 2021
    So recently I posted a link with code for fast sorting of int arrays. People wondered how they'd perform for large arrays (1M elements), and I conjectured they'd be way slower because of their algorithmic complexity. Turns out I was wrong, they're 3-6x faster for arrays of length up to 1M elements. Updated code and benchmarks are now available at https://github.com/zvrba/SortingNetworks
  • Fast(er) sorting with sorting networks
    1 project | /r/csharp | 14 Nov 2021
    The code (MIT license) is available here: https://github.com/zvrba/SortingNetworks

JDK

Posts with mentions or reviews of JDK. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-19.
  • Show HN: I Built a Java IDE for iPad
    1 project | news.ycombinator.com | 30 Apr 2024
    I felt out of the loop, thinking that Zero VM was some kind of new distro for OpenJDK but chasing <https://packages.debian.org/sid/openjdk-22-jre-zero#:~:text=...> to <https://sources.debian.org/src/openjdk-11/11.0.23%2B9-1/debi...> lead me to https://github.com/openjdk/jdk/tree/jdk-22-ga/src/hotspot/cp...

    It seems that it's a specific CPU target for the Hotspot JIT for non-mainstream architectures (or for research purposes, as I saw mentioned once)

  • JEP draft: Exception handling in switch
    6 projects | news.ycombinator.com | 19 Apr 2024
  • Java 23: The New Features Are Officially Announced
    5 projects | news.ycombinator.com | 17 Apr 2024
    Completely gutted from the OpenJDK, last I checked. See here for the culprit PR: https://github.com/openjdk/jdk/pull/18688
  • macOS 14.4 might break Java on your machine
    4 projects | news.ycombinator.com | 18 Mar 2024
    > Yes, they're changing one aspect of signal handler use to work around this problem. They're not stopping the use of signal handlers in general. Hotspot continues to use signals for efficiency in general. See https://github.com/openjdk/jdk/blob/9059727df135dc90311bd476...

    This whole thread is about SIGSEGV, and specifically their SIGSEGV handling. However, catching normal signals is not about efficiency.

    Some of their exception handling is still odd: There is no reason for a program that receives SIGILL to ever attempt continuing. But others is fine, like catching SIGFPE to just forward an exception to the calling code.

    (Sure, you could construct an argument to say that this is for efficiency if you considered the alternative to be implementing floating point in software so that all exceptions exist in user-space, but hardware floating point is the norm and such alternative would be wholly unreasonable.)

    > The wonderful thing about choosing not to care about facts is having whatever opinions you want.

    I appreciate the irony of you making such statement, proudly thinking that your opinion equals fact, and therefore any other opinion is not.

    This discussion is nothing but subjective opinion vs. subjective opinion. Facts are (hopefully, as I can only speak for myself) inputs to both our opinions, but no opinion about "good" or "bad", "nasty" or not can ever be objective. Objective code quality does not exist.

  • The Return of the Frame Pointers
    6 projects | news.ycombinator.com | 17 Mar 2024
    I remember talking to Brendan about the PreserveFramePointer patch during my first months at Netflix in 2015. As of JDK 21, unfortunately it is no longer a general purpose solution for the JVM, because it prevents a fast path being taken for stack thawing for virtual threads: https://github.com/openjdk/jdk/blob/d32ce65781c1d7815a69ceac...
  • JDK-8180450: secondary_super_cache does not scale well
    1 project | news.ycombinator.com | 14 Mar 2024
  • The One Billion Row Challenge
    10 projects | news.ycombinator.com | 3 Jan 2024
  • AVX2 intrinsics for Arrays.sort methods (int, float arrays)
    1 project | news.ycombinator.com | 16 Dec 2023
  • A gentle introduction to two's complement
    1 project | news.ycombinator.com | 23 Nov 2023
  • Java JEP 461: Stream Gatherers
    3 projects | news.ycombinator.com | 3 Nov 2023
    Map doesn't implement the Collection interface.

    https://github.com/openjdk/jdk/blob/master/src/java.base/sha...

What are some alternatives?

When comparing SortingNetworks and JDK you can also consider the following projects:

static-sort - compile-time sorting networks in rust

Graal - GraalVM compiles Java applications into native executables that start instantly, scale fast, and use fewer compute resources 🚀

std_find_simd - std::find simd version

aircraft - The A32NX & A380X Project are community driven open source projects to create free Airbus aircraft in Microsoft Flight Simulator that are as close to reality as possible.

ikos - Static analyzer for C/C++ based on the theory of Abstract Interpretation.

steam-runtime - A runtime environment for Steam applications

pypy - The unofficial GitHub mirror of PyPy (mirrored via https://github.com/mozillazg/job-mirror-hg-repos)

OkHttp - Square’s meticulous HTTP client for the JVM, Android, and GraalVM.

ASP.NET Core - ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.

kitten - A statically typed concatenative systems programming language.

temp-webapi-monolith-architecture

intellij-community - IntelliJ IDEA Community Edition & IntelliJ Platform