4 ms·
I did a bunch of testing with ARM (ThunderX) for an IPC workload using this codebase: github.com/sargun/wat. Unfortunately, it no longer runs on ARM, because I'
by sargun 9y ago
I did a bunch of testing with ARM (ThunderX) for an IPC workload using this codebase: github.com/sargun/wat. Unfortunately, it no longer runs on ARM, because I'm using inline assembly.
The ThunderX's power comes from the fact it's a 48-core CPU, which is awesome for web workloads. The problem comes in that inter-core transfer is ridiculously slow. To make a 64-byte RPC (return / response), was in the area of ~1100 nanoseconds, whereas x86-64 was on the order of 500 nanoseconds on a 2 generation old CPU. Testing on a more modern CPU cut the time further.
I'd love to see ARM either catch-up in single-core performance, or multi-core performance, but until then I don't feel like it's viable.
- m-j-fox 9y agoInteresting! Cavium's network processors running bare-metal have features to ensure no core is ever idle. Maybe at the expense of latency. The idea probably doesn't translate to running a bunch of virtual servers. You probably do better with a shared-memory abstraction than a network. Or, disappointing numbers may just reflect the fact that individual cores are slow. Bad news either way.
- bhouston 9y agoAccording to the article this CPU as compared to the ThunderX has 80% faster integer performance for the whole CPU and 2x faster integer performance per core - so major a improvement: http://images.anandtech.com/doci/11189/APM-X-Gene-3-performance_575px.png http://images.anandtech.com/doci/11189/APM-X-Gene-3-performa...
- sargun 9y agoTurns out that number crunching isn't what my CPU is doing most of the time. :-/.