Interesting. Just tried running "cat /proc/cpuinfo" on an X86 Lambda, and I get:
siblings : 2
cpu cores : 2
Which would imply no hyperthreads, to the degree that their hypervisor is telling the truth. So Lambdas are then one of the few places where an x86 core is a core. Thanks for the info.
I highly recommend Andy Jassy's infrastructure keynote from re:Invent 2020. Among many other things, he discusses why Amazon never gives you a single hyperthread (it's mostly about cache coherency, IIRC).
Thank you for the reference. Clearly you are right that Lambda runs on EC2. Specifically they mention that Lambda runs on EC2 bare metal instances (i.e. without any of the containerization), which makes a lot of sense to me.
I feel in this case the distinction between EC2 and EC2 bare metal is very important. Based on the GP's use of "EC2"[0] its clear they meant "the EC2 containerization model/code", rather "EC2" to mean "the EC2 hardware and/or software together".
I'll correct my original response: "While Lambda does run on EC2 hardware, Lambda uses Firecracker rather than the EC2 containerization model/code. I would be very surprised if we can correctly infer anything about Lambda's containers based on EC2's containers.
Maybe one day in the future (or already?) EC2 will also use Firecraker. At which point this comment should be deprecated.
[0] "You can look at the EC2 t instance series to see how AWS might think about constraining resources."
Yes, I had assumed SMT because they say they give you between 2-6 vCPUs. I assumed that meant 2,4, or 6 hyperthreads...where they could keep you from sharing a core with neighbors. But, seems you get real cores.