SusTrainable Dissemination Event

Ana Oprescu - University of Amsterdam
Zoltan Porkolab - Eotvos Lorand University
Sustainability as a key driver for the development of modern society and the future of the planet has never achieved as much consensus worldwide as today. Experts estimate the energy consumption share of the ICT domain at 6-9% and expect this share to grow to 10-20% by 2030. It is anticipated that the energy consumed by the ubiquity of ICT services and devices in a globally connected world and our digital lifestyle in general will soon have a bigger impact on global warming than the entire aviation industry. In other words ICT is part of the solution but also part of the problem in terms of sustainable global development including any political aspirations towards stopping climate change. Ultimately, it is the hardware of ICT systems that consumes energy, but it is software that controls this hardware. Thus, controlling the software is crucial to reduce the ever-growing energy footprint of ICT systems.
The SusTrainable project advocates the introduction of all facets of sustainability as a primary concern into software engineering practice. This project aims to actively promote educating the next generation of software engineers to consider sustainability in all aspects of the software engineering process: SusTrainable means Training for Sustainability. We aim to provide future software engineers with essential skills to develop software that is not only functionally correct, but also easy to maintain and evolve, that is durable, has a low impact and uses the hardware it is running on in the most energy-efficient way.
In this workshop the project members will present the results of the project.

Important Dates

Event Day 28th August, 2023


Time Event
9:00 - 9:30 Energy-aware scheduling and mapping with the TeamPlay coordination language by Clemens Grelck
9:30 - 10:00 Sustainable Behaviour of IT Practitioners: comparative analysis by Elena Somova
10:00 - 10:30 Teaching Sustainable Task-Oriented Internet of Things Programming by Mart Lubbers and Pieter Koopman
10:30 - 11:00 Coffee Break
11:00 - 11:30 Code optimization for sustainability for data mining applications by Anikó Kopacz, Zalán Bodó and Lehel Csató
11:30 - 12:00 Comparing Sustainability of Using Formik and PureScript Form Validation in a React-TypeScript Web Application by Csaba Szabó
12:00 - 12:30 Code comprehension for large project sustainability by Zoltán Porkoláb
12:30 - 14:00 Lunch Break
14:00 - 14:30 Empirical Performance Analysis of Android applications by Rui Rua and João Saraiva
14:30 - 15:00 Efficient Evolutionary Computing by Goran Mauša
15:00 - 15:30 System specifications and abstract implementations for sustainable design decisions by Li Jianhao
15:30 - 16:00 Coffee Break
16:00 - 17:00 Thoughts from a decade of software energy consumption research by Abram Hindle
17:00 - 17.30 Sustainability in software - round table
18:30 - 20:00 End-of-day Social Event at Braga City Center


Thoughts from a decade of software energy consumption research

Abram Hindle
University of Alberta, Canada

Software energy consumption research is a growing field of research relevant to the sustainability of computation from the perspective of energy consumption. Software energy consumption addresses the fact that software commands hardware components to work on its behalf. This work appears physically as the conversion of electricity and information into more information and heat, thereby consuming energy. Thus software is fundamentally physical and it induces the consumption of real resources. Running software always comes at a cost.

In this presentation Abram Hindle will discuss:
  • his current and past experiences with software energy consumption;
  • his vision of where the field is probably headed;
  • his suggestions for avenues to avoid and avenues to investigate in the field.


Energy-aware scheduling and mapping with the TeamPlay coordination language

Clemens Grelck
Friedrich Schiller University Jena, The Netherlands

An estimated 98% of the world's computing devices operate in embedded or cyber-physical systems, where non-functional properties of program execution, such as energy and time can be as crucial as functional correctness. The increasing heterogeneity and parallelism of computing platforms create new challenges for engineering resource-aware software: what to run where and when.
We present the exogeneous coordination language TeamPlay that introduces energy and time as first-class citizens into the software engineering process while at the same time enforcing a stringent separation of concerns between operational detail and application-level design. Following an introduction to the design and implementation of the TeamPlay coordination language, the presentation focusses on our tailor-made energy and time-aware scheduling and mapping heuristics.

Sustainable Behaviour of IT Practitioners: comparative analysis

Elena Somova, Denitza Charkova
The university of Plovdiv, Bulgaria

Environmental protection is a key topic nowadays. Many world and European organizations and bodies (with their respective documents) fight against the global negative impact of industries such as fossil fuels. The work of IT specialists could influence the sustainability of other sectors in both positive and negative ways. The survey, exploring mainly the students’ attitude to sustainability and the place of sustainability in higher education and future employment, was conducted during the Second SusTrainable Summer school. The survey questionnaire was also filled in by the teachers. The talk will present the comparative analysis of the answers to the survey questionnaire.

Teaching Sustainable Task-Oriented Internet of Things Programming

Mart Lubbers, Pieter Koopman
Institute for Computing and Information Sciences,
Radboud University, Nijmegen, The Netherlands

