Python Brasil 2025

CPython, Python e sua aplicação de alto desempenho
2025-10-25 , Intermediate

A linguagem de programação C/C++ permite usar diversas ferramentas de processamento paralelo para aplicações de alto desempenho (OpenMP, CUDA). Como usar CPython para aplicar estes recursos em Python.


Aplicações de alto desempenho são geralmente implementadas em C/C++ permitindo utilizar recursos para memória compartilhada ou memória distribuída, como OpenMP e MPI, ou programação para GPGPUSs (GPUs de propósito geral) utilizando CUDA ou OpenCL. Muitos pacotes em Python fornecem acesso a estes recursos de forma rápida e eficiente. Mas como criar nossas próprias bibliotecas de funções C/C++ de forma a podermos utilizar estes recursos em Python? Nesta palestra apresentaremos, de forma resumida e com base em exemplos, como criar bibliotecas de funções simples e como utilizar CPython para acessar estes recursos. Exemplos baseados na implementação do problema de multiplicação de matrizes serão apresentados para mostrar estes recursos e testes de desempenho rápidos serão utilizados para comparar o desempenho com os recursos disponibilizados na biblioteca NumPy.


What prior knowledge is necessary to be able to follow your activity well?:

Desenvolvimento em Python usando NumPy. Como tratar matrizes e vetores, o uso de operadores NumPy para evitar o uso de laços for.
Programação básica em C/C++: Reutilização de código com biblioteca de funções.
Como avaliar o desempenho de aplicações: timeit em Python

What can participants expect to learn from your activity?:

Como aprimorar a implementação de algoritmos complexos em C/C++ e explorar estes recursos em python de forma a facilitar o desenvolvimento de aplicações de alto desempenho na resolução de problemas de grande porte

Choose one or more areas where this proposal fits.:

Ciência e Análise de Dados, Computação Científica

Doutorado em Modelagem Computacional - Laboratório Nacional de Computação Científica (2008). Atualmente é professor titular da Universidade Estadual de Santa Cruz.