3 ms·
I dont know man, 10 years ago I saw an alarmist talk from Martin Odersky about how 128 core computers were around the corner and we should all switch to Scala f
by skrebbel 4y ago
I dont know man, 10 years ago I saw an alarmist talk from Martin Odersky about how 128 core computers were around the corner and we should all switch to Scala for safe&easy parallellism and now when I go to the laptop shop it’s all 8, maybe 10 cores.
We’ve been promised these magical ultra parallel machines for a decade now and either they’re much harder to build than the alarmists say, or there's simply no market.
- sharpneli 4y agoOne reason is that they are already here. It's just called the GPU which happens to be way more parallel than puny 128 cores. That's a major reason why just bunch of low power CPUs are not really a thing, as they get trashed by GPUs. What we are seeing is a hierarchy of processing cores. It's already visible even in the desktop market. Intel has their efficiency cores. Apple has the power and efficiency cores. And the GPU on top. So we already have 3 different stages here, at the top the least amount of cores but the best single threaded performance going all the way down to, let me check how many threads, almost 10000 threads on a flagship consumer GPU running simultaneously right now.
- nine_k 4y agoIndeed. MCUs are even further in this regard, combining 32-bit and 64-bit cores.
- moonchrome 4y agoExcept GPU cores are nothing like CPU cores, GPGPU was around 10 years ago, and whatever scala language/framework features he was shilling are probably useless for that kind of programming - so that's a failed prediction.
- sharpneli 4y agoOn that I fully agree. And the reason why scala approach doesn't work is because it's horrendously inefficient. What actually does work at massive scale is the GPU style workload. Intel tried with their Larrabee on what happens if they just toss in ton of traditional low performance CPU cores. It failed to perform. It's really hard to beat the modern SIMT style GPUs when it comes to massively parallel computation.
- jrockway 4y agoYou can go to Micro Center and get a 128 thread processor. Everything you can rent on AWS has a similar number of threads ("vCPU" in their lingo). Now whether or not all 128 threads need to operate on the same chunk of memory or not is somewhat up for debate. It is very good for some applications (Let's Encrypt issues all of the Internet's TLS certificates with one Postgres instance), and irrelevant for others (just run 128 copies of your node app and send requests to them at random).
- threeseed 4y agoYou do know that developers deploy things to the cloud. And on AWS there are instance types with 448 VCPUs [1] and in fact 128 VCPUs is a very common instance type. In fact with the growth of Kubernetes these larger configurations are increasingly popular because it's more cost efficient to pack the containers into fewer/larger nodes. Also would add that Scala is in my opinion by far the best language for writing safe, highly concurrent code when you pair it with frameworks like ZIO. [2] [1] https://instances.vantage.sh https://instances.vantage.sh [2] https://zio.dev https://zio.dev
- detaro 4y ago> In fact with the growth of Kubernetes these larger configurations are increasingly popular because it's more cost efficient to pack the containers into fewer/larger nodes. That kind of is defeating your argument though: If people pack many containers on large boxes, the individual container probably is not making use of the possible parallelization across all cores.
- threeseed 4y agoMerely pointing out that it's a common instance type. If you have an app that runs 24/7 at 100% bursting across all cores then Kubernetes will simply schedule a single container on that instance.