High Performance Computing
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Informática |
Ocorrência: 2018/2019 - 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 |
BINF |
19 |
Study Plan |
2 |
- |
5 |
52,5 |
135 |
Docência - Responsabilidades
Língua de trabalho
Portuguese - Suitable for English-speaking students
Objetivos
The goal of this UC is to acquaint students with the benefits of optimizing applications and their parallelization through open-source tools, practices and hardware suitable for scientific computing, as well as to give them the opportunity to develop and optimize parallel code, either by using the processor cores of a machine or using multiple machines simultaneously, and at the same time taking advantage of the processing capabilities of the current graphics cards.
Resultados de aprendizagem e competências
At the end of this curricular unit the student should be able to:
- Understand operating system operation.
- Understand how communication between computers is processed.
- Understand the concept of parallel and distributed processing as a way to increase performance in data management and analysis.
- Develop algorithms and models that allow solving problems which exploit concurrency, distribution and parallelism.
- Recognize the different hardware architectures that support the operation of these algorithms.
Modo de trabalho
Presencial
Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)
It is desirable that students have a knowledge of basic UNIX commands and UNIX file system navigation. They
can also acquire this knowledge during the first weeks of UC. Presupposes basic skills acquired in programming.Programa
- Operating System Basics (4 weeks)
Weeks 1 and 2: Introduction to operating Systems (OS) and process and thread management
- Historical evolution
- Structure and objectives of an OS
- Current Panorama
- Process and thread management: concurrency and Pseudoparallelism
- Communication between processes and threads
- Process escalation
Weeks 3 and 4: Memory management and input/output management
- Memory types
- Virtual memory, paging, and segmentation
- I/O: Internal Implementation
- I/O devices, controllers, and DMA
- Treatment of interruptions
- Computer Networking Basics (4 weeks)
Weeks 1 and 2: Introduction to computer networks and network equipment and topologies
- Computer Networking Concepts
- OSI and TCP/IP models
- TCP/IP Networks and Ethernet networks
- Network equipment
- Wireless local Area Networks
- Virtual local Networks
Weeks 3 and 4: Communication on computer networks
- Communication models and processing distribution
- Distributed programming Interfaces in C and Java
- Introduction to the concept of parallel processing and distributed computing. Main applications and motivation (6 weeks)
- Client/server versusP eer-to-peer model
- Communication by passing messages
- Parallel computing challenges (shared state, correctness)
- Parallel execution mechanisms
- Serialization and synchronization
- Locks and traffic lights
- Conditional variables
- Models and paradigms of parallel computing
- Parallel Computing Applications
- Introduction to High-performance computing (3 weeks)
- Introduction to CUDA/OpenCL and graphics processors (GPUs)
- Interfaces and development models for GPUs
- Performance factors
Bibliografia Obrigatória
Tanenbaum Andrew; Modern operating systems, Prentice Hall Press, 2015. ISBN: 978-0133591620
Pacheco Peter; An introduction to parallel programming, Morgan Kaufmann, 2011. ISBN: 978-0123742605
Bibliografia Complementar
Andrews Greg; Foundations of parallel and distributed programming, Addison-Wesley Longman Publishing Co., 1999. ISBN: 978-0201357523
van Steen, Maarten and Tanenbaum, Andrew ; Distributed Systems: Principles and Paradigms, Prentice Hall Press, 2006. ISBN: 978-1543057386
Métodos de ensino e atividades de aprendizagem
In-
person classroom lectures
with slideshow and discussion of theoretical topics will occupy 50% of the
discipline's
time. The other 50% will be divided between practical
weekly activities and development and testing of a project which is to be done in groups.Software
Oracle VirtualBox
Palavras Chave
Physical sciences > Computer science > Informatics > Applied informatics
Technological sciences > Technology > Computer technology > Software technology
Technological sciences > Engineering > Biomedical enginnering
Tipo de avaliação
Distributed evaluation without final exam
Componentes de Avaliação
Designation |
Peso (%) |
Teste |
60,00 |
Trabalho laboratorial |
40,00 |
Total: |
100,00 |
Componentes de Ocupação
Designation |
Tempo (Horas) |
Frequência das aulas |
28,00 |
Trabalho laboratorial |
28,00 |
Total: |
56,00 |
Fórmula de cálculo da classificação final
NF(>= 10.0) =[CT]*0.6+[CP]*0.4
[CT]= Theoretical Component (>= 7.0) is the average of two tests OR is the grade of the exam.
[CP]= Practical Component (>= 7.0) = = TP1 * 0.5 + TP2 * 0.5
TP1 and TP2 are the two deliverables of the course's project.