Data sorting world record: 1 terabyte, 1 minute
scienceblog.com
scienceblog.com
I don't know why they measure in bytes, which is nearly meaningless. I can sort a single 1TB record in my head right now. There, I'm done.
Its hard to understand if you are just a programmer, a computer science graduate can easily identify with size in bytes since they represent accurate amount rather than vague billion entries.
In later case you need to specify two variables size of entry and number of entries.
the larger entries become the easier is to sort them, if they get smaller then you can have an O(n) sorting ability.
The 100 byte records is fixed in literature and well understood by practitioners, what you are experiencing is your naivete.
I expect these aren't quite comparable (the op link talks about it being non-generalized data), but it's interesting how these high performance numbers are becoming more achievable.
That's some pretty impressive hardware. Must've been pretty fun. Not something just anyone gets to work on. :)
"We asked ourselves, ‘What does it mean to build a balanced system where we are not wasting any system resources in carrying out high end computation?’” said Vahdat. “If you are idling your processors or not using all your RAM, you’re burning energy and losing efficiency.”
From personal experience, the hardest part of dealing with super-high-end hardware is utilizing the capacity that it gives you. You don't just throw a larger computer at a program written in Blub for a smaller system, and gain instant world-record performance. If nothing else, you usually have to re-architect your code to match the assumptions of the new hardware.
Also, the I/O numbers you're assuming are probably very high: you never get 100% utilization of a network interface -- 70% is more realistic. And for a problem like this, you're bounded not by the product of the bandwidth of the pairwise interconnects (i.e. (10Gbps * 52) / 8 == 65GB/s), but the bandwidth of any single interconnect, because you can get to a point where you're transferring most of the data across a few connections. Also, latency matters a lot, because a small connection latency can easily throttle your overall bandwidth when you're moving lots of small chunks of data.
Realistically, these guys probably had something more like 7Gbps / 8 = ~.88 GB/s bandwidth between nodes, not counting latency. That means that it would take ~1163s to transfer 1TB between any two nodes -- which means that that naive solution (distributed merge sort where the intermediates are transferred between nodes) is already ruled out. So, like I said, we're back to software improvements, if only to utilize the hardware available.
If that is correct, most improvements would probably come from hardware and software use-case tuning.