Insinyur perangkat lunak berusaha keras untuk solusi yang berkelanjutan dan kuat

Insinyur perangkat lunak berusaha keras untuk solusi yang berkelanjutan dan kuat

Insinyur perangkat lunak : Perubahan iklim telah memaksa umat manusia untuk berpikir secara berbeda untuk melestarikan planet dan setiap makhluk hidup. Berbagai macam teknologi dan layanan yang melestarikan sumber daya alam telah muncul di seluruh dunia, sebagai hasil dari upaya penelitian dan inovasi. Kami sekarang memiliki kendaraan tanpa emisi, peralatan cerdas dan lebih efisien, kemasan ramah lingkungan yang terbuat dari plastik biodegradable, dan bahkan daging yang ditanam di laboratorium. Bagaimana dengan perangkat lunak? Bisakah sebuah aplikasi menjadi hijau juga?

Aplikasi—dan apa pun yang diprogram—sebenarnya bisa lebih atau kurang efisien dan membutuhkan lebih banyak atau lebih sedikit daya untuk menjalankan tugasnya. Dan jika aplikasi yang tidak efisien tidak mengejutkan Anda, bayangkan jika semua server Google menghabiskan dua kali daya yang mereka lakukan hari ini, karena pengoptimalan yang buruk. Ini semua tentang skala.

Sekelompok peneliti dari Institute for Systems and Computer Engineering, Technology and Science (INESC TEC) dan University of Minho berfokus pada poin yang tepat: memastikan perangkat lunak pada segala sesuatu di sekitar kita dikodekan seefisien mungkin. “Kami ingin meningkatkan kesadaran dan membantu pemrogram membangun solusi yang lebih berkelanjutan dan kuat,” kata João Saraiva, peneliti di INESC TEC dan profesor di Universitas Minho.

Menulis lebih efisien

Grup ini telah merilis publikasi ilmiah di mana mereka membandingkan efisiensi berbagai aplikasi keyboard Android, seperti Google Keyboard (GBoard) dan Microsoft SwiftKey. Karena ponsel cerdas menggunakan baterai, seluruh sistem harus seefisien mungkin untuk memperpanjang masa pakai baterai secara maksimal. “Bahkan, mengganti keyboard yang paling boros energi dengan yang paling hijau telah mengurangi konsumsi energi sebesar 18%, dan ketika fitur lanjutan dari keyboard tersebut (prediksi kata atau animasi) dimatikan, konsumsi energi juga berkurang, dalam hal ini. , hingga 9,3%”, tulis para peneliti Rui Rua, Tiago Fraga, Marco Couto, dan João Saraiva.

Bagaimana jika kita menganggap smartphone secara keseluruhan, bukan satu aplikasi tertentu? Untuk itu, tim juga mengembangkan GreenHub, sebuah aplikasi Android yang mampu mengukur konsumsi daya smartphone. Data yang dikumpulkan dari aplikasi memungkinkan analisis konsumsi baterai dari 23 juta sampel, tersebar di lebih dari 1.600 merek perangkat, 11.800 model ponsel cerdas, dan lebih dari 50 versi Android, yang menghasilkan publikasi ini.

Penulis dapat menemukan kecenderungan pengisian/pengosongan di berbagai negara, kecenderungan baterai yang dapat diamati di seluruh merek dan model, dan peningkatan penggunaan baterai di antara versi Android. Mereka juga telah mempelajari bagaimana beberapa aplikasi paling populer seperti Facebook, Facebook Messenger, dan Facebook Lite (sekarang disebut Meta) berperilaku dalam hal kecenderungan konsumsi baterai.

