Introdução à Computação Paralela: mudanças entre as edições

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
(pagina completa)
(Redirecionando para Introduction to Parallel Computing)
 
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
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).
#REDIRECT [[Introduction_to_Parallel_Computing]]
 
== 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.
** mapreduce/hadoop
** MPI
** Cuda
** Hybrid technologies (Distributed + Cuda)
** Languages designed for concurrency: [http://golang.org Google Go], Erlang, etc.
** Programming for the Playstation 3 parallel architecture[http://groups.csail.mit.edu/cag/ps3/index.shtml]
* 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[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]]

Edição atual tal como às 11h44min de 14 de agosto de 2012