Implementação de OpenMP para o Sistema Operacional Nanvix em RISC-V

Multicore programming is not a trivial task. In some cases, multicore systems have no parallel programming interfaces, which requires operating system support to be made available. This work implements a version of the development interface of parallel programming Open Multi-Processing (OpenMP) f...

ver descrição completa

Na minha lista:
Detalhes bibliográficos
Autor principal: Souza Filho, Reinaldo Agostinho de
Outros Autores: Souza, Samuel Xavier de
Formato: Dissertação
Idioma:pt_BR
Publicado em: Universidade Federal do Rio Grande do Norte
Assuntos:
Endereço do item:https://repositorio.ufrn.br/handle/123456789/48990
Tags: Adicionar Tag
Sem tags, seja o primeiro a adicionar uma tag!
Descrição
Resumo:Multicore programming is not a trivial task. In some cases, multicore systems have no parallel programming interfaces, which requires operating system support to be made available. This work implements a version of the development interface of parallel programming Open Multi-Processing (OpenMP) for the Nanvix operating system. OpenMP is a parallel application development interface that allows for the intuitive abstraction of parallelism and the division of workload across processes. It is common to have memory limitations in platforms that embed codes in their projects. These memory limitations could make unavailable the use of an operating system with programming-friendly interfaces. The system software of embedded processing platforms is limited in programmability, requiring more knowledge from the programmer about the process and the hardware architecture used. Nanvix is an operating system embedded in multicore platforms, being light enough to fit in memory restriction environments; however, it has standards that ease the programming. Nanvix includes native parallel programming interfaces inspired on the Portable Operating System Interface (POSIX) adopted to implement some versions of OpenMP, that hopes to build an OpenMP version to Nanvix it is going to result in easy coding for the operating system. In this work, the version of OpenMP uses the Nanvix’s compilator to translate the compilation directives, and it assembles a library to the running routines. It was tested in an emulator of the RISC-V architecture. Some applications were built in the OpenMP version and their equivalent on the native Nanvix library of parallel programming to validate the library. The programmability of Nanvix is improved with OpenMP, lowering the development time of parallel applications without a considerable performance loss. The results show that, in some cases, OpenMP has more parallel efficiency compared to Nanvix’s native API kthreads, and in other cases, the kthreads has more efficiency.