Parallel and Distributed Computing
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Informática |
Ocorrência: 2022/2023 - 2S
Ciclos de Estudo/Cursos
Sigla |
Nº de Estudantes |
Plano de Estudos |
Anos Curriculares |
Créditos UCN |
Créditos ECTS |
Horas de Contacto |
Horas Totais |
INF |
116 |
Plano de Estudos |
2 |
- |
6 |
52,5 |
162 |
Docência - Responsabilidades
Língua de trabalho
Portuguese - Suitable for English-speaking students
Obs.: Há versões em inglês do material de estudo e a bibliografia principal é em língua inglesa.
Objetivos
Students should be able to know and understand the techniques and paradigms of parallel and distributed computing in order to design algorithms and multithreaded applications that involve communication between computers.
Resultados de aprendizagem e competências
Student states and compares different topologies of computer networks and correctly describes the operation of local networks (wired or not) and the Internet and the client/server and peer-to-peer paradigms.
Student states the different models of parallel computing and distributed computing.
Programs and describes the operation of a program that uses multiprogramming techniques such as semaphores.
Programs applications for computers that make efficient use of computer resources using and mastering multiprogramming techniques and thread/process synchronization and parallel programming from a problem.
Solves problems in her area using different approaches to parallel and distributed computing.
Modo de trabalho
Presencial
Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)
It is desirable that students have prior knowledge of programming languages and environments and operating systems including scheduling algorithms. Notions of REST programming for the web must be acquired if not existing.
Programa
Lectures (T/P Classes)
1. Introduction to parallel computing
2. Architectures of parallel systems
3. Programming with parallel computing libraries
4. Introduction to distributed systems
5. Parallel Computing vs Distributed Computing
6. Models and architectures of distributed systems
7. Networking and TCP/IP protocol
8. Transactions, failures and security
9. Web Services and Cloud Computing
Laboratories
0. Important concepts of python language
1. Vectors and Arrays in Python
2. Introduction to Parallelism in Python
3. Using Threads
4. Use of Processes
5. Pipelining
6. Pthreads and OpenMP
7. Applications with Sockets
8. Applications with Sockets (continued)
9. Webservices
10. Webservices (continued)
Bibliografia Obrigatória
Tanenbaum Andrew; Distributed Systems: Principles and Paradigms, 2017
T. Rauber, G. Runger; Parallel Programming for Multicore and Cluster Systems, 2013. ISBN: 978-3-642-37801-0
Bibliografia Complementar
Kai Hwang, Geoffrey C. Fox, Jack J. Dongarra; Distributed and Cloud Computing - From Parallel Processing to the Internet of Things, 2012
C. Lin, L. Snyder; Principles of Parallel Programming, 2009. ISBN: 978-0-321-48790-2
Observações Bibliográficas
Supporting materials may be found on Moodle.
Métodos de ensino e atividades de aprendizagem
TP Classes: TP classes will resort to the demonstration and resolution of potentially problematic situations using computational means, with a view to introducing the different techniques of parallel and distributed programming that make up the syllabus of the UC.
Laboratories: solving exercises in a more autonomous way, in a development environment.
Preparation of practical work throughout the semester, certifying the various techniques taught.
Software
VSCode
MinGW
PyCharm
Python3
Palavras Chave
Physical sciences > Computer science > Programming > Software engineering
Technological sciences > Technology > Computer technology > Software technology
Tipo de avaliação
Distributed evaluation without final exam
Componentes de Avaliação
Designation |
Peso (%) |
Participação presencial |
10,00 |
Teste |
75,00 |
Trabalho laboratorial |
15,00 |
Total: |
100,00 |
Componentes de Ocupação
Designation |
Tempo (Horas) |
Frequência das aulas |
52,50 |
Estudo autónomo |
46,00 |
Trabalho escrito |
|
Trabalho laboratorial |
46,00 |
Total: |
144,50 |
Obtenção de frequência
The student may opt for a continuous assessment or an exam.
IMPORTANT NOTES:
1.Obtaining a minimum grade in the mini-tests (7.5 values) is a requirement to pass continuous evaluation.
2. Obtaining a minimum score on the test (8.5 values) is a requirement to pass continuous evaluation.
3. The approval in the examination depends on a score equal to or higher than 9.5 values, valid 100% of the evaluation.
4. Regardless of whether the student chooses the assessment by exam or continuous evaluation, it is ABSOLUTELY MANDATORY to register in the evaluation tests WITHIN THE ESTABLISHED DEADLINES. Registration takes place through the Moodle platform. Students who are not enrolled within the previously established deadlines will not be allowed to do the test/exam.
Fórmula de cálculo da classificação final
- (AAM) Self-assessments (questionnaires) in Moodle.
- (MTPL) Mini-tests on the practical component: 03. Minimum score: 7.5-values
- (MTTP) Mini-tests on the theoretical component: 03. Minimum average score: 7.5 values
- (TES) Test: 01 at the end of the semester. Minimum score: 8.5 values.
- (EXA) Final examination to bridge the failure in continuous evaluation.
Continuous evaluation (CA): 60% TES + 15% MTPL+ 15% MTTP + 10% AAM
Evaluation by final exam (EF): 100% EXA
Approval: AC >= 9.5 or EF >= 9.5
Note: The mini-tests PL and TP will be in the same laboratory class.