The computers powering each tier of layered systems such as Internet of Things (IoT) have vastly different characteristics. This makes programming these layered systems difficult because of the semantic friction between the layers. Task-oriented programming (TOP) is a novel tierless programming paradigm. From a single declarative specification, all layers of a system can be programmed. An example of this is iTask, a language for specifying multi-user distributed web application can be programmed. Internet of Things (IoT) systems are layered systems as well that can be programmed using iTask together with mTask, a TOP language for IoT edge devices. The language is hosted as an embedded domain-specific language (DSL) in a strongly-typed purely functional programming. Using this novel tierless programming approach, many issues that arise with traditional tiered programming are mitigated. For example, integration problems are reduced because the entire program is checked by a single compiler. Furthermore, the communication, data storage and user interfaces are generated from the structure of the types, leaving little room for error. However, tierless languages are novel, and tool support is often lacking, hence steepening the learning curve. This presentation describes the lessons learned from teaching TOP for the IoT to students.

Code optimization for sustainability for data mining applications

Anikó Kopacz, Zalán Bodó, Lehel Csató
Babes-Bolyai University, Cluj, Romania

Running interpreted languages for applications working with large amounts of data is inherently expensive and with a large carbon footprint. We suggest several levels of code optimizations, all having a common grounding in using linear algebra. One needs to formulate the problem as an optimization one, then apply – local – linearization, after that this problem can be solved in a more energy-efficient manner.
We presented cases when the problems had an algebraic solution and could be solved using vectorization – within the Python environment – and compared solutions to information extraction from graph-data written in Python and Julia. Our experiments confirmed that the – LLVM – compiled versions of the code were much faster, meaning that they consumed less energy. Topped with the fact that the Julia code is closer to the mathematical modeler, we suggest that with compilation and vectorization the development of applications extracting information from large data corpuses are more sustainable.

Comparing Sustainability of Using Formik and PureScript Form Validation in a React-TypeScript Web Application

Csaba Szabó
Technical University of Košice, Slovakia

Sustainability has many faces. For a web application, as of any software, the two main points of view sustainability could be evaluated are usage and development of it. We investigate these two aspects separately due to their nature. Usage sustainability is strongly related to application usability, therefore we focus on performance analysis based on browser profilers. Development sustainability is less energy-aware, the main focus here is on the performance of specific development actions. Since Formik requires a declarative style of coding and PureScript is a strongly-typed functional programming language that compiles to JavaScript, two worlds are confronted in our contribution.

Code comprehension for large project sustainability

Zoltán Porkoláb
Eötvös Loránd University, Faculty of Informatics, Hungary

Code comprehension is a daily challenge in a software developer’s life. Lots of time is spent with comprehension activities at the expense of productivity. Junior programmers are in the most dire need of proper code comprehension support, since they lack the amount of work experience which facilitates comprehension tasks. There is a wide variety of comprehension supporting software, however, developers are usually not aware of their options, and settle for the insufficient support in code editors. In this lecture we aspire to raise awareness among programmers about the importance of proper code comprehension support by introducing the CodeCompass code comprehension framework. We encourage programmers to make the comprehension process more effective by showing the practical usage and benefits of a multi-purpose comprehension tool.

Empirical Performance Analysis of Android applications

Rui Rua, João Saraiva
University of Minho, Braga, Portugal

Although the scientific community has made significant efforts to provide insights into mobile app efficiency and programming practices, the current literature typically rely on independent and non-reusable procedures, tools, and knowledge. Consequently, each new study often requires recreating the entire process, resulting in time-consuming setup, verification, and validation of data and results, which are seldom reused in subsequent studies. To address these issues, we introduce PyAnaDroid, an open-source framework designed to optimize, enhance transparency, and improve replicability in empirical studies evaluating Android software artifacts. This tool offers a configurable workflow that analyzes source code, extracts metrics, and provides instrumentation capabilities. It also supports various testing frameworks, instrumentation techniques, profilers, and other application analysis tools, facilitating empirical studies by developers and researchers. Furthermore, we present results of several studies conducted using this toolset that allowed us to analyse and classify Android source code using different approaches from a performance point of view.

Efficient Evolutionary Computing

Goran Mauša
University of Rijeka, Faculty of Engineering
University of Rijeka, Center for Artificial Intelligence and Cybersecurity, Croatia

In computer science, evolutionary computing is a family of nature-inspired algorithms for solving complex search-based and optimization problems. The idea of evolutionary computing is to find the best solution to a given problem in a smaller number of steps than traditional and computationally demanding approaches like exhaustive or grid search. This talk opens the question whether this strategy can be made even greener and analyzes this issue through hyper-parameter tuning, selecting the appropriate optimization algorithm and programming language, building surrogate models and neuroevolution. The goal is to present theoretical background of evolutionary computing and genetic algorithm, and provide a showcase of its potential and to demonstrate its usage in a sustainable manner.

System specifications and abstract implementations for sustainable design decisions

Li Jianhao
Eötvös Loránd University, Faculty of Informatics, Hungary

By writing formal specifications of a system design (modeling the system), we can check if the system design implements the safety and liveness properties correctly. However, there can be different design branches that satisfy the properties of correctness. We need energy-related information on different design branches to make sustainable design decisions in the earlier stage of the project. We can define specifications that focus on the differences of the design. By evaluating the energy consumption of the simplified implementations of those specifications, we can distinguish which design branch is more energy-efficient and make sustainable design decisions. This presentation will show ideas about the whole process and introduce some guidelines for the specification and the implementation.