Dave Andersen
da-data.blogspot.com · Personal blog · on HN since 2013
Dave Andersen, a computer science professor, writes about systems, Go, C++, Rust, and cryptocurrency mining performance.
What HN saysHN commenters cite his write-up on Monero's original proof-of-work function and CPU vector optimizations, and his work on teaching distributed systems in Go.
27HN people shared it
5linked it in comments
52stories submitted
850story points
6 months agolast shared
2013people per year2026
Most-shared posts
- 1Minting Money with Monero and CPU Vector Intrinsics7 people · 160 points · first shared 2014 · 19 comments on HN
- 2Teaching Distributed Systems in Go3 people · 119 points · first shared 2013 · 28 comments on HN
- 3Why my car cost more than taking Uber everywhere3 people · 6 points · first shared 2015 · 3 comments on HN
- 4Cleaning the ImageNet dataset2 people · 9 points · first shared 2016 · discussion on HN
- 5Finances for Recent CS Ph.D.s Headed to Academia2 people · 8 points · first shared 2016 · 2 comments on HN
- 6Moving from C++ to Go to improve Pi searching speed2 people · 5 points · first shared 2013 · discussion on HN
- 7Finding Bugs in TensorFlow with LibFuzzer2 people · 5 points · first shared 2017 · discussion on HN
- 8Integer Log10 in Rust and C2 people · 5 points · first shared 2023 · discussion on HN
- 9Reflecting on CS Graduate Admissions2 people · 3 points · first shared 2015 · discussion on HN
- 10Moving the Pi Searcher from Go to Rust2 people · 2 points · first shared 2020 · discussion on HN
- 11C++ still isn't cutting it1 people · 190 points · first shared 2020 · 205 comments on HN
- 12Briefly profitable alt-coin mining on Amazon through better code1 people · 84 points · first shared 2013 · 53 comments on HN
- 13Experience with ePaxos: Systems Research using Go1 people · 80 points · first shared 2013 · 19 comments on HN
- 14Two Years of Voice-Based Assistants, Echo and Home1 people · 73 points · first shared 2016 · 32 comments on HN
- 15Inside a better CUDA-based Scrypt miner1 people · 28 points · first shared 2013 · 3 comments on HN
What HN people wrote when they linked it
dgacmu · 2026-05-04
If folks are interested in the old Monero PoW function (and, uh, the reason they changed it), I wrote up a thing about it a long time ago:
https://da-data.blogspot.com/2014/08/minting-money-with-monero-and-cpu…
The history of people trying to design GPU or ASIC-resistant proof-of-work functions is long and mostly unsuccessful. I haven't looked into RandomX; it's possible they've succeeded here (or possible that with the alt-coin market mining profitability tanking after Ethereum moved to proof-of-stake, it just wasn't worth it).
shpx · 2019-01-12
> I woke up on May 28th, 2014 [one month after Monero launched], on vacation with my family in the middle of the desert, to find a copy of my private source code plastered across the bitcointalk message board. Announced as a "new optimized version" of the Monero currency miner, it was enthusiastically adopted by cryptocurrency miners across the world. And in the process of doing so, my daily profit from the Monero Mining Project dropped by over five thousand dollars per day.
...
> [Monero] was a fork of Bytecoin designed to not have the 80% premine. But its initial developer either didn't know, didn't care, or wanted to profit from the de-optimized hashing. That initial developer was pretty quickly given the boot by the community, and in came an unrelated group of developers who took it over---who were, as far as I can tell, completely unaware of the deoptimization. So things sat there for a few weeks in the same state as Bytecoin.
...
> This was a brilliantly designed proof-of-work function targeting the strengths of modern CPUs -- native AES encryption and fast 64 bit multipliers -- tuned to use a scratchpad exactly the size of the per-core L3 cache on Intel CPUs (about 2MB) that someone then wrapped in such a thick blanket of crap it was nearly unrecognizable until you started jumping in, tearing it apart, and putting it back together again.
https://da-data.blogspot.com/2014/08/minting-money-with-monero-and-cpu…
dragontamer · 2018-02-14
I mean, a serious FPGA lab would simply keep their FPGA techniques secret until they build a sizable advantage. There's a lot of tech that would be built up: a custom memory controller, an implementation of various Cryptocoin PoW systems, and of course, the Bill of Materials for the ideal power-efficiency for various designs, etc. etc.
Something like an FPGA + Interposer to HMC would be a huge R&D effort, and just as centralizing.
BTW: None of the designs I've talked about are strictly speaking commodity. They'd require at a minimum, custom PCBs. Maybe more advanced techniques for the best technology (again: Custom Interposer to HMC + FPGA interface + all the Verilog / VHDL code to make it happen).
As long as an FPGA-based shop kept their FPGA PCB secret, as well as their code secret, and their Device Drivers secret (You'd probably run Linux / Windows to talk to the FPGA over PCIe) then they're basically going to be ahead of the rest of the competition. Eventually, the competition would catch up, but a constant R&D effort into newer designs (ie: testing HBM2 vs HMC vs RLDRAM3 vs QDRIV, building relationships with suppliers, etc. etc.) could lead into a sustainable business edge.
Heck, early on in Monero's life, some dude got to like 40%+ of the entire network's Hash Rate by simply writing better CPU code and keeping it for himself, and then spending hundreds-of-thousands of dollars on AWS: https://da-data.blogspot.com/2014/08/minting-money-with-monero-and-cpu…
> By…
zaptheimpaler · 2013-02-13
Yeah, I heard about that. Thing is, I talked to him last sem and he wasn't sure that Go would be allowed at that point, so I decided to wait a sem. Have you heard anything from the people doing it in Go this time? Its awesome to have the opportunity to use it, but I think it would throw people off for a the first 1-2 weeks while they were getting used to it which might put them at a disadvantage relative to the class. Andersen said something similar too - http://da-data.blogspot.com/2013/02/teaching-distributed-systems-in-go…
diab0lic · 2013-12-26
I was very eagerly awaiting the optimizations mentioned in part 1[0]. Unfortunately the optimizations work primarily on the Kepler architecture (Geforce 6xx, 7xx, and the GridGPU chips on EC2) and not the older Fermi chips that are so popular for CUDA/Scientific Computing. All that said those quoting khash figures still seem to be getting poorer performance than the GTX 580, so I've got no right to complain.[1]
In any case it is very commendable that someone is making an effort towards bringing nVidia GPUs performance in line with that experienced by AMD owners. I'm glad someone with experience in memory usage optimization is looking into this.
To Dave: If you're reading this then thank you from the collective of nVidia GPU owners.
[0] http://da-data.blogspot.ca/2013/12/briefly-profitable-alt-coin-mining-…
[1] http://da-data.blogspot.co.uk/2013/12/scrypt-mining-changes-incorporat…