Cookies
O website necessita de alguns cookies e outros recursos semelhantes para funcionar. Caso o permita, o INESC TEC irá utilizar cookies para recolher dados sobre as suas visitas, contribuindo, assim, para estatísticas agregadas que permitem melhorar o nosso serviço. Ver mais
Aceitar Rejeitar
  • Menu
Sobre

Sobre

Luis Miguel Pinho é Professor Coordenador do Departamento de Engenharia Informática do Instituto Superior de Engenharia do Porto (ISEP), sendo Diretor do Mestrado em Engenharia de Sistemas Computacionais Críticos do ISEP. É Doutor em Engenharia Electrotécnica e de Computadores (2001) e Agregado em Engenharia Informática (2023) pela Universidade do Porto.

Luis Miguel Pinho lidera investigação em áreas como software embebido e de tempo real, linguagens de programação, concorrência e paralelismo, com foco particular na integração de computação de alto desempenho em sistemas embebidos de tempo real.


Foi responsável por vários projetos de I&D, entre os quais o projeto FP7 P-SOCRATES, tendo coordenando atividades em mais de 25 projetos, desde projetos de investigação fundamental até transferência de tecnologia financiada pela indústria, incluindo projetos individuais e em consórcio. Publicou mais de 150 artigos em conferências e revistas internacionais na área de sistemas de tempo real, embebidos e ciber-físicos. Foi Conference Chair das conferências Ada-Europe 2006 e ARCS 2015, Keynote Speaker na conferência RTCSA 2010 e Program Chair das conferências Ada-Europe 2006, Ada-Europe 2012 e RTNS 2016. Foi editor da publicação Ada User Journal, de 2007 a 2019, e é atualmente editor da publicação ACM Ada Letters. É membro da ISO/IEC JTC1/SC22/WG9 (Linguagem Ada), sendo um dos autores do modelo de programação paralela da linguagem Ada 2022.


Foi Pró-Presidente para a Investigação e Inovação do Instituto Politécnico do Porto de 2018 a 2022, e Diretor Executivo do PORTIC (Porto Research, Technology & Innovation Center), estrutura de Investigação, Inovação e Empreendedorismo do Politécnico do Porto.

Tópicos
de interesse
Detalhes

Detalhes

  • Nome

    Luis Miguel Pinho
  • Cargo

    Investigador Sénior
  • Desde

    14 dezembro 2022
Publicações

2024

Time-predictable task-to-thread mapping in multi-core processors

Autores
Samadi, M; Royuela, S; Pinho, LM; Carvalho, T; Quinones, E;

Publicação
JOURNAL OF SYSTEMS ARCHITECTURE

Abstract
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.

2023

A Scalable Clustered Architecture for Cyber-Physical Systems

Autores
Cabral, B; Costa, P; Fonseca, T; Ferreira, LL; Pinho, LM; Ribeiro, P;

Publicação
2023 IEEE 21ST INTERNATIONAL CONFERENCE ON INDUSTRIAL INFORMATICS, INDIN

Abstract
Developing distributed and scalable Cyber-Physical Systems (CPS) that can handle large amounts of data at high data rates at the edge, remains a challenging task. Also, the limited availability of open-source solutions makes it difficult for developers and researchers to experiment with and deploy CPSs on a larger scale. This work introduces Edge4CPS, an open-source multi-architecture solution built over Kubernetes that aims to enable an easy to use, efficient and scalable solution for the deployment of applications on edge-like distributed computing clusters. To verify the successful real-world implementation of the introduced architecture, the system was tested in a railway scenario, derived from the Ferrovia 4.0 project, which highlights its functionalities.

2023

Framework for the Analysis and Configuration of Real-Time OpenMP Applications

Autores
Carvalho, T; Pinho, LM; Samadi, M; Royuela, S; Munera, A; Quiñones, E;

Publicação
2023 IEEE 21ST INTERNATIONAL CONFERENCE ON INDUSTRIAL INFORMATICS, INDIN

Abstract
High-performance cyber-physical applications impose several requirements with respect to performance, functional correctness and non-functional aspects. Nowadays, the design of these systems usually follows a model-driven approach, where models generate executable applications, usually with an automated approach. As these applications might execute in different parallel environments, their behavior becomes very hard to predict, and making the verification of non-functional requirements complicated. In this regard, it is crucial to analyse and understand the impact that the mapping and scheduling of computation have on the real-time response of the applications. In fact, different strategies in these steps of the parallel orchestration may produce significantly different interference, leading to different timing behaviour. Tuning the application parameters and the system configuration proves to be one of the most fitting solutions. The design space can however be very cumbersome for a developer to test manually all combinations of application and system configurations. This paper presents a methodology and a toolset to profile, analyse, and configure the timing behaviour of highperformance cyber-physical applications and the target platforms. The methodology leverages on the possibility of generating a task dependency graph representing the parallel computation to evaluate, through measurements, different mapping configurations and select the one that minimizes response time.

2022

Configuration of Parallel Real-Time Applications on Multi-Core Processors

Autores
Gharajeh, MS; Carvalho, T; Pinho, LM;

Publicação
2022 IEEE 20TH INTERNATIONAL CONFERENCE ON INDUSTRIAL INFORMATICS (INDIN)

Abstract
Parallel programming models (e.g., OpenMP) are more and more used to improve the performance of real-time applications in modern processors. Nevertheless, these processors have complex architectures, being very difficult to understand their timing behavior. The main challenge with most of existing works is that they apply static timing analysis for simpler models or measurement-based analysis using traditional platforms (e.g., single core) or considering only sequential algorithms. How to provide an efficient configuration for the allocation of the parallel program in the computing units of the processor is still an open challenge. This paper studies the problem of performing timing analysis on complex multi-core platforms, pointing out a methodology to understand the applications' timing behavior, and guide the configuration of the platform. As an example, the paper uses an OpenMP-based program of the Heat benchmark on a NVIDIA Jetson AGX Xavier. The main objectives are to analyze the execution time of OpenMP tasks, specify the best configuration of OpenMP directives, identify critical tasks, and discuss the predictability of the system/application. A Linux perf based measurement tool, which has been extended by our team, is applied to measure each task across multiple executions in terms of total CPU cycles, the number of cache accesses, and the number of cache misses at different cache levels, including L1, L2 and L3. The evaluation process is performed using the measurement of the performance metrics by our tool to study the predictability of the system/application.

2022

Heuristic-based Task-to-Thread Mapping in Multi-Core Processors

Autores
Gharajeh, MS; Royuela, S; Pinho, LM; Carvalho, T; Quinones, E;

Publicação
2022 IEEE 27TH INTERNATIONAL CONFERENCE ON EMERGING TECHNOLOGIES AND FACTORY AUTOMATION (ETFA)

Abstract
OpenMP can be used in real-time applications to enhance system performance. However, predictability of OpenMP applications is still a challenge. This paper investigates heuristics for the mapping of OpenMP task graphs in underlying threads, for the development of time-predictable OpenMP programs. These approaches are based on a global scheduling queue, as well as per-thread allocation queues. The proposed method is divided into scheduling and allocation phases. In the former phase, OpenMP task-parts are discovered from OpenMP graph and placed in the scheduling queue. Afterwards, an appropriate allocation queue is selected for each task-part using four heuristic algorithms. In the latter phase, the best task-part is selected from the allocation queue to be allocated to and executed by an idle thread. Preliminary simulation results show that the new method overcomes BFS and WFS in terms of scheduling time and idle time.