Developing climate solutions with green software
After years of committing to sustainable practices in his personal life from recycling to using cloth-based diapers, Asim Hussain, currently the director of green software and ecosystems at Intel, began to ask questions about the practices in his work: software development.
Developers often asked if their software was secure enough, fast enough, or cost-effective enough but, Hussain says, they rarely considered the environmental consequences of their applications. Hussain would go on to work at Intel and become the executive director and chairperson of the Green Software Foundation, a non-profit aiming to create an ecosystem of people, tooling, and best practices around sustainable software development.
What we need to do as software developers and software engineers is we need to make sure that it is emitting the least amount of carbon for the same amount of value and user functionality that we're getting out of it," says Hussain.
The three pillars of green software are energy efficiency, hardware efficiency, and carbon awareness. Making more efficient use of hardware and energy consumption when developing applications can go a long way toward reducing emissions, Hussain says. And carbon-aware computing involves divestment from fossil fuels in favor of renewable energy sources to improve efficiency without compromising performance.
Often, when something is dubbed green," there is an assumption that the product, application, or practice functions worse than its less environmentally friendly version. With software, however, the opposite is true.
Being green in the software space means being more efficient, which translates almost always to being faster," says Hussain. When you factor in the hardware efficiency component, oftentimes it translates to building software that is more resilient, more fault-tolerant. Oftentimes it also translates then into being cheaper."
Instituting green software necessitates not just a shift in practices and tooling but also a culture change within an enterprise. While regulations and ESG targets help to create an imperative, says Hussain, a shift in mindset can enable some of the greatest strides forward.
If there's anything we really need to do is to drive that behavior change, we need to drive behavior change so people actually invest their time on making software more energy efficient, more hardware efficient, or more carbon aware."
This episode of Business Lab is produced in partnership with Intel.
Full TranscriptLaurel Ruma: From MIT Technology Review, I'm Laurel Ruma and this is Business Lab, the show that helps business leaders make sense of new technologies coming out of the lab and into the marketplace.
Our topic is green software, from apps to devices to the cloud. Computing runs the world around us. However, there is a better way to do it with a focus on sustainability.
Two words for you: sustainable code.
My guest is Asim Hussain, who is the director of the Office of Green Software and Ecosystems at Intel, as well as the chairperson of the Green Software Foundation.
This podcast is produced in partnership with Intel.
Welcome, Asim.
Asim Hussain: Hi Laurel. Thank you very much for having me.
Laurel: Well, glad you're here. So for a bit of background, you've been working in software development and sustainability advocacy from startups to global enterprises for the last two decades. What drew you into sustainability as a focus and what are you working on now?
Asim: I've personally been involved and interested in the sustainability space for quite a while on a very personal level. Then around the birth of my first son, about five years ago now, I started asking myself this one question, which was how come I was willing to do all these things I was doing for sustainability to recycle, we were using cloth-based nappies, all sorts of these different things. Yet I could not remember in my entire career, my entire career, I could not remember one single moment where in any technical discussion, in any architectural meeting, in any discussion about how we're going to build this piece of software. I mean, people oftentimes raise points around is this secure enough? Is this fast enough? Does this cost too much? But at no point I'd ever heard anybody ask the question, is this emitting too much carbon? Is this piece of software, is this solution that we're talking about right now, how does that solution, what kind of environmental impacts does that have? I've never, ever, ever heard anybody raise that question.
So I really started to ask that question myself. I found other people who are like me. Five years ago, there weren't many of us, but were all asking the same questions. I joined and then I started to become a co-organizer of a community called ClimateAction.Tech. Then the community just grew. A lot of people were starting to ask themselves these questions and some answers were coming along. At the time, I used to work at Microsoft and I pitched and formed something called the green cloud advocacy team, where we talked about how to actually build applications in a greener way on the cloud.
We formed something called the Green Software Foundation, which is a consortium of now 60 member organizations, which I am a chairperson of. Over a year ago I joined Intel because Intel has been heavily investing in sustainable software space. If you think about what Intel does, pretty much everything that Intel produces, developers use it and developers write software and write code on Intel's products. So it makes sense for Intel to have a strong green software strategy. That's kind of why I was brought in and I've since then been working on Intel's green software strategy internally.
Laurel: So a little bit more about that. How can organizations make their software greener? Then maybe we should take a step back and define what green software actually is.
Asim: Well, I think we have to define what green software actually is first. The way the conversation's landed in recent years and the Green Software Foundation has been a large part of this is we've coalesced around this idea of carbon efficiency, which is if you are building a piece of software ... Everything we do emits carbon, everything we do emits carbon, this tool we're using right now to record this session is emitting carbon right now. What we need to do as software developers and software engineers is we need to make sure that it is emitting the least amount of carbon for the same amount of value and user functionality that we're getting out of it. That's what we call carbon efficiency.
What we say is there's three pillars underneath, there's only really three ways to make your software green. The first is to make it more energy efficient, to use less energy. Most electricity is still created through the burning of fossil fuels. So just using less electricity is going to emit fewer carbon emissions into the atmosphere. So the first is energy efficiency. The second is hardware efficiency because all software runs on hardware and depends on the, if you're talking about a mobile phone, typically people are forced to move on from mobile phones because the software just doesn't run on their older models. In the cloud it tends to be more around a conversation around utilization by making more use of the servers that you already have in the cloud, making just more efficient use of the hardware. The third one is a very interesting space. It's a very new space. It's called carbon awareness or carbon-aware computing. That is you are going to be using electricity anyway. Can you make your software? Can you architect your software in such a way?
So it does more when the electricity is clean and does less when the electricity is dirty. So can you architect an application? So for instance, it does more when there's more renewable energy on the grid right now, and it does less when more coal or gas is getting burnt. There's some very interesting projects in this space that have been happening, very high-profile projects and carbon-aware computing is an area where there's a lot of interest because it's a stepping stone. It might not get you your 50, 60, 70% carbon reductions, but it will get you your 1, 2, 3, and 4% carbon reductions and it'll get you that with very minimal investments. There's a lot of interest in carbon-aware computing. But those are basically the three areas, what we call the three pillars of green software, energy efficiency, hardware efficiency, and carbon awareness.
Laurel: So another reason we're talking about all of this is that technology can contribute to the environmental issues that it is trying to actually help. So for example, a lot of energy is needed to train AI models. Also, blockchain was key in the development of energy-efficient microgrids, but it's also behind the development of cryptocurrency platforms, some of which consume more energy than that of a small country. So how can advanced technologies like AI, machine learning, and blockchain contribute positively to the development of green software?
Asim: That's an interesting question because sometimes the focus oftentimes is how do we actually make that technology greener? But I don't believe that is necessarily the whole story. The story is the broader story. How can we use that technology to make software greener? I think there's many ways you can probably tackle that question. One thing that's been interesting for me since my journey as a software developer joining Intel is me realizing how little I knew about hardware. There is so much, I describe it as the gap between software and silicon. The gap is quite large right now. If you're building software these days, you have very little understanding of the silicon that's running that software. Through a greater understanding of exactly how your software is exactly getting executed by the silicon to implement the functionality, that's where we are seeing that there's a lot of great opportunities to reduce emissions and to make that software more energy efficient, more hardware efficient.
I think that's where places like AI can really help out. Developer productivity has been the buzzword in this space for a very long time. Developers are extremely expensive. Getting to market fast and beating your competition is the name of the game these days. So it's always been about how do we implement the functionality we need as fast as possible, make sure it's secure, get it out the door. But oftentimes the only way you can do that is to increase the gap between the software and silicon and just make it a little bit more inefficient. I think AI can really help there. You can build AI solutions that can, there's copilot solutions which can help as you're developing code could actually suggest to you. If you were to write your code in a slightly different way, it could be more efficient. So that's one way AI can help out.
Another way that I'm seeing AI utilized in this space as well is when you deploy ... Silicon and the products that we produce can actually, they come out of the box configured in a certain way, but they can actually be tuned to actually execute that particular piece of software much more efficiently. So if you have a data center running just one type of software, you can actually tune the hardware so that software is run more efficiently on that hardware. We're seeing AI solutions come on the market these days, which can then automatically just figure out what type of application are you, how do you run, how do you work? We have a solution called Granulate, which does part of this as well. It can then figure out how do you tune the underlying hardware in such a way so it executes that software more efficiently. So I think that's kind of a couple of ways that this technology could actually be used to make software itself greener.
Laurel: To bridge that gap between software and silicon, you must be able to measure the progress and meet targets. So what parameters do you use to measure the energy efficiency of software? Could you talk us through the tenets of actually measuring?
Asim: So measuring is an extremely challenging problem. When we first launched the Green Software Foundation three years ago, I remember asking all the members, what is your biggest pain point? They all came back, almost all came back with measuring. Measuring is very, very challenging. It's so nuanced, there's so many different levels to it. For instance, at Intel, we have technology in our chips to actually measure the energy of the whole chip. Those counters on the chip which measure it. Unfortunately, that only gives you the energy of the entire chip itself. So it does give you a measurement, but then if you are a developer, there's maybe 10 processes running on that chip and only one of them is yours. You need to know how much energy is your process consuming because that's what you can optimize for. That's what you can see. Currently, the best way to measure at that level is using models, models which are either generated again through AI or through other processes where you can effectively just run lots large amounts of data and generate statistical models.
Oftentimes a model that's used is one that uses CPU [central processing unit] utilization, so how busy a CPU is and translate that into energy. So you can see my process is consuming 10% of the CPU. There are models out there that can convert that into energy, but again, all models are wrong, some models are useful. So there's always so much nuance to this whole space as well, because how have you tweaked your computer? What else is running on your computer? It can also affect how those numbers are measured. So, unfortunately, this is a very, very challenging area.
But this is really the really big area that a lot of people are trying to resolve right now. We are not at the perfect solution, but we are way, way better than we were three, four or five years ago. It's actually a very exciting time for measurement in this space.
Laurel: Well, and I guess part of it is that green software seems to be developed with greater scrutiny and higher quality controls to ensure that the product actually meets these standards to reduce emissions. Measurement is part of that, right? So what are some of the rewards beyond emissions reduction or meeting green goals of developing software? You kind of touched on that earlier with the carbon efficiency as well as hardware efficiency.
Asim: Yeah, so this is something I used to think about a lot because the term green has a lot associated with it. I mean, oftentimes when people historically have used the word green, you can have the main product or the green version of the product. There's an idea in your mind that the green version is somehow less than, it's somehow not as good. But actually in the software space it's so interesting because the exact opposite. Being green in the software space means being more efficient, which translates almost always to being faster. When you factor in the hardware efficiency component, oftentimes it translates to building software that is more resilient, more fault-tolerant. Oftentimes it also translates then into being cheaper. So actually green has a lot of positive associations with it already.
Laurel: So in that vein, how can external standards help provide guidance for building software and solutions? I mean, obviously, there's a need to create something like the Green Software Foundation, and with the focus that most enterprises have now on environmental, social, and governance goals or ESG, companies are now looking more and more to build those ideas into their everyday workflow. So how do regulations help and not necessarily hinder this kind of progress?
Asim: So standards are very, very important in this space. Standards, I mean, one of the things, again, when we look to the ecosystem about three, four years ago, the biggest problem the enterprises had, I mean a lot of them were very interested in green software, but the biggest problem they had was what do they trust? What can I trust? Whose advice should I take? That's where standards come in. That's where standards are most important. Standards are, at least the way we develop standards inside the Green Software Foundation, they're done via consensus. There are like 60 member organizations. So when you see a standard that's been created by that many people and that many people have been involved with it, it really builds up that trust. So now you know what to do. Those standards give you that compass direction to tell you which direction to go in and that you can trust.
There's several standards that we've been focusing on in the Green Software Foundation, one's called the SEI, which is a software carbon intensity specification. Again, to prove it as an ISO standard, you have to reach consensus through 196 countries. So then you get even more trust into a standard so you can use it. So standards really help to build up that trust, which organizations can use to help guide them in the directions to take. There's a couple of other standards that are really coming up in the foundation that I think are quite interesting. One is called Real-Time Cloud. One of the challenges right now is, and again always comes back to measurement, it always always comes back to measurement. Right now measurement is very discreet, it happens oftentimes just a few times a year. Oftentimes when you get measurement data, it is very delayed. So one of the specs that's been worked on right now is called Real-Time Cloud.
It's trying to ask the question, is it possible? Is it possible to get data that is real-time? Oftentimes when you want to react and change behaviors, you need real-time data. If you want data so that when somebody does something, they know instantly the impact of that action so they can make adjustments instantly. If they're having to wait three months, that behavior change might not happen. Real-time [data] is oftentimes at log aheads with regulations because oftentimes you have to get your data audited and auditing data that's real-time is very, very challenging. So one of the questions we're trying to ask is, is it possible to have data which is real-time, which then over the course of a year, you can imagine it just aggregates up over the course of a year. Can that aggregation then provide enough trust so that an auditor can then say, actually, we now trust this information and we will allow that to be used in regulatory reporting.
That's something that we're very excited about because you really need real-time data to drive behavior change. If there's anything we really need to do is to drive that behavior change, we need to drive behavior change so people actually invest their time on making software more energy efficient, more hardware efficient, or more carbon aware. So that's some of the ways where standards are really helping in this space.
Laurel: I think it's really helpful to talk about standards and how they are so ingrained with software development in general because there are so many misconceptions about sustainability. So what are some of the other misconceptions that people kind of get stuck on, maybe that even calling it green, right? Are there philosophies or strategies that you can caution against or you try to advocate for?
Asim: So as a couple of things I talk about, so one of the things I talk about is it does take everybody, I mean, I remember very early on when I was talking in this space, oftentimes a conversation went, oh, don't bother talking to that person or don't talk to this sector of developers, don't talk to that type of developers. Only talk to these people, these people who have the most influence to make the kind of changes to make software greener. But it really takes a cultural change. This is what's very important, really takes a cultural change inside an organization. It takes everybody. You can't really talk to one slice of the developer ecosystem. You need to talk to everybody. Every single developer or engineer inside an organization really needs to take this on board. So that's one of the things I say is that you have to speak to every single person. You cannot just speak to one set of people and exclude another set of people.
Another challenge that I often see is that people, when they talk about this space, one of the misconceptions they talk about is they rank where effort should be spent in terms of the carbon slice of the pie that it is responsible for and I'll talk about this in general. But really how you should be focusing is you should be focusing not on the slice of the pie, but on the ability to decarbonize that slice of the pie. That's why green software is so interesting and that's why it's such a great place to spend effort and time. It might not be, I mean it is, depending on which academic paper you look at, it can be between 2 to 4% of global emissions. So some people might say, well, that's not really worth spending the time in.
But my argument is actually the ability for us to decarbonize that 2 to 4% is far easier than our ability to decarbonize other sectors like airlines or concrete or these other sectors. We know what we need to do oftentimes in the software space, we know the choices. There doesn't need to be new technology made, there just needs to be decisions made to prioritize this work. That's something I think is very, very important. We should rank everything in terms of our ability to decarbonize the ease of decarbonization and then work on the topmost item first down, rather than just looking at things in just terms of tons of carbon, which I think leads to wrong decision making.
Laurel: Well, I think you're laying out a really good argument because green initiatives, they can be daunting, especially for large enterprises looking to meet those decarbonization thresholds within the next decade. For those companies that are making the investment into this, how should they begin? Where are the fundamental things just to be aware of when you're starting this journey?
Asim: So the first step is, I would say training. What we're describing here in terms of, especially in terms of the green software space, it's a very new movement. It's a very new field of computing. So a lot of the terms that I talk about are just not well understood and a lot of the reasons for those terms are not well understood as well. So the number one thing I always say is you need to focus on training. There's loads of training out there. The Green Software Foundation's got some training, learn.GreenSoftware.Foundation, it's just two hours, it's free. We send that over to anybody who's starting in this space just to understand the language, the terminology, just to get everybody on the same page. That is usually a very good start. Now in terms of how do you motivate inside, I think about this a lot.
If you're the lead of an organization and you want to make a change, how do you actually make that change? I'm a big, big believer in trusting your team, trusting your people. If you give engineers a problem, they will find a solution to that problem. But what they oftentimes need is permission, a thumbs up from leadership that this is a priority. So that's why it's very important for organizations to be very public about their commitments, make public commitments. Same way Intel has made public commitments. Be very vocal as a leader inside your organization and be very clear that this is a priority for you, that you will listen to people and to teams who bring you solutions in this space.
You will find that people within your organization are already thinking about this space, already have ideas, already probably have decks ready to present to you. Just create an environment where they feel capable of presenting it to you. I guarantee you, your solutions are already within your organization and already within the minds of your employees.
Laurel: Well, that is all very inspiring and interesting and so exciting. So when you think about the next three to five years in green software development and adoption, what are you looking forward to the most? What excites you?
Asim: I think I'm very excited right now, to be honest with you. I look back, I look back five years ago the very, very early days, first looked at this, and I still remember if there was one article, one mentioning green software, we would all lose our heads. We'd get so excited about it, we'd share it, we'd pour over it. Now I'm inundated with information. This movement has grown significantly. There are so many organizations that are deeply interested in this space. There's so much research, so much academic research.
I have so many articles coming my way every single week. I do not have time to read them. So that gives me just a lot of hope for the future. That really excites me. I might just be because I'm at this kind of cutting edge of this space, so I see a lot of this stuff before anybody else, but I see a huge amount of interest and I see also a huge amount of activity as well. I see a lot of people working on solutions, not just talking about problems, but working on solutions to those problems. That honestly just excites me. I don't know where we're going to end up in five years time, but if this is our growth so far, I think we're going to end up in a very good place.
Laurel: Oh, that's excellent. Awesome. Thank you so much for joining us today on the Business Lab.
Asim: Thank you very much for having me.
Laurel: That was Asim Hussain, the director of the Office of Green Software and Ecosystems at Intel, who I spoke with from Cambridge, Massachusetts, the home of MIT and MIT Technology Review.
That's it for this episode of Business Lab. I'm your host, Laurel Ruma. I'm the director of Insights, the custom publishing division of MIT Technology Review. We were founded in 1899 at the Massachusetts Institute of Technology, and you can also find us in print on the web and at events each year around the world. For more information about us and the show, please check out our website at technologyreview.com.
This show is available wherever you get your podcasts. If you enjoyed this episode, we hope you'll take a moment to rate and review us. Business Lab is a production of MIT Technology Review. This episode was produced by Giro Studios. Thanks for listening.
This content was produced by Insights, the custom content arm of MIT Technology Review. It was not written by MIT Technology Review's editorial staff.