filmeu

Disciplina Programação Paralela

  • Apresentação

    Apresentação

    A Unidade Curricular de Programação Paralela apresenta uma abordagem para ensino de programação paralela em ambientes heterogêneos. Esta abordagem permite uma transição suave entre o paradigma de programação sequencial para a programação paralela em ambientes heterogêneos, capacitando os estudantes a extrair melhor desempenho das arquiteturas atuais. A linguagem de programação utilizada permite a portabilidade, bem como ser um padrão de linguagem livre de programação, e possibilitar a utilização de todos os recursos de uma arquitetura heterogênea. A abordagem de ensino é divida em dois componentes, onde o componente introdutório aborda as principais características da linguagem de programação OpenCL, a identificação de hardware com suporte a OpenCL em um ambiente heterogêneo e a configuração do ambiente de desenvolvimento. O processo de transição comporta aplicações com um nível de complexidade crescente, permitindo o ensino prático da programação paralela em ambientes heterogêneos.
  • Conteúdos Programáticos

    Conteúdos Programáticos

    Descrição dos conteúdos Introdução a programação paralela. Razões que influenciaram o desenvolvimento da computação paralela. Divisão das áreas da computação paralela. Áreas de abrangência do processamento paralelo. Primitivas Básicas de Programação Paralela: controlo de tarefas, comunicação e sincronização. Modelos de arquiteturas paralelas. Divisão em relação ao fluxo de dados. Divisão quanto ao fluxo de instruções. Divisão em relação ao mecanismo de controlo. Máquinas paralelas comerciais. Classificação do desempenho das máquinas paralelas. Redes de interconexão de processadores. Medidas de desempenho das aplicações paralelas. Obtenção de resultados de aplicações paralelas. Custo computacional. Speedup. Eficiência. Escalabilidade. Exploração do paralelismo em programas. Modelos de algoritmos paralelos. Exploração implícita. Exploração explícita. Paradigmas de programação paralela.
  • Objetivos

    Objetivos

    Estudar o modelo programação paralela para perceber que é constituído por um conjunto de tecnologias de software para expressar algoritmos paralelos e criar aplicações compatíveis com sistemas que suportam a programação paralela. Neste contexto, incluem-se as áreas de aplicações, linguagens de programação, compiladores, biblioteca (computação), sistemas de comunicação e I/O paralelo. Para ultrapassar as dificuldades da paralelização automática, identifica-se um modelo de programação paralela apropriado para desenvolver as aplicações sobre uma plataforma paralela. Desenvolver modelos de programação paralela para serem implementados de diversas formas: como bibliotecas invocadas de linguagens de programação sequencial, extensão de linguagens, ou novos modelos de execução. Também, podem categorizar-se em dois tipos de sistemas: memória compartilhada e sistemas de memória distribuída.
  • Metodologias de ensino e avaliação

    Metodologias de ensino e avaliação

    A unidade curricular está estruturada em duas componentes principais e que se complementam: aulas de caráter teórico e expositivo e aulas de caráter prático e de experimentação. Nas aulas teóricas são explorados os conteúdos programáticos definidos, sendo os estudantes convidados a participar ativamente na aula. Nas aulas práticas, são propostos trabalhos para aplicação dos conhecimentos adquiridos nas aulas teóricas. Metodologia de avaliação: Avaliação Curricular: Um teste de avaliação global a realizar no final do semestre. Nota Final = Nota do teste de avaliação, com peso de 70% na nota final, e nota mínima de 8 valores. Trabalhos práticos a desenvolver em sala de aula, com um peso de 20% na nota final. Assiduidade e participação nas aulas com uma valorização de 10%. Mínimo de 70% de presenças nas aulas. Avaliação Final: Todos os estudantes terão direito a um exame final
  • Bibliografia principal

    Bibliografia principal

    Czarnul, C. (2018). Parallel Programming for Modern High Performance Computing Systems. Taylor & Francis. ISBN: 9781138305953. Balaji, P. (2016). Programming Models for Parallel Computing. MIT Press. ISBN: 9780262528818. Grama, A. (2003). Introduction to parallel computing. 2. ed. Harlow, England: Addison Wesley. Dongarra, J.J. (2003). Sourcebook of parallel computing. 1. ed. Amsterdam: Morgan Kaufmann. Herlihy, M., Shavit, N. (2008). The art of multiprocessor programming. 1. ed. Burlington: Elsevier Morgan Kaufmann.  
INSCRIÇÃO AVULSO
Lisboa 2020 Portugal 2020 Small financiado eu 2024 prr 2024 republica portuguesa 2024 Logo UE Financed Provedor do Estudante Livro de reclamaões Elogios