Selain studi yang berfokus pada analisis konsumsi energi, grup ini juga didedikasikan untuk mengembangkan alat dan metodologi untuk memperkirakan konsumsi energi perangkat lunak. “Pengembangan artefak semacam itu dimotivasi oleh kebutuhan untuk menyediakan alat bagi pengembang dan peneliti untuk mendeteksi kode sumber hotspot energi kritis,” jelas peneliti Rui Rua. Artefak terbaru yang dikembangkan dalam lingkup ini adalah alat yang disebut E-MANAFA, yang memungkinkan pemantauan dan perkiraan konsumsi energi perangkat lunak pada perangkat Android.

Pemrograman lebih efisien

Bahasa pemrograman adalah tulang punggung aplikasi seluler, situs web, dan banyak lagi. Dan saat ini ada ratusan bahasa pemrograman yang tersedia untuk memecahkan berbagai masalah yang perlu ditangani oleh programmer. Python, misalnya, sering digunakan dalam Pembelajaran Mesin dan Kecerdasan Buatan, dan JavaScript untuk pengembangan Web, hanya untuk beberapa nama. Kelompok peneliti telah menempatkan bahasa pemrograman di bawah mikroskop untuk menemukan bahasa yang membutuhkan lebih banyak energi untuk melakukan tugas serupa. Hasilnya adalah publikasi ilmiah yang menampilkan peringkat 27 bahasa dari penghemat daya hingga penguras energi. “Pengembang dapat menggunakan informasi ini untuk memutuskan bahasa pemrograman apa yang paling sesuai untuk skenario target mereka, yang dapat bervariasi sesuai dengan beberapa kendala, seperti batasan baterai, waktu, dan memori,” kata João Saraiva.

Konsumsi energi Google telah meningkat selama beberapa tahun terakhir, mencapai 15,4 terawatt jam pada tahun 2020, yang akan cukup untuk memberi daya pada 9,6 juta rumah tangga Eropa pada tahun 2019, dan kemungkinan besar akan terus meningkat, tidak hanya dalam kasus Google, tetapi di sebagian besar industri. Mempertimbangkan bahwa dunia menggunakan semakin banyak daya, sangat penting untuk mengoptimalkan energi. Meskipun mungkin tidak terlihat oleh pengguna akhir, efisiensi daya dalam perangkat lunak harus diperhitungkan jika dunia bertujuan untuk mengatasi perubahan iklim, karena 80% energi yang dihasilkan dunia masih berasal dari bahan bakar fosil.

Debug otomatis

Pengkodean pasti akan menghasilkan bug, dan tindakan debugging, dengan sendirinya, merupakan cara untuk meningkatkan efisiensi energi perangkat lunak. Grup ini juga berfokus pada Software Fault Localization (SFL), salah satu aktivitas yang paling mahal dan memakan waktu dalam debugging program. “Kami telah mengembangkan teknik yang menyediakan informasi semantik tentang modifikasi yang menyebabkan bug perangkat lunak. Alat yang mengimplementasikan teknik ini tersedia untuk umum dan disebut Morpheus,” kata Francisco Ribeiro, peneliti di INESC TEC. Dalam publikasi ini, penulis menunjukkan bahwa teknik perbaikan otomatis dapat mengambil manfaat dari informasi baru ini dan memperbaiki program dengan lebih efektif.

Tetapi tidakkah ada cara untuk men-debug secara otomatis? Itulah yang dimaksud dengan Perbaikan Program Otomatis (APR): memperbaiki program yang salah dengan intervensi manusia sesedikit mungkin. Faktanya, perusahaan seperti Meta dengan jelas mengakui manfaat tersebut dan secara aktif melakukan penelitian di bidang ini. Mengenai APR, kelompok peneliti Portugis memperoleh tingkat perbaikan 27% dalam studi mereka dengan lebih dari 6.000 program yang salah.

Krisis energi telah dimulai, dan perubahan iklim sudah dekat. Dalam masyarakat digital yang terus berkembang, menjadi efisien secara digital adalah suatu keharusan. Apa pun metodenya, ada baiknya mengetahui bahwa insinyur perangkat lunak melakukan bagian mereka.

Pemrograman