Teaching Parallel Programming in Containers: Virtualization of a Heterogeneous Local Infrastructure
Autor(a) principal: | |
---|---|
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_ |
1815257233203658752 |