Programiści poprawią klimat na Ziemi? W IT zaczyna się budzić świadomość, jak duży wpływ na środowisko naturalne ma strategia rozwoju oprogramowania.
Green computing to już nie tylko energooszczędne urządzenia, zarządzanie energią przez sztuczną inteligencję i ekologiczne systemy chłodzenia. W IT zaczyna budzić się świadomość, jak duży wpływ na środowisko naturalne ma strategia rozwoju oprogramowania. – Greener software dołącza do globalnych wysiłków, żeby uratować ludzkość przed ludźmi – uważa Jacek Chmiel, dyrektor Avenga Labs, jednostki, która analizuje technologiczne trendy i biznesowe zastosowania innowacji.
Ziemię bez przerwy zalewa elektronika, która zużywa energię i przyczynia się do powiększania śladu węglowego. Często za coraz wyższą klasą energetyczną urządzeń nie idzie równie wysoka klasa energetyczna oprogramowania. Aplikacje, które np. stale działają w tle, co chwila się odświeżają, wykonują masę nie zawsze koniecznych obliczeń i transferów danych w sposób często niezauważalny dla użytkownika, pożerają energię i przyczyniają się do podnoszenia temperatury na planecie.
Jeśli laptop o mocy 45W w ciągu roku, pracując po 10 godzin dziennie emituje ok. 130 kg CO2, to do jego zniwelowania w atmosferze potrzeba ok. 20 kilkunastometrowych sosen. Tylko w 2020 roku na świecie sprzedano ponad 235 mln nowych laptopów. Zrównoważenie wytwarzanego przez nie śladu węglowego wymagałoby więc jakieś plus minus 5 miliardów drzew! Jeszcze większe połacie lasów muszą równoważyć wpływ 340 mln smartfonów, które trafiły do ludzi tylko w pierwszym kwartale tego roku. Nowe laptopy i smartfony to oczywiście jedynie wierzchnia warstwa w globalnej powodzi elektronicznego sprzętu.
Oprogramowanie rządzi światem, ale programistów nie widać na pierwszej linii walk o uratowanie planety – mówi Jacek Chmiel.
Zamiast nich widać np. muzyków zespołu Coldplay, którzy wszystkie koncerty swojej przyszłorocznej trasy będą zasilać wyłącznie energią odnawialną. Dzięki szeregowi rozwiązań służących przyrodzie mają zniwelować więcej CO2 niż wygeneruje cała ich trasa. Tworzą i koncertują, a jednocześnie wykorzystują swoje możliwości do powstrzymywania kryzysu klimatycznego. A jakie możliwości mają programiści?
Wydaje się, że w tej chwili najwięcej „zielonych” aplikacji tworzą programiści mobilni. Wymagania dotyczące żywotności baterii są już częścią ekosystemu polityki narzuconej tym deweloperom przez Apple i Google. Deweloperzy muszą przestrzegać tych wymagań lub ryzykować, że ich aplikacja zostanie odrzucona ze sklepu z aplikacjami. Inaczej jest z aplikacjami webowi. Mimo że ponad połowa użytkowników wchodzi na strony internetowe z urządzeń mobilnych, optymalizacja zużycia baterii nie znajduje się obecnie nawet w pierwszej dziesiątce priorytetów przy tworzeniu aplikacji internetowych.
Niepotrzebne animacje, płynne przejścia, nieefektywne skrypty w JavaScript i źle zaimplementowane buforowanie prowadzą do niepotrzebnej aktywności CPU i GPU oraz ruchu w sieci. Generuje to kilkukrotnie większe zużycie energii dla wątpliwego zysku w UX – uważa ekspert Avenga Labs.
Klasę energetyczną oprogramowania w urządzeniach zasilanych bateryjnie podnosi się poprzez wydajniejsze, dedykowane systemy operacyjne, oprogramowanie niskopoziomowe, wykorzystujące wydajne języki, takie jak starzejący się C oraz bardziej energooszczędne protokoły (np. Zigbee zamiast Wi-Fi).
Jeśli chodzi o aplikacje mobilne i webowe, zmniejszenie liczby i częstotliwości powiadomień oraz wyeliminowanie krzykliwych banerów, irytujących popupów i animacji to droga, którą należy podążać, zarówno dla naszego dobra jako użytkowników, jak i dla mniejszego zużycia energii – twierdzi Jacek Chmiel.
Większość oprogramowania biznesowego jest nadal tworzona z myślą o procesorach Intel i AMD. Zmiana tego stanu rzeczy umożliwiłaby ogromne oszczędności energii. W 2020 roku byliśmy świadkami rewolucyjnego posunięcia firmy Apple, która porzuciła procesory Intel i architekturę x86-64/AMD64, a zamiast tego przyjęła Apple M1, układ oparty na architekturze ARM. M1 jest znany ze swojej szybkości, ale powinien być jeszcze bardziej znany ze swojej wydajności energetycznej, która jest czasami o rzędy wielkości lepsza niż jego odpowiedniki Intela. Podobnie w przeszłości postąpiły firmy Nvidia i Amazon. Dzięki nim te same aplikacje biznesowe i takie samo przetwarzanie danych mogą zużywać mniej energii.
Specjaliści od Internetu Rzeczy (IoT) starają się na zwykłym sprzęcie unikać urządzeń opartych na Linuksie, ponieważ zużywają one więcej prądu. Aby zredukować zużycie energii podczas komunikacji sieciowej, programują urządzenia tak, aby przechowywały dane lokalnie i wymieniały między sobą małe porcje danych tak rzadko, jak to tylko możliwe. Bardziej ekologiczne przetwarzanie danych zapewnia też chmura. Najpopularniejsze obecnie łączenie chmury publicznej z własną infrastrukturą niestety nie należy do energooszczędnych.
Nadchodzący schyłek infrastruktury lokalnej dla wielu organizacji zaowocuje bardziej przyjaznymi dla środowiska architekturami oprogramowania – przewiduje Jacek Chmiel.
Wszechobecne uczenie maszynowe (ML) dobrze radzi sobie z identyfikacją wzorców użytkowania i zużycia energii, pomagając w jego ograniczaniu. Jednak ML jest niezwykle ciężkie obliczeniowo, zużywając dużo mocy do trenowania sieci neuronowych w celu rozpoznawania obrazów, uczenia się gramatyki i wykrywania nieprawidłowości w danych. W przedsiębiorstwach wymaga to energochłonnych jednostek TPU i GPU. W redukcji zużywanych watów pomóc może przeniesienie części działań ML do chmury oraz rzadsze trenowanie modeli, kiedy wydają się być już wystarczająco dobre. I na podzbiorach danych zamiast pełnej skali. Do większego śladu węglowego dokładają się też technologie blockchain. Wymagają one znacznie więcej energii niż transakcje biznesowe, które ich nie wykorzystują. Chodzi o setki a nawet tysiące watów.
Problem energooszczędności oprogramowania dotyczy też kompetencji programistów. Energooszczędne techniki pisania kodu są mniej znane niż tradycyjne techniki optymalizacji kodu, czyli zapewnienia szybkiego działania i ograniczania zużywania pamięci. W przypadku ekologicznej jazdy samochodem, dobrze wiadomo, jak zaoszczędzić dużo paliwa. W przypadku oprogramowania jest to o wiele trudniejsze i mniej precyzyjnie zdefiniowane.
Języki zbliżone do języka maszynowego i języka asemblera są znacznie bardziej energooszczędne, ale tracą popularność wśród programistów, ponieważ większość aplikacji biznesowych, a nawet gier jest tworzona przy użyciu języków wyższego poziomu. Wydajny energetycznie język C jest nadal bardzo popularny, ale nowsze pokolenia programistów wolą uczyć się Pythona, Javy i C#.
Na co dzień programiści mogą zrobić dla planety więcej niż robią, gdy jadą do pracy rowerem. Jasne, że za ich obowiązkami zwykle stoi mnóstwo wyzwań i priorytetów, ale kiedy jak nie teraz ma przyjść czas na ekologię – podkreśla Jacek Chmiel.
Wspomniany zespół Coldplay we współpracy z SAP tworzy aplikację, która będzie zachęcać fanów do korzystania z niskoemisyjnego transportu podczas przejazdów na koncerty i w drodze powrotnej. O klasie energetycznej aplikacji, która w przyszłym roku trafi na miliony mobilnych urządzeń, na razie nic nie wiadomo. Najwyższy czas, żeby każdy programista – pracując nie tylko dla Coldplay – miał świadomość swoich eko-możliwości i zaczął robić z nich użytek.
Jaki hosting dla WordPress? Test hostingów pod WordPress 2021.