Live data from Hacker News

Why has CPU frequency ceased to grow? (2014)

software.intel.com

291–300 of 301 posts

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

#291
post #278

Earlier quoted context omitted.

Yes they do, they are the building blocks for async/await, get a thread allocated from a thread pool when running, and you can control how the scheduling takes place, by providing your own scheduler implementation.

That is pretty cool, C++ has come a long way since I used it last about 15 years ago. It seems like both languages are equally capable here, with C++ having more power and foot guns when required as usual.

The code snippet example I wrote was actually .NET with TPL.

C++ with PPL on Windows, would be

    task handle = create_task([] { /* ... */ });
And with standard C++

    future handle = std::async(std::launch::async, [] { /* ... */ });
In both cases, with C++20 it will be possible to co_await handle, which you can already play with on clang and VC++.

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

#292
post #183

Earlier quoted context omitted.

That's what happens when you have a new hip language/framework that has a lot of hype. You see the same with Rust, Elixir, VSCode, Elm, Purescript, ReasonML, etc. It's not astroturfing, it's just a lot of beginners that are overly excited to proselytize their new discovery.

I don't think it's fair to claim these people are all beginners. More likely it's a phenomenon where mature languages have been around long enough that you already know their strong and weak points, but when you look at a language in development you only see its potential .

I mean, it's not just true for new languages. For Haskell, you see beginners claim that "it's a perfect language and can do no wrong", while experts in the language will acknowledge its faults, including: long compile times, the downsides of laziness, etc.

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

#293

Earlier quoted context omitted.

The 60 mV/dec limit applies to all materials, not just silicon. Beating it will require a fundamentally different type of operation. Agree that changes in materials will require massive investment and learning.

Sure, but many materials have much higher electron and hole mobility than silicon has.

He's talking about the Boltzmann limit of MOSFETs

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

#294
post #158

Earlier quoted context omitted.

How did the BeOS designers make the BeOS so good at multiprocessing? I remember how well the operating system scaled with more than one CPU.

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

It ran pretty well on Intel also. And it originally ran on AT&T Hobbit, whatever the hell that was.

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

#295
post #74

Earlier quoted context omitted.

I.e. the problem is the state of processor, which need to be erased. So we can make stack of stateless processors, which will readily accept fresh data, because they will need to fill capacitors only, not discharge, and then discharged after use. Kind of multicore design, but with each core used for only 1/n of time at e.g. 1Thz frequency. Unlike parallel system, sequential calculation will work faster in such setup.

discharging and charging capacitance is generally pretty symmetric. I don't think what you're suggesting would provide much benefit.

But heating and cooling is not symmetrical. We can heat a processor much faster than cool it. So, if we need to cool a processor 10x faster than we can, just use 10x more processors, and switch them in order, to allow them cool after use in overclocked mode. Using this simple technique, frequency can be raised by few GHz, which is important for serial computations.

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

#296
post #41

Earlier quoted context omitted.

Prove it. Prove it by replacing Sleep in your example with some number crunching, and show how it scales with the number of cores in your CPU.

https://imgur.com/a/DNpw3 Running the following code. https://play.golang.org/p/k_rRxNAyb0i I can assure you that go runs across all processors by default. https://docs.google.com/document/d/1At2Ls5_fhJQ59kDK2DFVhFu3...

That's not what he's saying. He knows go can use all processors if GOMAXPROCS is set correctly, the argument seems to be that there will be race conditions just like any other threading, which seems pretty self evident to me: yes, multi-threaded code can have concurrency issues, film at 11...

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

#297
post #253

Earlier quoted context omitted.

That's just a plumbing problem which can be solved by lowering temperature or using a different material with lower resistivity. Yes, it'll probably cost more, but it's a problem that can readily be solved. But if your switching frequency is slow, it doesn't matter if you use a superconductor for wires. It is the switching frequency that truly determines the limits for gate times, which in turn determines how fast yo…

>That's just a plumbing problem which can be solved by lowering temperature or using a different material with lower resistivity. Yes, it'll probably cost more, but it's a problem that can readily be solved. No it's not. What is this magical material with ultra low resistance? And how do you plan to reduce capacitance? Btw, manufacturing terahertz speed transistors is very difficult. There are Mott FETs which will sw…

There's nothing magical about it. As has been pointed out, chips with superconductors has been a thing for a long time (at least in experimental physics) and there's nothing magical about it, but resistivity is a (nonlinear) function of temperature and lowering it almost always lowers the resistance, so you can achieve this to an extent even with non "magical" materials without going to cryogenic temperatures. You don't have to reduce the capacitance; you'll be fine as long as you can lower the resistivity.

Do you have any references for FETs that switch at 10THz? I've never heard of it and I'm interested in the physics of it.

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

#298
post #131
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…

New languages are coming up, it will just take long adoption cycles, given the library and surrounding tooling ecosystem has to be mature enough to go with it. Prominent examples being Go and Perl 6. Perl 6 especially, given how audacious the project is. There are performance issues with it currently though, from what I hear they are working to fix it soon.

I remember someone posting some Perl 6 code and C code that did the same thing. The Perl 6 code was shorter, easier to understand, more correct (Unicode), and was reported to be faster for what they were doing.

There are things which are slower, but since it is a higher level language it may be easier to try multiple algorithms one of which may be significantly faster. It also has many useful features included, which can be optimized in ways that aren't recommended for user code. (writing the algorithm in NQP) There is also a code specilizer (spesh) and a JIT.

Basically for many things it can be fast enough. Also if you profile your code and find something that is egregiously slow you should report it. Many times such things get optimized quickly.

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

#299
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…

>Basically, Rayon makes data parallelism really easy in a way that few if any other languages do.

Syntax-wise, there's OpenMP which can turn a for-loop into a parallelized for-loop (independently scheduled iterations) with just some syntactic sugar on top of the loop.

OpenMP has support for at least C++ and Fortran, and is not hard to use.

I wonder how Rayon compares to OpenMP.

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

#300
post #239

Earlier quoted context omitted.

used to yield orders of magnitude more performance, but optimizers have evolved and today there's not much difference. If this were true, you'd expect see a lot more native python and the like.

Python is interpreted so super optimizing compilers, SIMD auto vectorization and other recent goodies necessary to get that performance won't work.

[deleted]
Post reply on HN