SaaSHub helps you find the best software and product alternatives Learn more →
SortingNetworks Alternatives
Similar projects and alternatives to SortingNetworks
-
ASP.NET Core
ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
-
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.
-
Graal
GraalVM compiles Java applications into native executables that start instantly, scale fast, and use fewer compute resources 🚀
-
pypy
Discontinued The unofficial GitHub mirror of PyPy (mirrored via https://github.com/mozillazg/job-mirror-hg-repos)
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
csharp-source-generators
A list of C# Source Generators (not necessarily awesome) and associated resources: articles, talks, demos.
SortingNetworks reviews and mentions
-
NSA Cybersecurity Information Sheet remarks on C and C++.
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?
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
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
> 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
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
The code (MIT license) is available here: https://github.com/zvrba/SortingNetworks
-
A note from our sponsor - SaaSHub
www.saashub.com | 19 Apr 2024
Stats
zvrba/SortingNetworks is an open source project licensed under MIT License which is an OSI approved license.
The primary programming language of SortingNetworks is C#.
Popular Comparisons
- SortingNetworks VS static-sort
- SortingNetworks VS std_find_simd
- SortingNetworks VS ikos
- SortingNetworks VS pypy
- SortingNetworks VS ASP.NET Core
- SortingNetworks VS JDK
- SortingNetworks VS temp-webapi-monolith-architecture
- SortingNetworks VS tock
- SortingNetworks VS crates.io
- SortingNetworks VS csharp-source-generators