Acelerando código científico en Python usando Numba
- Autores
- Milla, Andrés; Rucci, Enzo
- Año de publicación
- 2021
- Idioma
- español castellano
- Tipo de recurso
- documento de conferencia
- Estado
- versión publicada
- Descripción
- En la actualidad, Python es uno de los lenguajes más utilizados en diversas áreas de aplicación. Una de ellas es el ámbito científico, donde resulta habitual la existencia de algoritmos numéricos que requieren un gran costo computacional. Sin embargo, Python presenta limitaciones a la hora de poder paralelizar esta clase de código. Para solucionar esta problemática surge Numba, un compilador JIT que traduce Python en código de máquina optimizado a través de LLVM. Esta herramienta cuenta con primitivas para paralelizar algoritmos, autovectorización mediante instrucciones SIMD, entre otras características. En este estudio, se analizan algunas capacidades y limitaciones de Numba para acelerar algoritmos numéricos, utilizando como caso de estudio N-Body, un problema popular en simulación y con alta demanda computacional. Partiendo desde una implementación base desarrollada en Python con NumPy, se muestra como la integración de diferentes opciones de Numba la mejoran hasta 687x, presentando rendimientos cercanos a una implementación de C+OpenMP en una arquitectura multicore Intel de 56 núcleos.
Red de Universidades con Carreras en Informática - Materia
-
Ciencias Informáticas
Python
Numba
N-body
HPC
multi-threading
Shared memory algorithms - Nivel de accesibilidad
- acceso abierto
- Condiciones de uso
- http://creativecommons.org/licenses/by-nc-sa/4.0/
- Repositorio
- Institución
- Universidad Nacional de La Plata
- OAI Identificador
- oai:sedici.unlp.edu.ar:10915/126012
Ver los metadatos del registro completo
id |
SEDICI_c8c81e76e44799fcfc4072282b9d6a0f |
---|---|
oai_identifier_str |
oai:sedici.unlp.edu.ar:10915/126012 |
network_acronym_str |
SEDICI |
repository_id_str |
1329 |
network_name_str |
SEDICI (UNLP) |
spelling |
Acelerando código científico en Python usando NumbaMilla, AndrésRucci, EnzoCiencias InformáticasPythonNumbaN-bodyHPCmulti-threadingShared memory algorithmsEn la actualidad, Python es uno de los lenguajes más utilizados en diversas áreas de aplicación. Una de ellas es el ámbito científico, donde resulta habitual la existencia de algoritmos numéricos que requieren un gran costo computacional. Sin embargo, Python presenta limitaciones a la hora de poder paralelizar esta clase de código. Para solucionar esta problemática surge Numba, un compilador JIT que traduce Python en código de máquina optimizado a través de LLVM. Esta herramienta cuenta con primitivas para paralelizar algoritmos, autovectorización mediante instrucciones SIMD, entre otras características. En este estudio, se analizan algunas capacidades y limitaciones de Numba para acelerar algoritmos numéricos, utilizando como caso de estudio N-Body, un problema popular en simulación y con alta demanda computacional. Partiendo desde una implementación base desarrollada en Python con NumPy, se muestra como la integración de diferentes opciones de Numba la mejoran hasta 687x, presentando rendimientos cercanos a una implementación de C+OpenMP en una arquitectura multicore Intel de 56 núcleos.Red de Universidades con Carreras en Informática2021-10-05info:eu-repo/semantics/conferenceObjectinfo:eu-repo/semantics/publishedVersionObjeto de conferenciahttp://purl.org/coar/resource_type/c_5794info:ar-repo/semantics/documentoDeConferenciaapplication/pdfhttp://sedici.unlp.edu.ar/handle/10915/126012spainfo:eu-repo/semantics/openAccesshttp://creativecommons.org/licenses/by-nc-sa/4.0/Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)reponame:SEDICI (UNLP)instname:Universidad Nacional de La Platainstacron:UNLP2025-10-15T11:22:16Zoai:sedici.unlp.edu.ar:10915/126012Institucionalhttp://sedici.unlp.edu.ar/Universidad públicaNo correspondehttp://sedici.unlp.edu.ar/oai/snrdalira@sedici.unlp.edu.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:13292025-10-15 11:22:16.889SEDICI (UNLP) - Universidad Nacional de La Platafalse |
dc.title.none.fl_str_mv |
Acelerando código científico en Python usando Numba |
title |
Acelerando código científico en Python usando Numba |
spellingShingle |
Acelerando código científico en Python usando Numba Milla, Andrés Ciencias Informáticas Python Numba N-body HPC multi-threading Shared memory algorithms |
title_short |
Acelerando código científico en Python usando Numba |
title_full |
Acelerando código científico en Python usando Numba |
title_fullStr |
Acelerando código científico en Python usando Numba |
title_full_unstemmed |
Acelerando código científico en Python usando Numba |
title_sort |
Acelerando código científico en Python usando Numba |
dc.creator.none.fl_str_mv |
Milla, Andrés Rucci, Enzo |
author |
Milla, Andrés |
author_facet |
Milla, Andrés Rucci, Enzo |
author_role |
author |
author2 |
Rucci, Enzo |
author2_role |
author |
dc.subject.none.fl_str_mv |
Ciencias Informáticas Python Numba N-body HPC multi-threading Shared memory algorithms |
topic |
Ciencias Informáticas Python Numba N-body HPC multi-threading Shared memory algorithms |
dc.description.none.fl_txt_mv |
En la actualidad, Python es uno de los lenguajes más utilizados en diversas áreas de aplicación. Una de ellas es el ámbito científico, donde resulta habitual la existencia de algoritmos numéricos que requieren un gran costo computacional. Sin embargo, Python presenta limitaciones a la hora de poder paralelizar esta clase de código. Para solucionar esta problemática surge Numba, un compilador JIT que traduce Python en código de máquina optimizado a través de LLVM. Esta herramienta cuenta con primitivas para paralelizar algoritmos, autovectorización mediante instrucciones SIMD, entre otras características. En este estudio, se analizan algunas capacidades y limitaciones de Numba para acelerar algoritmos numéricos, utilizando como caso de estudio N-Body, un problema popular en simulación y con alta demanda computacional. Partiendo desde una implementación base desarrollada en Python con NumPy, se muestra como la integración de diferentes opciones de Numba la mejoran hasta 687x, presentando rendimientos cercanos a una implementación de C+OpenMP en una arquitectura multicore Intel de 56 núcleos. Red de Universidades con Carreras en Informática |
description |
En la actualidad, Python es uno de los lenguajes más utilizados en diversas áreas de aplicación. Una de ellas es el ámbito científico, donde resulta habitual la existencia de algoritmos numéricos que requieren un gran costo computacional. Sin embargo, Python presenta limitaciones a la hora de poder paralelizar esta clase de código. Para solucionar esta problemática surge Numba, un compilador JIT que traduce Python en código de máquina optimizado a través de LLVM. Esta herramienta cuenta con primitivas para paralelizar algoritmos, autovectorización mediante instrucciones SIMD, entre otras características. En este estudio, se analizan algunas capacidades y limitaciones de Numba para acelerar algoritmos numéricos, utilizando como caso de estudio N-Body, un problema popular en simulación y con alta demanda computacional. Partiendo desde una implementación base desarrollada en Python con NumPy, se muestra como la integración de diferentes opciones de Numba la mejoran hasta 687x, presentando rendimientos cercanos a una implementación de C+OpenMP en una arquitectura multicore Intel de 56 núcleos. |
publishDate |
2021 |
dc.date.none.fl_str_mv |
2021-10-05 |
dc.type.none.fl_str_mv |
info:eu-repo/semantics/conferenceObject info:eu-repo/semantics/publishedVersion Objeto de conferencia http://purl.org/coar/resource_type/c_5794 info:ar-repo/semantics/documentoDeConferencia |
format |
conferenceObject |
status_str |
publishedVersion |
dc.identifier.none.fl_str_mv |
http://sedici.unlp.edu.ar/handle/10915/126012 |
url |
http://sedici.unlp.edu.ar/handle/10915/126012 |
dc.language.none.fl_str_mv |
spa |
language |
spa |
dc.rights.none.fl_str_mv |
info:eu-repo/semantics/openAccess http://creativecommons.org/licenses/by-nc-sa/4.0/ Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) |
eu_rights_str_mv |
openAccess |
rights_invalid_str_mv |
http://creativecommons.org/licenses/by-nc-sa/4.0/ Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) |
dc.format.none.fl_str_mv |
application/pdf |
dc.source.none.fl_str_mv |
reponame:SEDICI (UNLP) instname:Universidad Nacional de La Plata instacron:UNLP |
reponame_str |
SEDICI (UNLP) |
collection |
SEDICI (UNLP) |
instname_str |
Universidad Nacional de La Plata |
instacron_str |
UNLP |
institution |
UNLP |
repository.name.fl_str_mv |
SEDICI (UNLP) - Universidad Nacional de La Plata |
repository.mail.fl_str_mv |
alira@sedici.unlp.edu.ar |
_version_ |
1846064278954573824 |
score |
12.891075 |