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...
Na minha lista:
Autor principal: | |
---|---|
Outros Autores: | |
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!
|
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. |
---|