Introdução à Computação Paralela: mudanças entre as edições
De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
m (→Project 1) |
(pagina completa) |
||
Linha 5: | Linha 5: | ||
* Evaluation criteria: The class will consist on 1 quizz at the end of the term (60%), | * Evaluation criteria: The class will consist on 1 quizz at the end of the term (60%), | ||
plus practical projects (40%). | plus practical projects (40%). | ||
=== Pre-requisites === | |||
* Linux (will be reviewed as needed) | |||
* C/C++ (will be reviewed) | |||
== Approximate Content == | |||
The course focuses on software techniques for parallel computing. | |||
We are aiming at a comprehensive treatment on different types of practical parallel programming techniques | |||
* process-oriented parallel programming | |||
* thread programming/thread safety | |||
* single-core vector instructions | |||
* multi-processor and multi-core programming | |||
* mapreduce/hadoop | |||
* MPI | |||
* Cuda | |||
== Homework == | == Homework == | ||
Linha 25: | Linha 42: | ||
research and present a parallel implementation of some aspect of it. | research and present a parallel implementation of some aspect of it. | ||
* This will be evaluated through actual code and acompanying monograph. | * This will be evaluated through actual code and acompanying monograph. | ||
== Main Resources == | |||
* Textbooks | |||
** 1st part of the course: "Is Parallel Programming Hard, and, if so, what can you do about it?" - Paul E. McKenney / IBM (editor). | |||
** For MPI: "An Introduction to Parallel Programming" , by Peter Pacheco[http://books.google.com.br/books?id=SEmfraJjvfwC&printsec=frontcover&hl=pt-BR&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false] | |||
** For Cuda: Programming Massively Parallel Processors: A Hands-On Approach[http://books.google.com.br/books?id=qW1mncii_6EC&printsec=frontcover&hl=pt-BR#v=onepage&q&f=false] | |||
** General textbook: A. Grama, A. Gupta, G. Karypis, V. Kumar, Introduction to Parallel Computing, Second Edition, Addison-Wesley, 2003. | |||
** Algorithms-oriented textbook: Algorithms: sequential, parallel, and | |||
distributed, Kenneth A. Berman, Jerome L. Paul | |||
*** For more theoretical info, see the chapter on parallel algorits in Cormen's classical algorithms book. | |||
* Mapreduce, GFS, and Bigtable: | |||
** Papers from Google | |||
** http://code.google.com/edu/parallel/mapreduce-tutorial.html | |||
** Wikipedia | |||
** Hadoop documentation | |||
* Presentations from IBM and Intel: Cilk, etc. | |||
** http://software.intel.com/en-us/videos/channel/parallel-programming | |||
* Wikipedia pages | |||
** http://en.wikipedia.org/wiki/Vectorization_%28parallel_computing%29 | |||
** http://en.wikipedia.org/wiki/Mapreduce | |||
** http://en.wikipedia.org/wiki/Hadoop | |||
* Rice lecture notes on Parallel Computing [http://www.clear.rice.edu/comp422/lecture-notes/index.html] | |||
* Other Resources | |||
** http://www-users.cs.umn.edu/~karypis/parbook/ | |||
** http://www.cse.iitd.ernet.in/~subodh/courses/CSL860/ | |||
=== Lectures === | |||
==== Partial listing & Tentative Outline ==== | |||
# Overview of parallel computing: https://computing.llnl.gov/tutorials/parallel_comp/ | |||
# Review of Linux: | |||
** See the book Running Linux http://wiki.nosdigitais.teia.org.br/Literatura_recomendada_pela_equipe | |||
# Review of C/C++ | |||
# Fundamental programming techniques: processes and threads | |||
** Read The Unix Programming Environment for some classic multi-process programming[http://wiki.nosdigitais.teia.org.br/Literatura_recomendada_pela_equipe] | |||
# Mapreduce/Hadoop | |||
# MPI | |||
# Cuda | |||
[[Category:Lab Macambira]] [[Category:IPRJ]] | [[Category:Lab Macambira]] [[Category:IPRJ]] |
Edição das 11h36min de 14 de agosto de 2012
Esta é a pagina principal de um curso de programacao paralela ministrado em 2012 no IPRJ/UERJ, de utilidade geral para a formacao de programadores de nivel avancado na area cientifica e de processamento multimidia (audio-visual).
General Info
- Meeting times: Tues 12:30pm-2pm, Thursdays 2:20pm - 4pm
- Evaluation criteria: The class will consist on 1 quizz at the end of the term (60%),
plus practical projects (40%).
Pre-requisites
- Linux (will be reviewed as needed)
- C/C++ (will be reviewed)
Approximate Content
The course focuses on software techniques for parallel computing. We are aiming at a comprehensive treatment on different types of practical parallel programming techniques
- process-oriented parallel programming
- thread programming/thread safety
- single-core vector instructions
- multi-processor and multi-core programming
- mapreduce/hadoop
- MPI
- Cuda
Homework
Project 1
- The class will be divided into interest groups
- The interest groups will each pick one of the following technologies or else propose another one of their liking.
- The project will consist in a series of presentations by the group members
individually.
- Grade will be asigned to each presentation individually
Project 1
- This project will consist on a practical programming problem from the
student's research. The student is required to describe a problem from his research and present a parallel implementation of some aspect of it.
- This will be evaluated through actual code and acompanying monograph.
Main Resources
- Textbooks
- 1st part of the course: "Is Parallel Programming Hard, and, if so, what can you do about it?" - Paul E. McKenney / IBM (editor).
- For MPI: "An Introduction to Parallel Programming" , by Peter Pacheco[2]
- For Cuda: Programming Massively Parallel Processors: A Hands-On Approach[3]
- General textbook: A. Grama, A. Gupta, G. Karypis, V. Kumar, Introduction to Parallel Computing, Second Edition, Addison-Wesley, 2003.
- Algorithms-oriented textbook: Algorithms: sequential, parallel, and
distributed, Kenneth A. Berman, Jerome L. Paul
- For more theoretical info, see the chapter on parallel algorits in Cormen's classical algorithms book.
- Mapreduce, GFS, and Bigtable:
- Papers from Google
- http://code.google.com/edu/parallel/mapreduce-tutorial.html
- Wikipedia
- Hadoop documentation
- Presentations from IBM and Intel: Cilk, etc.
- Wikipedia pages
- Rice lecture notes on Parallel Computing [4]
- Other Resources
Lectures
Partial listing & Tentative Outline
- Overview of parallel computing: https://computing.llnl.gov/tutorials/parallel_comp/
- Review of Linux:
- See the book Running Linux http://wiki.nosdigitais.teia.org.br/Literatura_recomendada_pela_equipe
- Review of C/C++
- Fundamental programming techniques: processes and threads
- Read The Unix Programming Environment for some classic multi-process programming[5]
- Mapreduce/Hadoop
- MPI
- Cuda