4 research outputs found
Teaching Parallel Programming Using Java
This paper presents an overview of the "Applied Parallel Computing" course
taught to final year Software Engineering undergraduate students in Spring 2014
at NUST, Pakistan. The main objective of the course was to introduce practical
parallel programming tools and techniques for shared and distributed memory
concurrent systems. A unique aspect of the course was that Java was used as the
principle programming language. The course was divided into three sections. The
first section covered parallel programming techniques for shared memory systems
that include multicore and Symmetric Multi-Processor (SMP) systems. In this
section, Java threads was taught as a viable programming API for such systems.
The second section was dedicated to parallel programming tools meant for
distributed memory systems including clusters and network of computers. We used
MPJ Express-a Java MPI library-for conducting programming assignments and lab
work for this section. The third and the final section covered advanced topics
including the MapReduce programming model using Hadoop and the General Purpose
Computing on Graphics Processing Units (GPGPU).Comment: 8 Pages, 6 figures, MPJ Express, MPI Java, Teaching Parallel
Programmin
A systematic review of the literature on methods and technologies for teaching parallel and distributed computing in universities
There is a growing demand for software developers who have experience writing parallel programs rather than just "parallelizing" sequential systems as computer hardware gets more and more parallel. In order to develop the skills of future software engineers, it is crucial to teach pupils parallelism in elementary computer science courses. We searched the Scopus database for articles on "teaching parallel and distributed computing" and "parallel programming," published in English between 2008 and 2019. 26 papers were included in the study after quality review. As a result, a lab course using the C++ programming language and MPI library serves as the primary teaching tool for parallel and distributed computing
A systematic review of the literature on methods and technologies for teaching parallel and distributed computing in universities
There is a growing demand for software developers who have experience writing parallel programs rather than just" parallelizing" sequential systems as computer hardware gets more and more parallel. In order to develop the skills of future software engineers, it is crucial to teach pupils parallelism in elementary computer science courses. We searched the Scopus database for articles on" teaching parallel and distributed computing" and" parallel programming," published in English between 2008 and 2019. 26 papers were included in the study after quality review. As a result, a lab course using the C++ programming language and MPI library serves as the primary teaching tool for parallel and distributed computing
Cluster de alto desempenho para uso na disciplina de computação paralela e distribuída utilizando contêineres
Trabalho de Conclusão de Curso, apresentado para obtenção do grau de Bacharel no Curso de Ciência da Computação da Universidade do Extremo Sul Catarinense, UNESC.Nas mais diversas áreas, cientificas e profissionais, é crescente a necessidade por de se obter cada vez mais poder computacional, seja para manter uma enorme quantidade de serviços ativos, ou resolver problemas científicos e matemáticos complexos, porém o alto custo de um supercomputador faz com que se busque alternativas de se obter esse desempenho, sendo uma delas a utilização de clusters como por exemplo o tipo Beowulf que tem como proposta, unir recursos computacionais local ou geograficamente dispersos trazendo vantagem inclusive em relação aos supercomputadores. Porém, mesmo sendo estes mais viáveis financeiramente, ainda representam gastos elevados, levando as empresas e universidades optarem por utilizar ambientes compartilhados na intenção de reduzir os custos, surgindo com isso, problemas oriundos do compartilhamento de recursos, conflitos de dependências entre outras. Como solução para esses problemas, surgem técnicas de virtualização, sendo uma delas os chamados contêineres, que são mais leves e capazes de isolar as aplicações, passando a ser uma boa alternativa para resolver muitos destes problemas. Utilizando essa ideia, o presente trabalho busca alternativas de implementar um cluster de alto desempenho baseado em contêineres, para ser utilizado na disciplina de computação paralela e distribuída, e com isso evitar problemas de compatibilidade, falta de infraestrutura necessária para a implementação de uma cluster físico e evitar conflitos de configuração devido a uma instalação malsucedida, além de acelerar o processo de instalação do cluster, e com isso dar aos alunos a experiência de desenvolverem programas paralelos, em um ambiente próximo ao real