kernel_task eats entire CPU when hot
I use my MacBook Pro outdoors on the job. For a significant portion of the year, the ambient temperatures here are in the 90-110 range.
While outdoors on the job (but at no other time), I have been having a problem where the machine bogs down to an absolute crawl. The reason is kernel_task eating up the entire CPU (450%+).
At first I thought this was a mal-interaction between Mac OS and Windows under Parallels, but after a year of this problem, I believe I have correlated it with high ambient temperatures. Quitting all apps makes no difference. Rebooting either makes no difference or makes a difference only for a very brief interval. Upgrading the OS from Yosemite to Sierra made no difference. The problem is more likely to occur later in the day than earlier, and when the computer has been in use for a while versus when I first unsleep it. When I return to the (air-conditioned) office and unsleep the computer, the problem is gone.
I've tried examining Console while the problem is occurring, but I see nothing obvious in the logs (which, of course, I can only examine at a snail's pace anyway), and the Sierra Console ***** much harder than previous versions.
On searching for this behavior, I found several postings implying that kernel_task looping was making machines hot, but only a very few suggesting that hot machines were causing kernel_task to loop. Some of the latter recommended something called CoolBook, but that stopped working in Lion, and seemed only to be a metering tool anyway -- I can meter the ambient temperature all day, but that won't make it get any cooler.
Does anybody know offhand why heat would cause kernel_task to loop?
Can anybody tell me what is it trying to do?
Failing that, can anybody tell me how to find out what kernel_task is doing when it's looping?
MacBook Pro, macOS Sierra (10.12.6)