Hacker News

New stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. A4list: Two weeks, folded small (A4 paper plan designer)(enzom.dev ↗)
    1comments
  2. Signal Enables Phone Number-Less Registration in Beta(privacyguides.org ↗)
    discuss
  3. Steve Wozniak launches merch store(daringfireball.net ↗)
    discuss
  4. VideoRouter – OpenRouter for video and image generation APIs(videorouter.sh ↗)
    discuss
  5. Perhaps I Got Lucky Never Learning Math(humanparadox.org ↗)
    discuss
  6. Gentrification signals are a lagging indicator of home prices, not a leading one(petervijeh.com ↗)
    discuss
  7. GPS time from ATSC broadcast PoC(fabian.fyi ↗)
    discuss
  8. iTerm2 Buddy – iTerm2 Companion App(iterm2.com ↗)
    discuss
  9. Firefox 156 opens PDFs 45% faster, plus a few annoying bug fixes(pcworld.com ↗)
    discuss
  10. Ribbit: A Small Scheme VM, Compiler and REPL in 4K (2021) [video](youtube.com ↗)
    1comments
  11. Well did LLMs for Mortals hold up 6 months after publishing(crimede-coder.com ↗)
    discuss
  12. One9s – A Bubble Tea TUI for OpenNebula Cluster Management(scszero.com ↗)
    discuss
  13. Flock cameras are riddled with security vulnerabilities and hardcoded creds(micahflee.com ↗)
    5comments
  14. How electric cars took hold in Australia(nytimes.com ↗)
    1comments
  15. waterfall: Induction Proofs in Lean(samth.github.io ↗)
    discuss
  16. Danish pharma giant Novo to use Anthropic's Claude to advance AI drug discovery(euronews.com ↗)
    1comments
  17. Show HN: Learn Claude Code – Interactive Mindmap(mikenikles.com ↗)
    discuss
  18. Show HN: Collected every single "What are you working on" project into a website(reachpad.app ↗)
    2comments
  19. Model Misalignment Reporting Framework(openai.com ↗)
    discuss
  20. What we learned from our traces(traces.com ↗)
    discuss
  21. You are doing your code gen wrong(testrigor.com ↗)
    discuss
  22. HarnessTax: How Much Does the Harness Matter for Coding Agents?(harnesstax.github.io ↗)
    discuss
  23. Can I get insurance for company renting humanoids for parties?
    1comments
  24. The Phenomenon of Bullshit Jobs: A Work Rant (2013)(davidgraeber.org ↗)
    discuss
  25. Show HN: Fivetran CLI is released to Beta(pypi.org ↗)
    discuss
  26. Assistant Benchmark(assistantbenchmark.com ↗)
    discuss
  27. Typesafe-computer-use drives a Mac toward a goal for 1/50th of a cent per step(github.com/awlevin ↗)
    discuss
  28. OpenAI's Hugging Face Hack Is the Best AI Safety Opportunity So Far(cahlik.net ↗)
    2comments
  29. Huai Su's Autobiography (2017)(vincentpoon.com ↗)
    discuss
  30. ElevenLabs Launches Reception(twitter.com/elevenlabs ↗)
    2comments

Vectorized and performance-portable Quicksort (2022)

160 pointsby 4h agoopensource.googleblog.com
21 comments
3h agoHN ↗

Very nice. Let's see Paul Allen's quicksort

3h agoHN ↗

(2022)

If you're curious why you would want a vectorized way to sort lists of numbers, one use case is building histograms - it's much easier to build a histogram if you've sorted all your samples first

3h agoHN ↗

(2002)

I wonder what apps have implemented this now that a few years have passed.

3h agoHN ↗

Actual title: “Vectorized and performance-portable Quicksort” (2022).

Actual sense in which it’s first:

