Energy-aware scheduling and mapping with the TeamPlay coordination language
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
Technical University of Košice, Slovakia
Code comprehension for large project sustainability
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
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
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.