3 ms·
> (Almost) Nobody (really) cares about flops ...because we should really be caring about memory bandwidth In university, I was shocked to learn in a database c
by boberoni 4y ago
> (Almost) Nobody (really) cares about flops ...because we should really be caring about memory bandwidth
In university, I was shocked to learn in a database class that CPU costs are dwarfed by the I/O costs in the memory hierarchy. This was after spending a whole year on data structures and algorithms, where we obsessed over runtime complexity and # of operations.
It seems that the low-hanging fruit of optimization is all gone. New innovations for performance will have to happen in transporting data.
- malnourish 4y agoAt the risk of being flippant, I hope you learned about space complexity and the lessons behind how the algorithms and data structures you use impact performance via the cache.
- vladf 4y agoCompression converts I/O bottlenecks to compute ones again.
- Sherl 4y agoThere is an entire field of parallel algorithms which makes use of sequential algorithms to overcome some of these issues. So no it's not wasted. You would apply the knowledge to build parallel algorithms. There are projects in my school where we implemented a combination of CUDA and openMP in some and MPI+OpenMP in a few. I think the bottleneck is always gonna be there, its just how much and how you deal with it in hardware from the software front.
- bogomipz 4y agoI don't really understand your comment. Databases are generally I/O bound workloads, almost by definition of what they do. Regardless, data structures and algorithms are equally important in databases. B-Trees, linked-lists, buffers, LSM Trees, Bloom filters, caching strategies etc are all fundamental to databases. At any rate for a long time now the low hanging fruit of optimization has been throwing money and hardware at problems - NAND Flash, more cores, larger caches, tons of memory, edge networks etc. Those options are all still there.