ips4o
nytm-spelling-bee
ips4o | nytm-spelling-bee | |
---|---|---|
2 | 2 | |
159 | 32 | |
- | - | |
1.8 | 0.0 | |
over 3 years ago | about 5 years ago | |
C++ | C++ | |
BSD 2-clause "Simplified" License | GNU General Public License v3.0 or later |
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.
ips4o
-
Hoare’s Rebuttal and Bubble Sort’s Comeback
A while ago I was tinkering with Quicksort and avoiding branch mispredictions.
https://easylang.online/blog/qsort_c.html
My implementation is pretty fast. At a size of 40 or 50, I switch to Insertion sort, and there the branchless bubblesort is significantly slower (I just tried it).
But I have to admit defeat to this SampleSort:
https://github.com/SaschaWitt/ips4o
-
Do Low-Level Optimizations Matter?
For sorting, not really. The big development in compute power is parallelism. ips4o facto (https://github.com/SaschaWitt/ips4o), if you want to sort large vectors really fast it makes more sense to sort in-place and in parallel. Parallel in-place radix sort is also choice, but way less flexible than comparison sort.
nytm-spelling-bee
- HiFive Unmatched – A RISC-V Linux development platform
-
Do Low-Level Optimizations Matter?
If you are designing a sorting algorithm component for production, it is critical to take into account all the blips and wrinkles that real components will face.
But when you are investigating how and why your CPU has the performance characteristics it has evolved, all those complications directly interfere with learning. The goal here was not to make a production-grade sorting tool; it was to understand what affects performance, using the sorting problem as a microscope.
The method is generally useful. Some years back I spent months refining a one-page program[1] to generate a list of word puzzles. After the first day, the list of puzzles was of no interest, but refining the means to produce it faster taught me a great deal.
[1] https://github.com/ncm/nytm-spelling-bee
What are some alternatives?
cpp-sort - Sorting algorithms & related tools for C++14
riscv-bitmanip - Working draft of the proposed RISC-V Bitmanipulation extension
pdqsort - Pattern-defeating quicksort.
root - The official repository for ROOT: analyzing, storing and visualizing big data, scientifically
riscv-sbi-doc - Documentation for the RISC-V Supervisor Binary Interface
quicksort-blog-post
LightGBM - A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.
Taskflow - A General-purpose Parallel and Heterogeneous Task Programming System