High Performance Computing
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Informática |
Ocorrência: 2021/2022 - 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 |
30 |
Study Plan |
2 |
- |
5 |
52,5 |
135 |
Docência - Responsabilidades
Língua de trabalho
Portuguese
Objetivos
Acquire basic skills in the field of Operating Systems and multiprogramming.
Understand the concept of parallel and high-performance programming.
Know when to apply this knowledge to bioinformatics problems.
Understand the concept of parallel and high-performance programming and know when to apply this knowledge to bioinformatics problems.
Resultados de aprendizagem e competências
Describes the structure and functioning of an OS, identifying its constituent parts and relating it to the various physical components (hardware) of the computer.
Enunciates and compares different scheduling algorithms, or selection, by analyzing their positive and negative aspects.
Enunciates and compares various topologies of computer networks and correctly describes the functioning of local networks (wired or not) and the Internet and the client/server and peer-to-peer paradigms.
Enunciates the various models of high-performance computing.
Defines a given problem at the level of Bioinformatics, identifying its constraints.
Elaborates and describes the functioning of an OS based on process state diagrams.
Develops and describes the operation of a program that uses multiprogramming techniques such as semaphores.
Develops applications for computers that make use of computer resources efficiently using and mastering multiprogramming and synchronization of threads/processes and parallel programming from a problem.
Solves problems in your area using different approaches to high-performance computing.
Modo de trabalho
Presencial
Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)
It presupposes basic skills acquired in programming and knowledge of the most frequent uses of information technology in Bioinformatics.
Programa
Operating System Basics
- Historical evolution
- Structure and objectives of an OS
- State of the art
- Process and thread management: Competition and pseudoparallelism
- Communication between processes and threads
- Process scheduling
- Types of memory
- Virtual memory, paging and segmentation
- I/O: Internal implementation
- I/O devices, controllers and DMA
- Handling interruptions
Computer Networks Basics
- Computer Networks Concepts
- Models OSI and TCP/IP
- TCP/IP Networks and Ethernet Networks
- Wireless Local Networks
- Virtual Local Networks
- Models of communication and distributing processing
- Distributed programming interfaces for C and Java
Introduction to the concept of parallel processing and distributed computing.
- Client/Server Model versus Peer-to-Peer Model
- Communication by passing messages
- Challenges of parallel computing (shared state, correctness)
- Parallel execution mechanisms
- Serialization and synchronization
- Locks and Semaphores
- Conditional variables
- Parallel computing models and paradigms
- Parallel computing applications
Introduction to high-performance computing
- 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
Andrews Greg; Foundations of multithreading, parallel and distributed programming, Addison-Wesley Longman Publishing Co., 1999. ISBN: 978-0201357523
Bibliografia Complementar
Tanenbaum Andrew; Distributed Systems: Principles and Paradigms, Prentice Hall Press, 2006. ISBN: 978-1543057386
Pacheco Peter; An introduction to parallel programming, Morgan Kaufmann, 2011. ISBN: 9780123742605
Métodos de ensino e atividades de aprendizagem
Theoretical classes with slide shows and debates; presentations of group research papers; Moodle quizzes for learning reinforcement and assessment.
Practical classes with licensed or free software and simulation on laboratory computers.
Proposed research work on the state of the art and parallel programming project with presentations in the student room.
Software
MinGW
VSCode
Python3
PyCharm
Palavras Chave
Technological sciences > Technology > Computer technology > Software technology
Technological sciences > Technology > Computer technology > Systems technology
Tipo de avaliação
Distributed evaluation without final exam
Componentes de Avaliação
Designation |
Peso (%) |
Apresentação/discussão de um trabalho científico |
30,00 |
Teste |
35,00 |
Participação presencial |
35,00 |
Total: |
100,00 |
Componentes de Ocupação
Designation |
Tempo (Horas) |
Apresentação/discussão de um trabalho científico |
4,00 |
Estudo autónomo |
37,00 |
Frequência das aulas |
28,00 |
Trabalho de investigação |
38,00 |
Trabalho laboratorial |
28,00 |
Total: |
135,00 |
Obtenção de frequência
Exceptionally this semester the attendance of students will not be computed.
Fórmula de cálculo da classificação final
Final grade = 0.35xquizzes + 0.35xtest + 0.30xproject