5 ms·
Can you describe more about the nature of your workloads?
by eric-hu 5y ago
Can you describe more about the nature of your workloads?
- forty 5y agoThose are HTTP APIs which are mostly reading from MySQL and S3. They are running on nodejs 12 (soon 16 ^^). They are using quite a lot of CPU, probably mostly due to having to parse large amount of JSON, and a bunch of cryptographic operations (mostly hmacs, AES - we are only using nodejs built-in crypto primitive) - but I don't know for sure to be honest - hence the choice of C type instances.
- pclmulqdq 5y agoThis workload looks really well suited for x86 cores. The x86 architecture has big advantages in both crypto and fast string parsing. It's interesting that graviton got cost parity given what you said.
- floatboth 5y agoThe only "big advantage" I can think of is that libraries like simdjson usually are still written for AVX first, NEON later. Otherwise it's not so clear cut, especially if not using any libraries like that.
- freemint 5y agoAnd SVE even later.
- floatboth 5y agoSVE hardware has been made of unobtainium so far. Graviton3 will change that pretty soon though.
- pclmulqdq 5y agoAlso, the datapath is a lot wider: NEON only does 16 bytes per vector, while Intel has fixed most of its frequency issues and can go up to 32 bytes per vector without throttling. AVX is also a lot more expressive, and can do more per instruction.
- forty 5y agoI have no idea if nodejs is taking advantage of this to be honest.
- skavi 5y agoSVE2 seems great though [0]. It looks at least as nice to use as AVX512. Graviton3 has SVE2, though I'm not sure what vector length they use. [0]: https://developer.arm.com/documentation/ddi0602/2021-09/SVE-Instructions https://developer.arm.com/documentation/ddi0602/2021-09/SVE-...
- deadmutex 5y agoHmm, I wish this sort of stuff was mentioned more on HN threads. Love to know when things are best suited for ARM and x86, etc.
- deleted 5y ago[deleted]
- BackBlast 5y agoMy experience with today's cloud arm offerings (gravaton/ampere) is node.js overperforms on arm relative to benchmark scores. Crypto has a definite handicap on arm. I've found that AMD underperforms on node.js. Seems the arm offerings are slanted to integer style workloads. Other packages and databases have brought me pain to use on arm. And anywhere I encounter pain I just don't migrate.
- forty 5y agoI'd say it's a good idea to try out on your specific workload and figure out what works best for your use case. The good news is that it's probably very very easy to switch and try all the CPUs offered by your cloud provider.