Computer Engineering, Software, Computational Theory and Mathematics, Artificial Intelligence
38
Scopus Publications
508
Scholar Citations
11
Scholar h-index
12
Scholar i10-index
Scopus Publications
Schedulability Analysis of OpenMP Applications Under Heuristic Task-To-Thread Mapping M. Foad Samadi, Tiago Carvalho, Luís Miguel Pinho, Sara Royuela Openaccess Series in Informatics, 2026 Task-to-thread mapping is a key process in parallel applications to achieve the best possible performance. This process is even more challenging when it is required to meet the schedulability and timing requirements of critical systems. In these systems, mapping tasks to threads is usually carried out using static scheduling (i.e., offline mapping) to improve system schedulability, with several approaches being presented in the literature. Nevertheless, there has been little analysis on the impact that these static mapping approaches have on the schedulability of applications exploiting OpenMP, a model increasingly seen as a suitable mechanism to leverage the potential of parallel and heterogeneous processor architectures. This paper, therefore, performs a throughout evaluation of the recently presented heuristic task-to-thread mapping working with different heuristics through allocation and dispatching phases, compared with state-of-the-art, in terms of schedulability. This process is performed using a state-of-the-art schedulability analysis methodology through an integration of our simulator and an existing schedulability toolset. This evaluation allows for identifying the static heuristic mapping approaches that achieve tighter schedulability analysis than other methods in the literature.
Lightweight Performance Monitoring of Real-Time Applications in RISC-V Platforms Nuno Soares, Tiago Carvalho, Luis M. Pinho Proceedings 2025 28th Euromicro Conference on Digital System Design Dsd 2025, 2025 As RISC-V platforms become a target for real-time systems it is crucial to ensure and effect performance analysis to make sure that these systems meet the respective time constraints while also perform reliably. To achieve these goals, performance monitoring becomes a critical aspect, especially when considering resource-constrained environments where efficient resource usage is required. This paper focuses on the study and development of a solution to simplify the interaction with machine-level privileged counters and registers, considering two essential non-functional requirements (NFRs): low-overhead access to performance metrics and low memory API usage. The provided solution allows developers to retrieve and analyse performance data directly from user-level space with a simplified interface, while providing feedback for application optimization, isolation, and improved system reliability. The demonstrated results showcase how our approach meets the two NFRs and its potential in terms of customization for the target platform.
Supporting Soft Real-Time Tasks in Zephyr With Constant Bandwidth Servers Alexander Paschoaletto, Paulo Baltarejo Sousa, Luís Miguel Pinho, Tiago Carvalho Proceedings 2025 28th International Symposium on Real Time Distributed Computing Isorc 2025, 2025 The Constant Bandwidth Server (CBS) is a mechanism used in real-time systems to enable aperiodic soft realtime tasks with unknown execution parameters to run under a dynamic scheduling policy such as Earliest Deadline First (EDF), while still ensuring schedulability by using a bandwidth reservation strategy. This paper proposes an approach to extend the Zephyr open-source real-time operating system, currently maintained by the Linux Foundation, to support aperiodic tasks with CBS. The paper provides the proposed architecture and the design and implementation of the CBS mechanisms in the operating system, which are then evaluated in two test cases in an embedded platform.
Energy Monitoring Systems Analysis and Development: A Case Study for Graph-Based Modelling Tiago Carvalho, Tobias Müller, Sebastian Reiter, Luis Pinho, André Oliveira International Conference on Model Driven Engineering and Software Development, 2025 : The Internet of Things (IoT) enables everyday objects to connect and communicate remotely, transforming areas such as smart homes and industrial automation. IoT systems can be standalone or interconnected in a System of Systems, where multiple devices work together towards a common goal. A key application is Energy Monitoring Systems (EMS), which track energy use within communities, using energy production and consumption. Designing this type of IoT systems remains complex and requires careful consideration of heterogeneous devices, their limitations, software, communication protocols, data management, and security. This paper presents a design approach for EMS communities, with a focus on house-level IoT systems. We introduce a model-driven development methodology, a holistic and flexible framework for designing IoT systems across the development and operations lifecycle. Especially, the concept of projectors enables an easy shift between domain assets and provide automation support. The approach is validated with a real-life use case, for which an analysis phase was developed, showing the benefits of using our approach for managing EMS and the automation of the analysis configuration.
Foundations for a Rust-Like Borrow Checker for C Tiago Silva, João Bispo, Tiago Carvalho Proceedings of the ACM SIGPLAN Conference on Languages Compilers and Tools for Embedded Systems LCTES, 2024 Memory safety issues in C are the origin of various vulnerabilities that can compromise a program's correctness or safety from attacks. We propose a different approach to tackle memory safety, the replication of Rust's Mid-level Intermediate Representation (MIR) Borrow Checker, through the usage of static analysis and successive source-to-source code transformations, to be composed upstream of the compiler, thus ensuring maximal compatibility with most build systems. This allows us to approximate a subset of C to Rust's core concepts, applying the memory safety guarantees of the rustc compiler to C. In this work, we present a survey of Rust's efforts towards ensuring memory safety, and describe the theoretical basis for a C borrow checker, alongside a proof-of-concept that was developed to demonstrate its potential. This prototype correctly identified violations of the ownership and aliasing rules, and accurately reported each error with a level of detail comparable to that of the rustc compiler.
Task-to-Thread Mapping in OpenMP Using Fuzzy Decision Making Ada User Journal, 2024
Time-predictable task-to-thread mapping in multi-core processors Mohammad Samadi, Sara Royuela, Luis Miguel Pinho, Tiago Carvalho, Eduardo Quiñones Journal of Systems Architecture, 2024 The performance of time-predictable systems can be improved in multi-core processors using parallel programming models (e.g., OpenMP). However, schedulability analysis of parallel applications is a big challenge due to their sophisticated structure. The common drawbacks of current task-to-thread mapping approaches in OpenMP are that they (i) utilize a global queue in the mapping process, which may increase contention, (ii) do not apply heuristic techniques, which may reduce the predictability and performance of the system, and (iii) use basic analytical techniques, which may cause notable pessimism in the temporal conditions. Accordingly, this paper proposes a task-to-thread mapping method in multi-core processors based on the OpenMP framework. The mapping process is carried out through two phases: allocation and dispatching. Each thread has an allocation queue in order to minimize contention, and the allocation and dispatching processes are performed using several heuristic algorithms to enhance predictability. In the allocation phase, each task-part from the OpenMP DAG is allocated to one of the allocation queues, which includes both sibling and child task-parts. A suitable thread (i.e., allocation queue) is selected using one of the suggested heuristic allocation algorithms. In the dispatching phase, when a thread is idle, a task-part is selected from its allocation queue using one of the suggested heuristic dispatching algorithms and then dispatched to and executed by the thread. The performance of the proposed method is evaluated under different conditions (e.g., varying the number of tasks and the number of threads) in terms of application response time and overhead of the mapping process. The simulation results show that the proposed method surpasses the other methods, especially in the scenario that includes overhead of the mapping. In addition, a prototype implementation of the main heuristics is evaluated using two kernels from real-world applications, showing that the methods work better than LLVM's default scheduler in most of the configurations.
Multi-criteria Analysis and Optimisation in the AMPERE Ecosystem Sara Royuela, Adrian Munera, Eduardo Quinones, Tiago Carvalho, Luís Miguel Pinho, Mohammad Samadi, Tommaso Cucinotta, Gabriele Ara, Francesco Paladino, Sergio Mazzola, Thomas Benz Ada User Journal, 2023 The AMPERE project is developing the next generation of high-performance and energy efficient Cyber-Physical Systems supporting multi-criteria optimization. This paper provides the general overview of the AMPERE approach to analyse and optimize parallel real-time applications in heterogeneous platforms. More specifically, it details how parallel OpenMP programs are generated from AMALTHEA models, and the multi-criteria optimization methodology, considering the fault-tolerance, time and energy properties of the targeted applications.
A Real-Time Parallel Programming Approach for Rust Tiago Carvalho, Hugo Silva, Luís Miguel Pinho Ada User Journal, 2023 The development of real-time systems is one of the areas with the highest relevance in computer science, and the number of critical systems has increased significantly. These systems considers several applications running concurrently, and inside each of those applications code might be parallelized to improve their performance and control the priority of each parallelizable task. Several efforts have been done in different programming languages to provide real-time systems with parallel programming models, whether by code extensions or annotations, or with specific features in the actual language core.
A DSL-based runtime adaptivity framework for Java Tiago Carvalho, João Bispo, Pedro Pinto, João M.P. Cardoso Softwarex, 2023 This article presents Kadabra, a Java source-to-source compiler that allows users to make code queries, code analysis and code transformations, all user-programmable using the domain-specific language LARA. We show how Kadabra can be used as the basis for developing a runtime autotuning and adaptivity framework, able to adapt existing source Java code in order to take advantage of runtime autotuning. Specifically, this article presents the framework, consisting of Kadabra and an API for runtime adaptivity. We show the use of the framework to extend Java applications with autotuning and runtime adaptivity mechanisms to target performance improvement and/or energy saving goals.
The LARA language João M. P. Cardoso, José Gabriel de F. Coutinho, Tiago Carvalho, Pedro C. Diniz Compilation and Synthesis for Embedded Reconfigurable Systems an Aspect Oriented Approach, 2013
Aspect-based source to source transformations José Gabriel de F. Coutinho, João M. P. Cardoso, Tiago Carvalho, Sujit Bhattacharya, Wayne Luk, George Constantinides, Pedro C. Diniz, Zlatko Petrov Compilation and Synthesis for Embedded Reconfigurable Systems an Aspect Oriented Approach, 2013
LARA experiments Fernando Gonçalves, Zlatko Petrov, José Gabriel de F. Coutinho, Razvan Nane, Vlad-Mihai Sima, João M. P. Cardoso, Stephan Werner, Sujit Bhattacharya, Tiago Carvalho, Ricardo Nobre, José de Sá, João Teixeira, Pedro C. Diniz, Koen Bertels, George Constantinides, Wayne Luk, Juergen Becker, José Carlos Alves, João Canas Ferreira, Gabriel M. Almeida Compilation and Synthesis for Embedded Reconfigurable Systems an Aspect Oriented Approach, 2013
The REFLECT design-flow João M. P. Cardoso, José Gabriel de F. Coutinho, Razvan Nane, Vlad-Mihai Sima, Bryan Olivier, Tiago Carvalho, Ricardo Nobre, Pedro C. Diniz, Zlatko Petrov, Koen Bertels, Fernando Gonçalves, Hans van Someren, Michael Hübner, George Constantinides, Wayne Luk, Jürgen Becker, Kamil Krátký, Sujit Bhattacharya, José Carlos Alves, João Canas Ferreira Compilation and Synthesis for Embedded Reconfigurable Systems an Aspect Oriented Approach, 2013
Controlling hardware synthesis with aspects João M.P. Cardoso, Tiago Carvalho, José G.F. Coutinho, Pedro C. Diniz, Zlatko Petrov, Wayne Luk Proceedings 15th Euromicro Conference on Digital System Design Dsd 2012, 2012
Hardware/software specialization through aspects: The LARA approach Joao M. P. Cardoso, Tiago Carvalho, Joao Teixeira, Pedro C. Diniz, Fernando Goncalves, Zlatko Petrov Proceedings 2012 International Conference on Embedded Computer Systems Architectures Modeling and Simulation IC Samos 2012, 2012
Resource-efficient designs using an aspect-oriented approach Jose G.F. Coutinho, Sujit Bhattacharya, Wayne Luk, George A. Constantinides, João M.P. Cardoso, Tiago Carvalho, Pedro C. Diniz, Zlatko Petrov Proceedings 15th IEEE International Conference on Computational Science and Engineering Cse 2012 and 10th IEEE IFIP International Conference on Embedded and Ubiquitous Computing Euc 2012, 2012
Experiments with the LARA aspect-oriented approach José G.F. Coutinho, Tiago Carvalho, Sérgio Durand, João M.P. Cardoso, Ricardo Nobre, Pedro C. Diniz, Wayne Luk Aosd 12 Companion Proceedings of the 11th Annual International Conference on Aspect Oriented Software Development, 2012
LARA: An aspect-oriented programming language for embedded systems João M.P. Cardoso, Tiago Carvalho, José G.F. Coutinho, Wayne Luk, Ricardo Nobre, Pedro Diniz, Zlatko Petrov Aosd 12 Proceedings of the 11th Annual International Conference on Aspect Oriented Software Development, 2012
RECENT SCHOLAR PUBLICATIONS
Schedulability Analysis of OpenMP Applications Under Heuristic Task-To-Thread Mapping M Samadi, T Carvalho, LM Pinho, S Royuela 7th Workshop on Next Generation Real-Time Embedded Systems (NG-RES 2026), 2 … , 2026 2026 Citations: 1
Lightweight Performance Monitoring of Real-Time Applications in RISC-V Platforms N Soares, T Carvalho, LM Pinho 2025 28th Euromicro Conference on Digital System Design (DSD), 402-409 , 2025 2025
Development and Management of Digital Twins for Energy Monitoring Systems T Carvalho, LM Pinho, P Paiva ACM SIGAda Ada Letters 45 (1), 79-83 , 2025 2025
Supporting Soft Real-Time Tasks in Zephyr With Constant Bandwidth Servers A Paschoaletto, PB Sousa, LM Pinho, T Carvalho 2025 28th International Symposium on Real-Time Distributed Computing (ISORC … , 2025 2025 Citations: 1
Energy Monitoring Systems Analysis and Development: A Case Study for Graph-Based Modelling. T Carvalho, T Müller, S Reiter, LM Pinho, A Oliveira MODELSWARD, 186-195 , 2025 2025
Task-to-thread mapping in OpenMP using fuzzy decision making M Samadi, T Carvalho, L Miguel Pinho, S Royuela ACM SIGAda Ada Letters 44 (1), 107-111 , 2024 2024 Citations: 1
Foundations for a rust-like borrow checker for c T Silva, J Bispo, T Carvalho Proceedings of the 25th ACM SIGPLAN/SIGBED International Conference on … , 2024 2024 Citations: 3
A Real-Time Parallel Programming Approach for Rust T Carvalho, H Silva, L Miguel Pinho ACM SIGAda Ada Letters 43 (2), 57-61 , 2024 2024 Citations: 1
Multi-criteria Analysis and Optimization in the AMPERE Ecosystem S Royuela, A Munera, E Quinones, T Carvalho, L Miguel Pinho, ... ACM SIGAda Ada Letters 43 (2), 94-99 , 2024 2024 Citations: 1
Evaluation of heuristic task-to-thread mapping using static and dynamic approaches M Samadi, T Carvalho, LM Pinho, S Royuela Workshop on Job Scheduling Strategies for Parallel Processing, 103-119 , 2024 2024 Citations: 2
Time-predictable task-to-thread mapping in multi-core processors M Samadi, S Royuela, LM Pinho, T Carvalho, E Quiñones Journal of Systems Architecture 148, 103068 , 2024 2024 Citations: 15
Towards a Rust-Like Borrow Checker for C T Silva, PG Correia, L Sousa, J Bispo, T Carvalho ACM Transactions on Embedded Computing Systems , 2024 2024 Citations: 3
Framework for the Analysis and Configuration of Real-Time OpenMP Applications T Carvalho, LM Pinho, M Samadi, S Royuela, A Munera, E Quiñones 2023 IEEE 21st International Conference on Industrial Informatics (INDIN), 1-8 , 2023 2023 Citations: 2
A DSL-based runtime adaptivity framework for Java T Carvalho, J Bispo, P Pinto, JMP Cardoso SoftwareX 23, 101496 , 2023 2023 Citations: 7
Heuristic-based task-to-thread mapping in multi-core processors MS Gharajeh, S Royuela, LM Pinho, T Carvalho, E Quiñones 2022 IEEE 27th International Conference on Emerging Technologies and Factory … , 2022 2022 Citations: 12
Tracing and Measuring GPU Execution in Automotive Software Systems T Carvalho, LM Pinho ADA USER 43 (3), 160 , 2022 2022
Configuration of Parallel Real-Time Applications on Multi-Core Processors MS Gharajeh, T Carvalho, LM Pinho 2022 IEEE 20th International Conference on Industrial Informatics (INDIN), 67-73 , 2022 2022 Citations: 2
A model annotation approach for the support of software energy properties management using amalthea R Gomes, T Carvalho, A Barros, LM Pinho 2022 IEEE 5th International Conference on Industrial Cyber-Physical Systems … , 2022 2022 Citations: 2
An ensemble of autonomous auto-encoders for human activity recognition KD Garcia, CR de Sá, M Poel, T Carvalho, J Mendes-Moreira, ... Neurocomputing 439, 271-280 , 2021 2021 Citations: 93
Nonio—modular automatic compiler phase selection and ordering specialization framework for modern compilers R Nobre, J Bispo, T Carvalho, JMP Cardoso SoftwareX 10, 100238 , 2019 2019 Citations: 6
MOST CITED SCHOLAR PUBLICATIONS
LARA: an aspect-oriented programming language for embedded systems JMP Cardoso, T Carvalho, JGF Coutinho, W Luk, R Nobre, P Diniz, ... Proceedings of the 11th annual international conference on Aspect-oriented … , 2012 2012 Citations: 122
An ensemble of autonomous auto-encoders for human activity recognition KD Garcia, CR de Sá, M Poel, T Carvalho, J Mendes-Moreira, ... Neurocomputing 439, 271-280 , 2021 2021 Citations: 93
Performance‐driven instrumentation and mapping strategies using the LARA aspect‐oriented programming approach JMP Cardoso, JGF Coutinho, T Carvalho, PC Diniz, Z Petrov, W Luk, ... Software: Practice and Experience 46 (2), 251-287 , 2016 2016 Citations: 45
Aspect composition for multiple target languages using LARA P Pinto, T Carvalho, J Bispo, MA Ramalho, JMP Cardoso Computer Languages, Systems & Structures 53, 1-26 , 2018 2018 Citations: 35
The matisse matlab compiler J Bispo, P Pinto, R Nobre, T Carvalho, JMP Cardoso, PC Diniz 2013 11th IEEE International Conference on Industrial Informatics (INDIN … , 2013 2013 Citations: 23
Aspect-driven mixed-precision tuning targeting gpus R Nobre, L Reis, J Bispo, T Carvalho, JMP Cardoso, S Cherubin, ... Proceedings of the 9th Workshop and 7th Workshop on Parallel Programming and … , 2018 2018 Citations: 21
Controlling a complete hardware synthesis toolchain with LARA aspects JMP Cardoso, T Carvalho, JGF Coutinho, R Nobre, R Nane, PC Diniz, ... Microprocessors and Microsystems 37 (8), 1073-1089 , 2013 2013 Citations: 21
LARA as a language-independent aspect-oriented programming approach P Pinto, T Carvalho, J Bispo, JMP Cardoso Proceedings of the Symposium on Applied Computing, 1623-1630 , 2017 2017 Citations: 19
Time-predictable task-to-thread mapping in multi-core processors M Samadi, S Royuela, LM Pinho, T Carvalho, E Quiñones Journal of Systems Architecture 148, 103068 , 2024 2024 Citations: 15
Heuristic-based task-to-thread mapping in multi-core processors MS Gharajeh, S Royuela, LM Pinho, T Carvalho, E Quiñones 2022 IEEE 27th International Conference on Emerging Technologies and Factory … , 2022 2022 Citations: 12
A study on hyperparameter configuration for human activity recognition KD Garcia, T Carvalho, J Mendes-Moreira, JMP Cardoso, AC de Carvalho International Workshop on Soft Computing Models in Industrial and … , 2019 2019 Citations: 11
Enriching MATLAB with aspect-oriented features for developing embedded systems JMP Cardoso, JM Fernandes, MP Monteiro, T Carvalho, R Nobre Journal of Systems Architecture 59 (7), 412-428 , 2013 2013 Citations: 11
A DSL-based runtime adaptivity framework for Java T Carvalho, J Bispo, P Pinto, JMP Cardoso SoftwareX 23, 101496 , 2023 2023 Citations: 7
Nonio—modular automatic compiler phase selection and ordering specialization framework for modern compilers R Nobre, J Bispo, T Carvalho, JMP Cardoso SoftwareX 10, 100238 , 2019 2019 Citations: 6
Experiments with the LARA aspect-oriented approach JGF Coutinho, T Carvalho, S Durand, JMP Cardoso, R Nobre, PC Diniz, ... Proceedings of the 11th annual international conference on Aspect-oriented … , 2012 2012 Citations: 5
The LARA Aspect-IR JGF Coutinho, T Carvalho, S Durand, JMP Cardoso REFLECT internal technical report , 2012 2012 Citations: 5
A preliminary study on hyperparameter configuration for human activity recognition KD Garcia, T Carvalho, J Mendes-Moreira, JMP Cardoso, AC de Carvalho arXiv preprint arXiv:1810.10956 , 2018 2018 Citations: 4
A meta-language and framework for aspect-oriented programming TDR de Carvalho PQDT-Global , 2011 2011 Citations: 4
Foundations for a rust-like borrow checker for c T Silva, J Bispo, T Carvalho Proceedings of the 25th ACM SIGPLAN/SIGBED International Conference on … , 2024 2024 Citations: 3