Happily, modern instruction sets (Arm SVE, RISC-V V, x86 AVX-512) include a special instruction suitable for partitioning. Given a separate input of yes/no values (whether an element is less than the pivot), this "compress-store" instruction stores to consecutive memory only the elements whose corresponding input is "yes". We can then logically negate the yes/no values and apply the instruction again to write the elements to the other partition. This strategy has been used in an AVX-512-specific Quicksort. But what about other instruction sets such as AVX2 that don't have compress-store? Previous work has shown how to emulate this instruction using permute instructions.

We build on these techniques to achieve the first vectorized Quicksort that is portable to six instruction sets across three architectures, and in fact outperforms prior architecture-specific sorts.

3h agoHN ↗

Our implementation uses Highway's portable SIMD functions, so we do not have to re-implement about 3,000 lines of C++ for each platform.

Would they do the same thing today or have an LLM re-implement those 3000 lines of c++ ?

3h agoHN ↗

Id say that it is a lot more likely for the in-house, at least half a decade old library to be correct and performant than 3000 lines of an LLMs mediocre regurgitation of that code.

3h agoHN ↗

Guys, remember when language features allowed re-usability?

2h agoHN ↗

Barely, and rarely for C++ specifically.

I think software engineering in general is in a bit of a discoverability crisis. So many problems actually have solutions implemented... Somewhere. If you know about them. And are speaking the same vocabulary as the original implementer to realize the solution might be applicable to your problem. It's one of the reasons that jokes exist about microservice frameworks (https://www.youtube.com/watch?v=y8OnoxKotPQ) and how "We use Hadoop to store the output from our Kafka pipe, that's populated from our Traefik layer, all monitored with Grafana in front of Loki and Prometheus, of course" is a real sentence that has actual meaning and not a fever-dream.

LLMs are actually pretty impressive at being able to pull together disparate information from various domains into one place.

3h agoHN ↗

Well, it came out a while ago, so maybe we can be a bit silly:

There’s something sort of beautiful about mergesort and heapsort. Their names tell you what their main idea is, and how they work is immediately obvious.

Quicksort, on the other hand, has nothing beautiful about it and is named after it’s one redeeming feature (that it is quick for a lot of cases).

2h agoHN ↗

The beauties of quicksort are that it sorts in-place and that it is embarrassingly simple.

The in-place property can be utilized to make it very close to cache-oblivious algorithm.

2h agoHN ↗

How is it less beautiful?

Honest question, curious to hear about what that means to you.

1h agoHN ↗

To me it’s the fact that if you try to do it in real life (sorting a collection of objects in the real world), you just end up doing merge sort by accident.

It feels like an optimization of merge sort for computers, rather than a different approach.

This is also reflected in the way that it’s usually taught. Normally merge sort is presented first, and quick sort follows from observations about what would happen if you picked different partition points instead of dividing them in half, and how you can reduce the additional space requirements.

2h agoHN ↗

Maybe if Hoare had called it Partitionsort in 1960, the name wouldn’t have been memorable enough to catch on and become so popular.

3h agoHN ↗

Definitely needs (2022) in the title, I was a bit confused!

3h agoHN ↗

only sorts numbers? wouldn't radix be much better?

3h agoHN ↗

Just imagine when candidates will get asked by pre-revenue startups to implement a vectorized version of quick-sort in person in 10 mins, just for a SWE job which they do not use this themselves.

Only the likes of MAG 7, and a couple of hedge-funds would ask to do it since this problem directly applies to them.

But certainly not pre-revenue startups.

3h agoHN ↗

this was made like 4 years back most of the current algorithms use this already !

2h agoHN ↗

I didn't like the 9 MB image file in the blog. It took me few seconds to fully render the image.

49m agoHN ↗

Something I've wondered about sorting algorithms: Humans can visually spot the smallest and largest item from among 1000s of items, almost instantly (usually, depending on the variance)

Could AI be used this way? Just splat a visual representation of each item on a virtual wall and have an AI "visually" pick them out?