Live data from Hacker News

Why has CPU frequency ceased to grow? (2014)

software.intel.com

211–220 of 301 posts

Re: Why has CPU frequency ceased to grow? (2014)

#211
post #188

Earlier quoted context omitted.

Try it out and write the critique, then. The posts are positive because Rust is genuinely achieving rapid progress and stability... but certainly not without flaws. I've experienced plenty of frustration, albeit outweighed by the massive benefits for my use case. And there are whole problem domains to which it's just not suited. I see these mentioned pretty frequently.

For once there is no consensus how to do parallelism an concurrency in Rust since none of the library are matures.

Exactly! Rust doesn't solve any parallelism problems. It's no better than established languages like C# or F#, and probably worse.

Re: Why has CPU frequency ceased to grow? (2014)

#213
post #186

Earlier quoted context omitted.

Not especially. It has goroutines, C# has Tasks, C++ has green thread libraries. Added onto this are channels which are basically thread safe queues, other languages have those too. (I am aware that there are differences between what features goroutines and Tasks provides) Go's implementation of these things is nice, neat, and all included out of the box though which is nice. In general you can make parallelism easy,…

Except in other languages it's not part of the core, it's an external library. So on the end it's easy to write "parallel" code.

In C#, Task is part of the language, thread safe queues are part of the core libs.

Still not quite as tightly integrated as Go though.

Re: Why has CPU frequency ceased to grow? (2014)

#214
post #17
post #8

I took a class that went over this in depth like 3-4 years ago. Basically the message was that serial performance is saturating, and the only way to get speed improvements in the future is going to be by exploiting parallelism. However, most programmers, and programming languages, remain stuck in a serial-by-default paradigm. I'm surprised that there hasn't emerged a "parallel-by-default C++" kind of language + hardw…

While Rust doesn't promote a specific model for parallelism, it's stronger compiler helps a lot with that. https://doc.rust-lang.org/beta/nomicon/concurrency.html https://doc.rust-lang.org/book/second-edition/ch16-01-thread... I don't think fixing C(++) can give what Rust can give, because Rust has a clean start with these strong guarantees built-in while for C(++) it would always be an addon. Defaults are powerful.

[deleted]

Re: Why has CPU frequency ceased to grow? (2014)

#215
post #97
post #52

Earlier quoted context omitted.

Unfortunately it requires more than just a change of language, it requires a change in mode of thinking by developers. People are very used to reasoning in terms of "do X, then Y, then Z" or "compute a value X then do A or B on the basis of that". In order to achieve automatic parallelism you need e.g. a type+proof system that can determine that X/Y/Z are independent, or a system that can partially execute both A and…

I think it is easier to understand by those of us that also had electronic design as part of the engineering degree.

[deleted]

Re: Why has CPU frequency ceased to grow? (2014)

#216
post #17

Earlier quoted context omitted.

While Rust doesn't promote a specific model for parallelism, it's stronger compiler helps a lot with that. https://doc.rust-lang.org/beta/nomicon/concurrency.html https://doc.rust-lang.org/book/second-edition/ch16-01-thread... I don't think fixing C(++) can give what Rust can give, because Rust has a clean start with these strong guarantees built-in while for C(++) it would always be an addon. Defaults are powerful.

A really powerful outworking of it is seen in the Rayon crate, where you can change a sequential iterator into a parallel iterator just by adding the crate, importing the trait and changing `iter` to `par_iter`. If it’s not thread-safe to do, then it won’t compile. (That’s the big difference from C++.) If it is, it will, and it’ll be smart about how it runs, spreading the load across all available cores pretty much o…

Another good crate to look at for this is Actix, Rust actors framework:

https://github.com/actix/actix

Re: Why has CPU frequency ceased to grow? (2014)

#217
post #91

Earlier quoted context omitted.

> Basically the message was that serial performance is saturating, and the only way to get speed improvements in the future is going to be by exploiting parallelism. People have been warning us about this for about 10 years now, but I still don't see those 64-core CPUs I was promised anywhere. If we had the amount of parallelism we were told we were going to get, we could give every app its own core. OSes could even…

If you can find an Nvidia GTX 1080, that has 2560 cores.

Where "core" ~= vector lane

Re: Why has CPU frequency ceased to grow? (2014)

#219
post #171

Earlier quoted context omitted.

Probably because it ran on PowerPC. If I remember my systems design class from 20 years ago, RISC makes implementing or scaling multiprocessing easier.

Intel processors essentially are RISC now internally. They just expose more complex instructions as a higher level API.

They are not RISC internally. In fact I read an interview with an intel engineer that an intel cou has >10,000 uops. That’s not in any sense reduced!

And it doesn’t make sense to apply the term ”risc” to internal CPU design anyway.

Re: Why has CPU frequency ceased to grow? (2014)

#220
post #8

I took a class that went over this in depth like 3-4 years ago. Basically the message was that serial performance is saturating, and the only way to get speed improvements in the future is going to be by exploiting parallelism. However, most programmers, and programming languages, remain stuck in a serial-by-default paradigm. I'm surprised that there hasn't emerged a "parallel-by-default C++" kind of language + hardw…

look at VHDL or Verilog programming for FPGAs. Its effectively exactly what you're talking about.
Post reply on HN