Chip designs routinely use energy metrics like picojoules per bit to express the hardware's power budgets and efficiencies, generalizing these kinds of figure of merit to software seems natural. While I doubt that running a particular version of software can automagically make a computer "green" (If WebKit becomes faster, users are simply going to open more tabs), but I think this can be a reasonable and meaningful concept within a clear technical context.
I get that, but given a world of finite resources and attention, is software really to the point where we should be redirecting the pressure off of more egregious polluters?
It's like telling people to take shorter showers in a drought, when residential water consumption is a miniscule fraction compared to agricultural or industrial use. To the point where short showers affects nothing and benefits no one. When we really should be cutting allotments given to farmers and industry. This is something that goes on very frequently where I live.
I always find it fascinating that these sorts of conferences are held in Dubai of all places - a country that is known for having some of the most environmentally unfriendly, fuck-you money budgeted projects on Earth.
It's purposeful. It's green washing money - they are able to get good press by doing something pretty minor, like holding a conference. But that money ultimately came from causing far greater environmental harm.
I've been on about this for years. Very few people give a shit until there is a price on not doing it. We already have 8 layers of VMs running interpreted stuff on supercomputers just to display a web page. What could possibly go wrong.
Edit: Back to bare metal OS + compiled stuff is where I want to head. Go on Debian on native hardware is the most bearable stack in that space I have used.
The reason we have to use VMs is because our OS doesn't do it's job, securely and efficiently multiplexing the hardware. In almost all cases, it gives all of the user's authority to every single instruction the user executes. It's like forcing someone to grant a power of attorney in order to make a transaction, even it it's to buy an ice cream cone.
You use a VM to make it possible to reset the state of an OS, and to limit its capabilities, so that you limit the capabilities of anything it runs.
Does the green software conference have talks about this topic and how to fix it? That would be very interesting!
(edited after posting: I read the article, and I see it's a movement, but not a conference. So same question, would love to see operating systems improvements be part of the green software movement, do you know if it is?)
Because all that extra security makes the stack unbearable. That is why it's taken so long to converge on a solution, and yet even that still changes every few years.
To say nothing of the beautiful simplicity of a device simply running instructions as given.
I don't want a future in computing where I can't direct my own physical property to follow the programming I tell it to. A world where everything is a tenancy and there are security checkpoints and fine-grained access control on every block sucks in computing just as much as it does in real life.
Consider a wallet, with cash in it.... it's a fine grained capabilities system.
We would regularly be given $0.25 (I think?) to buy milk for lunch at school in 1st grade. Heck, buy the time I was 10 or so, I'd regularly be handed $20, and go and buy cigarettes for Mom with it, while she waited with my younger sisters in the station wagon outside.
No matter how confused, or forgetful, or mischievous, the maximum loss was the amount handed over the in first place. It was a far safer model than handing over a credit card.
Each bill is an economic token. Its a very simple model, and any side effects from using them are immediately known.
If your OS were to make it just as easy to use (grant permission to the program you're running) a specific file, or folder, or network connection, and nothing else you wouldn't need to worry about virii, worms, malware, etc... you'd have decided what to open, and by default, nothing else goes along for the ride.
Replacing dialog boxes with "power boxes" that act the same, except they return a capability that the OS enforces, means that most GUI applications would behave identically, and it wouldn't require much change to the code. Command line applications, on the other hand, require a new standard and uniform way to specify files, paths, etc.
Even so, that would be far, far easier than spinning up a VM every time you want to run code you don't trust.
But it sure would be nice not having to worry about malicious code in the dependency closure of your system.
This is not frequently talked about, but right now (and basically since forever) desktop computer security runs by and large on good will and I'm terrified of the times when it doesn't anymore. (Simultaneously this is a huge compliment to the programmer crowd!)
This seems to presume things about energy or resource use that we have no empirical evidence of. Making things more efficient makes them cheaper to use and make, leading to a total increase in demand of the resource: https://en.wikipedia.org/wiki/Jevons_paradox
The only way to decrease the heating of the climate is to make heating it up more expensive. Or make people go to prison.
Making more efficient use of our computers will lead to more computers being produced and more energy being used to run them.
Meh, software should be designed around being efficient from the start.
Doing it as a 'post-process' will most likely result in just another layer of semi-grifting "specialists" that will come up with over complicated "solutions" that focus on masking symptoms rather then actually tackling underlying reasons.
I'm going to argue that computers and software are already wildly efficient because the cost is already baked in. You don't get a dedicated server or an on-demand instance without paying for the power and cooling; that's all baked into the price. The OPEX on these things isn't perfectly line-item transparent but it's at least included. They could be MORE efficient by removing some layers but when you factor in labor costs it's sort of silly. It doesn't mean all deployments are designed efficiently, but if they can also bare the cost, operationally it's probably worth it to them.
IOW the only way to really move the needle here is to somehow classify data centers - becaues that's who really pays - with some label forcing them to offset their emmisions, and then pass those costs onto us.
This is something I've been thinking about for a long time. How many gigawatts are electron discord clients using right now? How many are being wasted transmitting a 200MB jpeg to render into a 2" square on your phone?
Your "eh, good enough" code costs your users collectively hundreds or thousands of dollars in electricity. Your galaxy brain insane shit stupid application packaged as 40 docker images instead of a 200kb binary has caused millions of dollars in hardware upgrades. Uncountable amounts of e-waste and pollution.
It's really just absolutely staggering to think about. The ever-plummeting quality and performance of software is snowballing into an energy and ecological catastrophe that we are all very studiously ignoring.
And you know what? We can draw a single straight line from this problem back to capitalism. Capitalism fundamentally cannot consider externalities. So we shit out the cheapest software that technically does the job because there's no profit incentive to do otherwise. If we could all slow down and write decent software, the world would be a better place. But no, that's not profitable enough.
This seems to be an opinion piece written by the people involved about their grading tool and their courses and certifications.
And their grading tool counts every website proxied through CloudFlare as green while it counts Hetzner's hydropower datacenter in Finland as coal.
But mostly, it seems they want to start selling courses and certifications for green software. The entire idea seems weird to me, because they're arguing about superficial effects like reducing unused JavaScript while blissfully ignoring the elephant in the room, which would be ad auctions.
The number of CSS and Javascript files doesn't really have much of an impact on how much resources a website uses. It's mostly a logistical decision. You can build a wasteful website with one (or zero) of them, and a slim one with dozens of js and css-files.
There is a weak accidental correlation between these two things, but it's not necessary.
I find the analysis baffling. BLOOM training emitted the same CO2 as a dozen NYC-SYD flights. Ignoring the fact that no such air route exists, there are 14 aircraft landing at SYD in the next hour. So the energy used by BLOOM was "none" in fact.
The other top-line figure here, that "data centers and data transmission networks" use 2% of world energy is also misleading. Internet user base doubled and internet bytes traffic increased 6x over the period studied, but energy use increased by only 20% and CO2 emissions did not increase at all. This is a remarkable achievement for the industry.
It seems like a distraction to focus on this problem instead of organizing to reduce carbon emissions from car factories, the food industry, shipping companies, etc. Which are the ones that generate the most emissions on the planet... I read in an article that a Google data center alone consumes about 169 liters of water per second. And are we going to start optimizing our code to stop global warming? Just ridiculous
Wouldn't it be easier (and therefore cheaper and less emission-prone) to make the hardware consume less energy first? Just wondering, because once I got my M1 my power consumption for the laptop went down like crazy even though it's still running some Electron apps which I can't get off of.
Hardware has already been as optimized as it can be. (It's possible to do better than Intel, but it's not possible for Intel to do better than they are already doing.)
Seems like a carbon tax that internalizes these costs would help more to focus people's attention on emitting less CO2. All of a sudden, there would be major financial benefits to being more efficient, rather than a few people off in the weeds.
Consider the latest 9.1 Ghz push to extremes of CPUs. Consider that there are many stages with up to 30 gates in a sequence that have to be traversed between clock cycles. If you were to eliminate the long lines, and cut down the number of gates to 10... you could possibly go 20 Ghz, while saving power.
A grid of LUTs, 4 bits in, 4 bits out, clocked in 2 phases, could potentially give you Petaflops of performance with the same transistor count. Your entire program would execute in parallel.
What would you do with an instance of GPT-4 that could output 10 billion tokens per second?
37 comments
[ 41.3 ms ] story [ 2791 ms ] threadChip designs routinely use energy metrics like picojoules per bit to express the hardware's power budgets and efficiencies, generalizing these kinds of figure of merit to software seems natural. While I doubt that running a particular version of software can automagically make a computer "green" (If WebKit becomes faster, users are simply going to open more tabs), but I think this can be a reasonable and meaningful concept within a clear technical context.
It's like telling people to take shorter showers in a drought, when residential water consumption is a miniscule fraction compared to agricultural or industrial use. To the point where short showers affects nothing and benefits no one. When we really should be cutting allotments given to farmers and industry. This is something that goes on very frequently where I live.
Edit: Back to bare metal OS + compiled stuff is where I want to head. Go on Debian on native hardware is the most bearable stack in that space I have used.
You use a VM to make it possible to reset the state of an OS, and to limit its capabilities, so that you limit the capabilities of anything it runs.
(edited after posting: I read the article, and I see it's a movement, but not a conference. So same question, would love to see operating systems improvements be part of the green software movement, do you know if it is?)
To say nothing of the beautiful simplicity of a device simply running instructions as given.
I don't want a future in computing where I can't direct my own physical property to follow the programming I tell it to. A world where everything is a tenancy and there are security checkpoints and fine-grained access control on every block sucks in computing just as much as it does in real life.
We would regularly be given $0.25 (I think?) to buy milk for lunch at school in 1st grade. Heck, buy the time I was 10 or so, I'd regularly be handed $20, and go and buy cigarettes for Mom with it, while she waited with my younger sisters in the station wagon outside.
No matter how confused, or forgetful, or mischievous, the maximum loss was the amount handed over the in first place. It was a far safer model than handing over a credit card.
Each bill is an economic token. Its a very simple model, and any side effects from using them are immediately known.
If your OS were to make it just as easy to use (grant permission to the program you're running) a specific file, or folder, or network connection, and nothing else you wouldn't need to worry about virii, worms, malware, etc... you'd have decided what to open, and by default, nothing else goes along for the ride.
Replacing dialog boxes with "power boxes" that act the same, except they return a capability that the OS enforces, means that most GUI applications would behave identically, and it wouldn't require much change to the code. Command line applications, on the other hand, require a new standard and uniform way to specify files, paths, etc.
Even so, that would be far, far easier than spinning up a VM every time you want to run code you don't trust.
This is not frequently talked about, but right now (and basically since forever) desktop computer security runs by and large on good will and I'm terrified of the times when it doesn't anymore. (Simultaneously this is a huge compliment to the programmer crowd!)
Operating costs for information systems are already directly proportional to energy consumption. There is no further alignment of incentives required.
The only way to decrease the heating of the climate is to make heating it up more expensive. Or make people go to prison.
Making more efficient use of our computers will lead to more computers being produced and more energy being used to run them.
No, leading to more of the latent demand being satisfied.
Doing it as a 'post-process' will most likely result in just another layer of semi-grifting "specialists" that will come up with over complicated "solutions" that focus on masking symptoms rather then actually tackling underlying reasons.
IOW the only way to really move the needle here is to somehow classify data centers - becaues that's who really pays - with some label forcing them to offset their emmisions, and then pass those costs onto us.
Your "eh, good enough" code costs your users collectively hundreds or thousands of dollars in electricity. Your galaxy brain insane shit stupid application packaged as 40 docker images instead of a 200kb binary has caused millions of dollars in hardware upgrades. Uncountable amounts of e-waste and pollution.
It's really just absolutely staggering to think about. The ever-plummeting quality and performance of software is snowballing into an energy and ecological catastrophe that we are all very studiously ignoring.
And you know what? We can draw a single straight line from this problem back to capitalism. Capitalism fundamentally cannot consider externalities. So we shit out the cheapest software that technically does the job because there's no profit incentive to do otherwise. If we could all slow down and write decent software, the world would be a better place. But no, that's not profitable enough.
This seems to be an opinion piece written by the people involved about their grading tool and their courses and certifications.
And their grading tool counts every website proxied through CloudFlare as green while it counts Hetzner's hydropower datacenter in Finland as coal.
But mostly, it seems they want to start selling courses and certifications for green software. The entire idea seems weird to me, because they're arguing about superficial effects like reducing unused JavaScript while blissfully ignoring the elephant in the room, which would be ad auctions.
Agreed. Note the total absence of real fixes:
- Don't use more than one tracker on a web page. Watch your page load and see what you're loading.
- Don't load a large number of CSS and Javascript files. Don't use a tool that creates them. Again, watch your page load and see what's loading.
- If you really think you really need statistical data on who clicks where, collect it for maybe 1% of users, chosen at random.
There is a weak accidental correlation between these two things, but it's not necessary.
The other top-line figure here, that "data centers and data transmission networks" use 2% of world energy is also misleading. Internet user base doubled and internet bytes traffic increased 6x over the period studied, but energy use increased by only 20% and CO2 emissions did not increase at all. This is a remarkable achievement for the industry.
Google states their data center water use in terms of "golf course equivalents" which in my opinion is an excellent way to frame the issue.
edit/ According to a blog post they made [0] they use up to 25% reclaimed water, which is probably better than golf courses, too.
[0]: https://blog.google/outreach-initiatives/sustainability/our-...
A grid of LUTs, 4 bits in, 4 bits out, clocked in 2 phases, could potentially give you Petaflops of performance with the same transistor count. Your entire program would execute in parallel.
What would you do with an instance of GPT-4 that could output 10 billion tokens per second?