Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How come we don't have 1024 cores by now?
9 points by kristiandupont 5 days ago | hide | past | web | favorite | 4 comments
In 2007, I wrote an article about concurrency (https://www.gamasutra.com/view/feature/129998/the_transition_to_concurrency.php) and about how Moore's Law was coming to an end. That has happened but to my surprise, my brand new laptop still barely has 4 cpu's. I was certain we would have started advancing "horizontally" instead but that never truly happened. How come?

We do in GPUs, which is where thread-heavy computation is at these days.

A few things.

Advances in computing are limited by memory bandwidth. Even if you could accelerate a computation 10,000x by implementing it as an ASIC, you would need to increase memory bandwidth 10,000x as well.

People are getting better at taking advantage of multiple cpus, but we have limited ability to get parallelism for many applications that matter, such as web browsing, so we aren't ready to break up those tasks to run on 1024 low-performance but low-power CPUs.

You can get server machines with 64 cores on a "chip", even put two cores together for 128. Those sell like hotcakes for cloud computing.

According to activity monitor, I have around 2200 threads running at the moment. Obviously most of those are idle but it still seems to me that we should be able to utilize multiple cores even without switching to whole new paradigms?

It depends on the workload. If you can cut the work onto 1 millisecond chunks that barely interact you can scale fine in this paradigm.

Threads are used both to schedule work across cores but also to manage waits on i/o, a server will have threads running when it is waiting for a client and a Windows or Linux or Mac has many servers running for local use.

Threads are not efficient for I/O scheduling (async/await or select or similar apps are better, but harder to code for.). They are efficient enough for your laptop to have 2000 of them.

Applications are open for YC Winter 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact