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

dc.contributor.advisorSouza, Samuel Xavier de
dc.contributor.advisorIDhttps://orcid.org/0000-0001-8747-4580pt_BR
dc.contributor.advisorLatteshttp://lattes.cnpq.br/9892239670106361pt_BR
dc.contributor.authorSouza Filho, Reinaldo Agostinho de
dc.contributor.authorLatteshttp://lattes.cnpq.br/7696645664619092pt_BR
dc.contributor.referees1Freitas, Henrique Cota de
dc.contributor.referees2Silva, Kayo Gonçalves e
dc.contributor.referees2Latteshttp://lattes.cnpq.br/8953461509650063pt_BR
dc.contributor.referees3Barros, Tiago Tavares Leite
dc.date.accessioned2022-08-02T19:56:48Z
dc.date.available2022-08-02T19:56:48Z
dc.date.issued2022-04-26
dc.description.abstractMulticore 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.pt_BR
dc.description.resumoProgramar sistemas embarcados com múltiplos núcleos de processamento não é uma tarefa trivial pois, em muitos casos, esses sistemas não têm suporte a interfaces de programação paralela que, por muitas vezes, requerem de recursos de um sistema operacional. Esse trabalho implementa uma versão da interface de programação paralela Multi processamento aberto (OpenMP do inglês Open Multi Processing) para o sistema operacional Nanvix. O OpenMP é uma interface de desenvolvimento de aplicações paralelas que permite a abstração intuitiva do paralelismo e da divisão da carga de trabalho nos processos. Na utilização de projetos com códigos embarcados, é comum haver limitações de memória nas plataformas utilizadas. Isto pode inviabilizar o uso de sistemas operacionais que implementam interfaces amigáveis para a programação. Os sistemas operacionais utilizados em plataformas de processamento embarcado costumam ser limitados em programabilidade, exigindo que o programador tenha um vasto conhecimento de processos do sistema operacional e da arquitetura de hardware utilizada. O Nanvix é um sistema operacional desenvolvido para plataformas embarcadas de múltiplos núcleos de processamento com foco em ser leve o suficiente para a utilização em ambientes com restrição de memória, mas, ao mesmo tempo, com foco na utilização de padrões que facilitam a programação. O Nanvix possui interfaces de programação paralela nativas que se inspiram no padrão Portable Operating System Interface (POSIX) utilizado para a implementação de algumas versões de OpenMP, sendo então esperado que seja possível criar uma versão para o Nanvix que resultará em uma com maior facilidade de programação em paralelo para o sistema operacional. Nesse trabalho a versão de OpenMP implementada utiliza o compilador do Nanvix para traduzir as diretivas de compilação e foi criada uma biblioteca para as rotinas de execução, sendo esta testada através de um emulador de arquitetura RISC-V. Para validação, foram utilizadas aplicações com a versão de OpenMP e versões equivalentes na biblioteca de programação paralela nativa do Nanvix. A programabilidade do Nanvix foi melhorada com OpenMP diminuindo o tempo de desenvolvimento de aplicações paralelas. Os resultados mostraram que, em alguns casos, o OpenMP possui maior eficiência paralela que a interface de programação paralela nativa do Nanvix kthreads, e em outros casos kthreads tiveram maior eficiência paralela.pt_BR
dc.description.sponsorshipCoordenação de Aperfeiçoamento de Pessoal de Nível Superior - CAPESpt_BR
dc.identifier.citationSOUZA FILHO, Reinaldo Agostinho de. Implementação de OpenMP para o Sistema Operacional Nanvix em RISC-V. 2022. 67f. Dissertação (Mestrado em Engenharia Elétrica e de Computação) - Centro de Tecnologia, Universidade Federal do Rio Grande do Norte, Natal, 2022.pt_BR
dc.identifier.urihttps://repositorio.ufrn.br/handle/123456789/48990
dc.languagept_BRpt_BR
dc.publisherUniversidade Federal do Rio Grande do Nortept_BR
dc.publisher.countryBrasilpt_BR
dc.publisher.initialsUFRNpt_BR
dc.publisher.programPROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA E DE COMPUTAÇÃOpt_BR
dc.rightsAcesso Abertopt_BR
dc.subjectSistema operacionalpt_BR
dc.subjectNanvixpt_BR
dc.subjectOpenMPpt_BR
dc.subjectEmbarcadopt_BR
dc.subjectParalelismopt_BR
dc.subject.cnpqCNPQ::ENGENHARIAS::ENGENHARIA ELETRICApt_BR
dc.titleImplementação de OpenMP para o Sistema Operacional Nanvix em RISC-Vpt_BR
dc.typemasterThesispt_BR

Arquivos

Pacote Original

Agora exibindo 1 - 1 de 1
Nenhuma Miniatura disponível
Nome:
ImplementacaoOpenMPSistema_SouzaFilho_2022.pdf
Tamanho:
1.11 MB
Formato:
Adobe Portable Document Format
Nenhuma Miniatura disponível
Baixar