I get a sort of perverse pleasure as I watch my algorithm use up 24 out of 32 of my CPU cores at 100%... this is what it was all for. No more running the heater for me!
@freemo Your computer is going to be a terribly inefficient heater, though. You should get more heat with the same power with hardware that's actually designed for heating, instead of hardware that has heating as a mere unwelcome side-effect.
@ccc Actually thats not true, all heaters are 100% efficient, though some may come from more expensive energy sources that would be better used doing something other than heating. But a computer will be just as efficient at heating a home as an electric heater would be.
@freemo Some of the electrical energy going into a computer is emittedd as light from the screen, though. This cuts into the electricity->heat conversion efficiency.
@freemo I'd go even further. A lot of the energy sent into the computer is emitted as motions of the air, propelled into motion be the internal fan. While this is intended to spread the heat out a bit, it does not in itself degenerate to heat *inside* the room - rather, it increases motion (and thus temperature exchange) between the inside and outside of the room. This, that portion of the power might actually *cool* the room.
@ccc Wait what? Im not sure i follow... air motion generates heat. If I take a large fan and run it in the middle of the room, the room will get hotter over time, not cooler. Not counting a few edge cases of course.
@freemo Air motion generates heat, yeah. But point a desk fan at an open window, and that heat isn't going to warm up the room it's in.
@ccc Well sure, but we arent discussing a room that is open to the outside world, or a fan pointing outside a window. We are discussing a closed room with a computer in it.
@freemo Oh, if it's a *closed* room, that's different. Sorry, I somehow thought we were discussing rooms in a general sense; the average room needs ventilation, and is therefore not completely closed.
@ccc when i say a closed room i dont mean perfectly sealed.. context is everything. I am talking about exactly the real world situation I started this off with as an OP.. that is a home, with ventilation, a rooms with doors open or shut, and a computer in it acting in place of an electric space heater.
When I say it will heat the room I really should have said "the house" but if you have the door open with a space heater this effect would be no different than with a computer.
the point here is not "does a computer make the room warmer".. it is "is a computer as efficient at warming a space as a space heater" and the answer is, effectively, yes.
@ccc
I would argue that the "optimize late" even as a general guidline is bad advice.. You should almost never optimize at the very end, nor should you optimize too early for things that may never be. Just as you shouldnt spend all your time designing and building a single class that takes significant effort before moving on to the bigger application. In general you should be doing everything at once incrementally. Every step should have some portion of every aspect including architecture, implementation, and optimization, and those steps should be spread out throughout the process.
This big point here is that even if your application runs just fine without optimization, you should still be doing it. Mainly because the architecture you decide on, including the API you expose to the outside world (which you cant really change too easily) may make good quality optimizations impossible in the end, even if its workable during development.