Proporcionar um aprendizado mais aprofundado sobre desenvolvido de código, focando nos requisitos de desempenho, segurança e confiabilidade.
Técnicas de otimização de código, Aceleração de aplicações, Desenvolvimento de código seguro, Desenvolvimento de código confiável.
Técnicas de otimização de código: Técnicas independentes do processador, técnicas dependentes do processador, detecção de código quente, profiling: objetivos, metodologias e ferramentas. Aceleração de Aplicações: Otimizações Simples; Otimizações na Compilação; Vetorização de Código; Bibliotecas Otimizadas; Otimizações de Acesso a Dados. Desenvolvimento de código seguro: prevenção de buffer overflow, prevenção por formatação de strings, prevenção por overflow de inteiro. Desenvolvimento de código confiável: práticas para desenvolvimento de código confiável.
Livro Texto: Hager, G. and Wellein, G. Introduction to High Performance Computing for Scientists and Engineers. CRC Press, Inc., Boca Raton, FL, USA. 2010. Bryant, R. and O'Hallaron, D. R. Computer Systems: A Programmer's Perspective. Prentice Hall, Third Edition, 2015. Viega, J; McGraw, G. Building Secure Software: How to Avoid Security Problems the Right Way. MAddison-Wesley Professional. 2001