Teaching Parallel Programming in Containers: Virtualization of a Heterogeneous Local Infrastructure

Detalhes bibliográficos
Autor(a) principal: Bachiega, Naylor Garcia
Data de Publicação: 2021
Tipo de documento: Tese
Idioma: eng
Título da fonte: Biblioteca Digital de Teses e Dissertações da USP
Texto Completo: https://www.teses.usp.br/teses/disponiveis/55/55134/tde-21012022-120847/
Resumo: Providing parallel programming education is an emerging challenge, requires teaching approaches to further the learning process and a complex infrastructure to provide a suitable environment for the laboratory practical classes. Do not prioritize parallel programming requirements in future computing professionals learning can lead to a significant training gap, negatively impacting the efficient use of current computing platforms. To popularize \"parallel thinking,\" it is essential to adopt practical learning approaches and means to facilitate software configuration and the infrastructure necessary for laboratory classes. Unfortunately, many public and private institutions do not have a cluster or an infrastructure to run parallel programs. Also, there is an operational cost to create and maintain a required environment for these laboratory classes. The lack of lecturers who work in research related to high-performance computing and the difficulties inherent in managing the execution environment are two other factors that create barriers to teaching parallel programming. Thus, this thesis aims to evaluate whether the virtualization of heterogeneous parallel architectures contributes to the teaching of parallel programming by computing students in educational institutions, which do not have such parallel architectures or qualified personnel to manage these environments. This research started with a study of existing works in the literature to determine how the practical teaching of parallel programming is carried out today. After this survey, we found that no tool met the idealized virtualization needs. Next, we defined the virtualization requirements, and a tool was developed using containers. Subsequently, experiments were carried out with professionals in the field and students to evaluate the effectiveness of this tool in the practical teaching of parallel programming. As a result, Iguana was created, an open-source tool for teaching parallel programming, thinking about low-income students who do not have access to parallel architectures. The tool allows students to develop and run their parallel code through a real-time web interface without the need to access command-line terminals or wait for batch processing. Furthermore, Iguana can operate without the Internet in a simple virtual machine, requiring only essential computer resources, allowing its use by any first-year undergraduate student.
id USP_ddd9cba97702cce3220fe4fb9c1826c7
oai_identifier_str oai:teses.usp.br:tde-21012022-120847
network_acronym_str USP
network_name_str Biblioteca Digital de Teses e Dissertações da USP
repository_id_str 2721
spelling Teaching Parallel Programming in Containers: Virtualization of a Heterogeneous Local InfrastructureEnsino de programação paralela em contêineres: virtualização de uma infraestrutura local heterogêneaComputação de alto desempenhoComputing educationContainersContainersEducação em computaçãoEnsino de programação paralelaHigh performance computingParallel programming teachingVirtualizaçãoVirtualizationProviding parallel programming education is an emerging challenge, requires teaching approaches to further the learning process and a complex infrastructure to provide a suitable environment for the laboratory practical classes. Do not prioritize parallel programming requirements in future computing professionals learning can lead to a significant training gap, negatively impacting the efficient use of current computing platforms. To popularize \"parallel thinking,\" it is essential to adopt practical learning approaches and means to facilitate software configuration and the infrastructure necessary for laboratory classes. Unfortunately, many public and private institutions do not have a cluster or an infrastructure to run parallel programs. Also, there is an operational cost to create and maintain a required environment for these laboratory classes. The lack of lecturers who work in research related to high-performance computing and the difficulties inherent in managing the execution environment are two other factors that create barriers to teaching parallel programming. Thus, this thesis aims to evaluate whether the virtualization of heterogeneous parallel architectures contributes to the teaching of parallel programming by computing students in educational institutions, which do not have such parallel architectures or qualified personnel to manage these environments. This research started with a study of existing works in the literature to determine how the practical teaching of parallel programming is carried out today. After this survey, we found that no tool met the idealized virtualization needs. Next, we defined the virtualization requirements, and a tool was developed using containers. Subsequently, experiments were carried out with professionals in the field and students to evaluate the effectiveness of this tool in the practical teaching of parallel programming. As a result, Iguana was created, an open-source tool for teaching parallel programming, thinking about low-income students who do not have access to parallel architectures. The tool allows students to develop and run their parallel code through a real-time web interface without the need to access command-line terminals or wait for batch processing. Furthermore, Iguana can operate without the Internet in a simple virtual machine, requiring only essential computer resources, allowing its use by any first-year undergraduate student.Fornecer ensino em programação paralela é um desafio emergente, necessitando de abordagens de ensino para fomentar o processo de aprendizagem e de complexa infraestrutura para proporcionar um ambiente adequado para as aulas práticas de laboratório. Não priorizar requisitos de programação paralela no aprendizado dos futuros profissionais em computação pode levar a uma significativa lacuna de formação, a qual impactará negativamente no uso eficiente das atuais plataformas computacionais. Para popularizar o ensino desse tipo de computação, é imprescindível a adoção de abordagens eficazes de aprendizagem e meios para facilitar a configuração de software e da infraestrutura necessária para a prática do ensino em laboratório. Muitas instituições públicas e privadas não possuem um cluster ou uma infraestrutura adequada para execução dos programas paralelos. Além disso, há um custo operacional para criar e manter um ambiente próprio para essas aulas em laboratório. A falta de docentes que atuam em pesquisas relacionadas à computação de alto desempenho e as dificuldades inerentes ao gerenciamento do ambiente de execução são outros dois fatores que criam barreiras ao ensino de programação paralela. Dessa forma, o objetivo desta tese é avaliar se a virtualização de arquiteturas paralelas heterogêneas contribui para o ensino de programação paralela por alunos de computação em instituições de ensino que não dispõem de tais arquiteturas paralelas, nem pessoal qualificado para a gestão desses ambientes. Esta pesquisa teve como ponto de partida um estudo de trabalhos existentes na literatura, para determinar como o ensino prático de programação paralela é realizado atualmente. Após esse levantamento, foi constatado que nenhuma ferramenta atendia às necessidades de virtualização idealizadas. Definidos os requisitos da virtualização, uma ferramenta usando contêineres foi desenvolvida. Posteriormente, foram conduzidos experimentos com profissionais da área e alunos para avaliar eficácia dessa ferramenta no ensino prático de programação paralela. Como resultado, foi criada a Iguana, uma ferramenta de código aberto para o ensino de programação paralela, pensando em alunos de baixa renda que não têm acesso a arquiteturas paralelas. A ferramenta permite que os alunos criem e executem seus códigos paralelos por meio de uma interface web em tempo real, sem a necessidade de acessar terminais por linha de comando ou aguardar seu processamento em lote. Ademais, a Iguana pode funcionar sem Internet em uma simples máquina virtual, exigindo apenas conhecimentos básicos de informática, permitindo seu uso a qualquer aluno do primeiro ano de graduação.Biblioteca Digitais de Teses e Dissertações da USPSouza, Paulo Sergio Lopes deBachiega, Naylor Garcia2021-11-09info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisapplication/pdfhttps://www.teses.usp.br/teses/disponiveis/55/55134/tde-21012022-120847/reponame:Biblioteca Digital de Teses e Dissertações da USPinstname:Universidade de São Paulo (USP)instacron:USPLiberar o conteúdo para acesso público.info:eu-repo/semantics/openAccesseng2022-01-21T14:20:02Zoai:teses.usp.br:tde-21012022-120847Biblioteca Digital de Teses e Dissertaçõeshttp://www.teses.usp.br/PUBhttp://www.teses.usp.br/cgi-bin/mtd2br.plvirginia@if.usp.br|| atendimento@aguia.usp.br||virginia@if.usp.bropendoar:27212022-01-21T14:20:02Biblioteca Digital de Teses e Dissertações da USP - Universidade de São Paulo (USP)false
dc.title.none.fl_str_mv Teaching Parallel Programming in Containers: Virtualization of a Heterogeneous Local Infrastructure
Ensino de programação paralela em contêineres: virtualização de uma infraestrutura local heterogênea
title Teaching Parallel Programming in Containers: Virtualization of a Heterogeneous Local Infrastructure
spellingShingle Teaching Parallel Programming in Containers: Virtualization of a Heterogeneous Local Infrastructure
Bachiega, Naylor Garcia
Computação de alto desempenho
Computing education
Containers
Containers
Educação em computação
Ensino de programação paralela
High performance computing
Parallel programming teaching
Virtualização
Virtualization
title_short Teaching Parallel Programming in Containers: Virtualization of a Heterogeneous Local Infrastructure
title_full Teaching Parallel Programming in Containers: Virtualization of a Heterogeneous Local Infrastructure
title_fullStr Teaching Parallel Programming in Containers: Virtualization of a Heterogeneous Local Infrastructure
title_full_unstemmed Teaching Parallel Programming in Containers: Virtualization of a Heterogeneous Local Infrastructure
title_sort Teaching Parallel Programming in Containers: Virtualization of a Heterogeneous Local Infrastructure
author Bachiega, Naylor Garcia
author_facet Bachiega, Naylor Garcia
author_role author
dc.contributor.none.fl_str_mv Souza, Paulo Sergio Lopes de
dc.contributor.author.fl_str_mv Bachiega, Naylor Garcia
dc.subject.por.fl_str_mv Computação de alto desempenho
Computing education
Containers
Containers
Educação em computação
Ensino de programação paralela
High performance computing
Parallel programming teaching
Virtualização
Virtualization
topic Computação de alto desempenho
Computing education
Containers
Containers
Educação em computação
Ensino de programação paralela
High performance computing
Parallel programming teaching
Virtualização
Virtualization
description Providing parallel programming education is an emerging challenge, requires teaching approaches to further the learning process and a complex infrastructure to provide a suitable environment for the laboratory practical classes. Do not prioritize parallel programming requirements in future computing professionals learning can lead to a significant training gap, negatively impacting the efficient use of current computing platforms. To popularize \"parallel thinking,\" it is essential to adopt practical learning approaches and means to facilitate software configuration and the infrastructure necessary for laboratory classes. Unfortunately, many public and private institutions do not have a cluster or an infrastructure to run parallel programs. Also, there is an operational cost to create and maintain a required environment for these laboratory classes. The lack of lecturers who work in research related to high-performance computing and the difficulties inherent in managing the execution environment are two other factors that create barriers to teaching parallel programming. Thus, this thesis aims to evaluate whether the virtualization of heterogeneous parallel architectures contributes to the teaching of parallel programming by computing students in educational institutions, which do not have such parallel architectures or qualified personnel to manage these environments. This research started with a study of existing works in the literature to determine how the practical teaching of parallel programming is carried out today. After this survey, we found that no tool met the idealized virtualization needs. Next, we defined the virtualization requirements, and a tool was developed using containers. Subsequently, experiments were carried out with professionals in the field and students to evaluate the effectiveness of this tool in the practical teaching of parallel programming. As a result, Iguana was created, an open-source tool for teaching parallel programming, thinking about low-income students who do not have access to parallel architectures. The tool allows students to develop and run their parallel code through a real-time web interface without the need to access command-line terminals or wait for batch processing. Furthermore, Iguana can operate without the Internet in a simple virtual machine, requiring only essential computer resources, allowing its use by any first-year undergraduate student.
publishDate 2021
dc.date.none.fl_str_mv 2021-11-09
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://www.teses.usp.br/teses/disponiveis/55/55134/tde-21012022-120847/
url https://www.teses.usp.br/teses/disponiveis/55/55134/tde-21012022-120847/
dc.language.iso.fl_str_mv eng
language eng
dc.relation.none.fl_str_mv
dc.rights.driver.fl_str_mv Liberar o conteúdo para acesso público.
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Liberar o conteúdo para acesso público.
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.coverage.none.fl_str_mv
dc.publisher.none.fl_str_mv Biblioteca Digitais de Teses e Dissertações da USP
publisher.none.fl_str_mv Biblioteca Digitais de Teses e Dissertações da USP
dc.source.none.fl_str_mv
reponame:Biblioteca Digital de Teses e Dissertações da USP
instname:Universidade de São Paulo (USP)
instacron:USP
instname_str Universidade de São Paulo (USP)
instacron_str USP
institution USP
reponame_str Biblioteca Digital de Teses e Dissertações da USP
collection Biblioteca Digital de Teses e Dissertações da USP
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da USP - Universidade de São Paulo (USP)
repository.mail.fl_str_mv virginia@if.usp.br|| atendimento@aguia.usp.br||virginia@if.usp.br
_version_ 1809090951484801024