Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Seems like good work. From what I've heard developing on MacOS has not gotten easier over the years. I do question the point, though. I suppose there's merit in knowing if your configuration causes thermal throttling, but what are you able to do about it? There's no fan profile to tweak or anything. Can you undervolt them?




> but what are you able to do about it?

On Macbooks with fans, I started tuning my fan curve with iStat Menus (https://bjango.com/help/istatmenus7/fans/#custom-fan-curve) because I noticed the default curve was lagging behind and thermal throttling kicked in before the fan even reach max speed.

For Apple Silicon specifically, I recently discovered that there is a "high power mode" (https://support.apple.com/en-us/101613) that allows the fans to run at higher speed. So I don't use the custom fan curves anymore, it helped me a lot (but it does get quite noisy on a 14" M4 Max)

For a Macbook Air, not much you can do besides closing stuff, or elevating the macbook and pointing a fan at it or things like that... but yeah it's a bit desperate!


An open question on fan curves

Environment: I am currently playing with a pid control function for my gpu fan, that is instead of saying "map temp x to fanspeed y"(fan curve) say "set fan to speed needed for temp z"(pid control)

Question: is there a reason pid type control is never a thermal option? Or put another way, is there something about the desired thermal characteristics of a computer that make pid control undesirable?

As a final thought, I have halfway convinced myself that in a predictable thermal system a map would match a set of pid parameters anyway.


> "set fan to speed needed for temp z"(pid control)

Why though? I generally don't care about the specific temperatures of my CPU and GPU, just that they don't get too warm, so for the CPU (AIO) I basically have "0% up until 45C, then increment up to 100% when it hits 90C" and the same for the GPU except it's always at 10%.

I guess I could figure out target temperatures, and do it the other way, but I'm not sure what the added complexity is for? The end results (I need at least) remains the same, cool down the hardware when it gets hotter, and for me, the simpler the better.

I also have two ambient temperature sensors in the chassi itself, right at the intake and the outtake. The intake one is just for monitoring if my room gets too warm so the computer won't be effective at cooling (as the summers here get really warm) and the outtake one is to check overall temperature and control the intake fans. In reality, I don't think I need to do even this, just the CPU+GPU temperature + set fan speed based on that feels simple enough to solve 99% of the things you'd like to be able to do here.


In my case the gpu fan was not changing speed automatically, (something, something, linux) which I discovered after an embarrassingly long time of poking at other things trying to figure out why my system was crashing so much. And now instead of doing the sane thing and figuring out how to get the fan speed map to work, I thought about it and came to this conclusion "I want my temps to be set value, say 45C, why not use a closed loop controller to find the fan speed necessary for that temp at any load?"

And now am about halfway through building pid fan control software and a janky gpu temp simulator so I can get some intuition on tuning the pid parameters before I set it on my actual gpu. you know, the fun part of computing. But now I am worried that perhaps there is a real reason nobody does it this way.


Aren't you ultimately gonna have to figure out why you cannot change the speed on the GPU, regardless of the approach? And then you're just back at square one?

I think no one is doing it that way, because there is simply no need for it. Sure, when I'm 3D printing some material it sometimes need the heatbed to be exactly 45C or whatever, but why would I care about the specific temperature of my GPU? As long as it's not throttled when GPU utilization is at 100%, I'm good to go.

KISS :)


This could be total nonsense and I am definitely out on a limb here, but I remember from my amateur crypto mining days (almost 15 years ago wow) that keeping everything relatively consistent is better for the longevity of your hardware (GPU/CPU mainly). Some people obsessed over getting temps as low as possible but that’s not very productive, diminishing returns and all of that. There is just generally a healthy temperature to keep things operating at most of the time, coupled with how hard you push the component in question (while not putting too much strain on your fans either). Basically: swinging/fluctuating is not good, consistency is good.

Again though I could be totally off. I just remember that being spread around as “conventional wisdom.”


> Basically: swinging/fluctuating is not good, consistency is good.

Yeah, I'd understand not wanting to go between 0C and 90C over and over. But my GPU idles at around 35C, maxes out at 85C or something, and going back and fourth will surely be preferable than staying with a single temperature but voltage clock the card. Especially considering performance.

But again, I'm using my card for ML, number-crunching, simulations and VFX, you might be right that the use case of cryptocurrency mining prefers a different thermal profile.


My CPU/GPU basically lives between 35-60C, I don’t mess with voltage. Just a huge case with lots of air flow/fans.

You're speaking the truth, as this is not nonsense - it is correct. At the micro level, thermal expansion/contracting is occurring across the variety of the circuit board materials and components. Hot is fine (not too hot), but it is the consistency that makes for longetivity.

I limit power consumption profiles and clock speeds unless higher power is required, and combine that with an oversized cooling system - keeps regular temps consistent.


Yeah that was my understanding as well. Basically it comes down to how much you are warping/straining the materials. It all seems rather intuitive to me but this is not my area of expertise and just because something makes sense doesn’t mean it’s correct lol

> Question: is there a reason pid type control is never a thermal option? Or put another way, is there something about the desired thermal characteristics of a computer that make pid control undesirable?

I've only every seen something like this in really high reliability equipment because they're worried about repeated thermal expansion causing cracks in the boards/solder joints. There is, often, heaters available for use if the temperature gets too low. For most equipment I think that the juice just isn't worth the squeeze so it isn't done.


PID loops work best when you have active control for both heating and cooling. PIDs are also best when you have a single optimal point you’re aiming at, there’s a kind of fundamental mismatch here in that there isn’t really a “too cold” for your system, you’re just aiming to keep the system below an upper limit while hopefully keeping fan noise to a minimum (otherwise you’d just send it and run at max 24/7).

A simple PID wants to keep it at a setpoint, but it’s easy enough to layer a target change on top of it, some hysteresis so it’s not pulsing on and off, perhaps with control authority depending on the the target, etc. but then that gets complicated and usually manufacturers aren’t going to expose those sorts of tunings to the user.

For most people a fan curve is more obvious to work with and it’s largely good enough without the irritating behaviors insufficiently tuned control loops can exhibit.


It would be cool if the bottoms of MacBooks weren’t flat and instead wavy or rippling to increase surface area. There are probably a lot of cool designs (ayyyyy) you could machine in.

There are laptops like that (e.g. the fanless Lenovo Chromebook Plus 14). No idea if it was actually engineered like that for thermal reasons.

Is there a value to increasing surface area on the top or bottom case of a MacBook? I'd imagine most of the thermal management is achieved by fan-directed airflow through the internal heatsinks and convection through the keyboard.

Well the MacBook Air has no fans so it’s a different beast from a design perspective. If I recall, at least with an earlier m series MacBook, notably improved performance could be gained by inserting a thermal pad between the chassis’ bottom panel and the compute module. Apple probably didn’t do this in an effort to avoid uncomfortably hot temperatures contacting people’s thighs.

Oh, I saw that video too!: https://www.youtube.com/watch?v=NnllZYEhvDQ

It's really cool that performance cores are the same between base, Pro, Max (, Ultra) chips of a generation. That really feels like Apple did it right.


I've been using Macs-Fan-Control since I picked up a Mac M1 a few years back and it works great. It lets you control the fan RPM based on CPU Core values.

I adjusted it to ramp the fans up at more conservative values because otherwise during intense usage periods it would hit 90C+.

https://github.com/crystalidea/macs-fan-control


I wanted this app to exist. Now it does!

I sometimes face thermal throttling because a process has gone wacko, and all I have to do is kill it. But first I have to notice it.

I rarely notice until half my battery is gone!


You know what, fair point. I know because my fans go haywire (except that one time my fans decided to just not work until I ran some incantations. The joys of Linux). If you're passively cooled, you get no feedback on CPU load. Makes sense.

Indeed, that's why apps like iStat Menus, Stats, Sensei etc (for macOS at least) are very useful, I keep the CPU usage and power usage in my menu bar at all times, this is very useful on battery. For example I know that my Macbook Air idles at ~2W-5W, so if I'm doing nothing special and it's using 15W, a process is doing some funny stuff

Yeah I’m on a MacBook Air, so no fans.

> but what are you able to do about it

Quit some apps probably. I often have a bunch of stuff running in the background that I haven't bothered to close yet. It also sounds like it'd be good for detecting software that's gotten stuck in a busy loop or similar.

And/or possibly take a tea break while it chills out.


I use TG Pro on my Macbook Pro to auto-cool my Mac. It drives me crazy that Apple lets your Mac burn to a crisp before kicking on the fans.

Is Apple actually letting the Mac burn to the point at which it has damage or other negative consequences? I've definitely observed they delay the fans until they're absolutely needed, but I trust their thermal management to not actually cause harm. (besides a warm lap)

I'm not sure, but I know I'm not the only one who is concerned about how hot it can get long before the OS kicks on the fans.

https://www.reddit.com/r/MacOS/comments/1kmacsf/macbook_pro_...


> but what are you able to do about it?

Depends on the environment, back when I had a MacBook, they still had fans, but the new ones are all passive, I think. So then the surface (or lack of it) below it would matter the most. If you keep it in your lap, on top of a hairy blanket, it'll be a lot effective at getting rid of the heat compared to if you have it sitting on a stone table, as just one example.

Edit: Seemingly the split of Air/Pro being passively/actively cooled seems to still apply today, so then checking fans, their performance and intakes/outtakes for chaff tends to be the best way, if you have a Pro.


New macbooks still have fans. Depending on the model.

MacBook Air is passive, MacBook Pro is not

You can move to a colder place or turn the room temperature down.

In the northern hemisphere you can just open a window at this time of the year.

Remember to put your coat and hat on!


They didn't say anything about that in the adverts.



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

Search: