Desenvolvedor(a) HPC | C/C++ | CUDA | MPI/OpenMP

Há 2 horas

Brasília, Federal District, Brasil First Decision Tempo integral


Descrição da Vaga
Buscamos um(a) profissional com sólida experiência em HPC (High Performance Computing) para atuar no desenvolvimento, análise e otimização de aplicações de alta demanda computacional.
Este(a) profissional terá atuação direta com programação paralela, análise de performance e otimização de aplicações em arquiteturas CPU e GPU, utilizando tecnologias como C/C++, CUDA, MPI e OpenMP.
É essencial possuir perfil analítico e investigativo, com capacidade para compreender o comportamento de aplicações, identificar gargalos de desempenho e implementare melhorias que proporcionem melhor aproveitamento dos recursos computacionais disponíveis. A posição envolve atuação com ambientes de alto desempenho, processamento paralelo e arquiteturas heterogêneas, podendo incluir clusters, supercomputadores e aplicações científicas ou computacionalmente intensivas. Atividades Desenvolver, manter e otimizar aplicações de alto desempenho em C/C%; Realizar análise de desempenho de aplicações, identificando gargalos computacionais e oportunidades de otimização. Implementar soluções utilizando programação paralela e distribuída. Desenvolver e otimizar aplicações utilizando MPI e OpenMP. A atuar com aceleração e processamento paralelo em GPU utilizando CUDA. Avaliar desempenho e escalabilidade de aplicações em arquiteturas CPU e GPU. Realizar profiling, benchmarking e análise comparativa de performance. Avaliar utilização de processamento, memória, comunicação entre processos e operações de entrada e saída. Propor e implementar estratégias de paralelização e otimização de código. A atuar em ambientes Linux, clusters e/ou infraestrutura de supercomputação. Trabalhar com ambientes computacionais heterogêneos, incluindo arquiteturas multicore, many-core e GPU. Executar testes de desempenho antes e após as otimizações implementadas. Documentar análises, experimentos, alterações realizadas e resultados obtidos. Interagir com equipes técnicas e especialistas para apoiar a evolução e otimização das aplicações. Requisitos Obrigatórios Superior completo em Ciência da Computação, Sistemas de Informação, Engenharia da Computação, Física, Matemática Computacional ou áreas correlativas. Experiência com Computação de Alto Desempenho (HPC). Experiência com desenvolvimento em C e/ou C++. Conhecimento sólido em programação paralela. Experiência prática com MPI. Experiência prática com OpenMP. Experiência com CUDA e desenvolvimento ou otimização de aplicações para GPU. Experiência com análise e otimização de performance. Conhecimento em ambiente Linux. Vivência com clusters, supercomputadores ou outros ambientes computacionais de alto desempenho. Conhecimento de processamento paralelo em arquiteturas multicore, many-core e/ou GPU. Capacidade de identificar gargalos de processamento e propor melhorias de desempenho. Diferenciais Conhecimento em OpenACC. Experiência com Fortran. Conhecimento em MPI I/O. Experiência com Slurm e/ou Lustre. Conhecimento em Shell Script e/ou Python. Experiência com Intel Parallel Studio; Conhecimento em compiladores GNU e Intel. Experiência com arquiteturas Intel Xeon e GPUs NVIDIA voltadas a HPC. Conhecimento em vetorização, otimização de memória e sistemas de arquivos paralelos. Desenvolvimento em ambientes heterogêneos CPU/GPU Experiência com aplicações científicas, modelagem computacional ou processamento de alto volume. Pós-graduação, mestrado ou especialização em áreas relacionadas a Computação de Alto Desempenho, Computação Científica ou Modelagem Computacional. Superior completo em Ciência da Computação, Sistemas de Informação, Engenharia da Computação, Física, Matemática Computacional ou áreas correlativas., Experiência com Computação de Alto Desempenho (HPC)., Experiência com desenvolvimento em C e/ou C++., Conhecimento sólido em programação paralela., Experiência prática com MPI., Experiência prática com OpenMP., Experiência com CUDA e desenvolvimento ou otimização de aplicações para GPU., Experiência com análise e otimização de performance., Conhecimento em ambiente Linux., Vivência com clusters, supercomputadores ou outros ambientes computacionais de alto desempenho., Conhecimento de processamento paralelo em arquiteturas multicore, many-core e/ou GPU., Capacidade de identificar gargalos de processamento e propor melhorias de desempenho.