La creixent popularitat de Python en la informàtica científica i d’alt rendiment

Python és un experiment sobre quanta llibertat necessiten els programadors. Massa llibertat i ningú pot llegir el codi d’un altre; massa poc i es posa en perill l’expressivitat.

– Guido van Rossum, creador del llenguatge de programació Python

L’any passat, Python va ser nomenat el llenguatge de programació més popular. La creixent popularitat del llenguatge es pot atribuir a l’augment de la ciència de dades i l’ecosistema d’aprenentatge automàtic i les biblioteques de programari corresponents com Pandas, Tensorflow, PyTorch i NumPy, entre d’altres. El fet que sigui tan fàcil d’aprendre ajuda a Python a guanyar el favor entre la comunitat de programadors.

Dit això, Python és molt lent en comparació amb altres llenguatges compilats com Rust o Fortran. Això es deu principalment al fet que Python és un llenguatge interpretat, la qual cosa significa que es genera una sobrecàrrega important per dur a terme cada instrucció. Això frena els càlculs massius. Això fa que sigui inadequat per a contextos científics i d’alta informàtica. Tanmateix, en aquest article, explorarem per què això no és necessàriament una veritat de l’evangeli i com es prefereix Python per a les tasques esmentades.

Python com a capa d’enganxament

En el cas de llenguatges com C, C++ o Fortran, el codi font es compila primer en un format executable abans que es pugui executar. Tanmateix, amb Python, no hi ha cap pas de compilació i el codi s’interpreta al vol, línia per línia. El principal avantatge d’un llenguatge interpretat com Python és que és flexible, no cal declarar les variables per endavant i el programa es pot adaptar sobre la marxa.

No obstant això, el principal desavantatge, com s’ha comentat anteriorment, és l’execució més lenta de programes numèricament intensius, cosa que els fa inadequats per a la informàtica científica. Tanmateix, les subrutines que requereixen temps intens es poden compilar en C o Fortran i després importar-les a Python d’una manera que sembla que es comporten com les funcions normals de Python.

Moltes rutines matemàtiques i numèriques comunes estan precompilades per executar-se molt ràpid. S’agrupen en dos paquets que es poden afegir a Python de manera transparent. Python s’utilitza sovint com a capa d’enganxament que es basa en paquets optimitzats compilats que encadena per realitzar els càlculs de destinació. El paquet més popular en informàtica científica és NumPy (Numerical Python). El paquet NumPy ofereix rutines bàsiques per manipular matrius i matrius grans de dades numèriques. Aquesta manipulació no es fa en Python senzill; en canvi, tot darrere de les escenes, l’aixecament pesat es fa mitjançant rutines compilades en C/C++ o Fortran.

A més, el paquet SciPy (Scientific Python) amplia la funcionalitat de NumPy amb la seva col·lecció d’algorismes com la minimització, la transformació de Fourier, la regressió i altres tècniques de matemàtiques aplicades. La popularitat d’ambdós paquets està augmentant a la comunitat científica. També han fet que Python sigui comparable, si no millor, que els paquets comercials cars com MatLab.

Crèdit: The COOP Blog

Python per a HPC

Un equip d’investigadors de l’Imperial College de Londres, va demostrar la viabilitat de Python com a plataforma per a aplicacions HPC productives, portàtils i de rendiment a escala peta. Freddie Witherden, un dels membres d’aquest equip, va dir que Python era un “llenguatge de primera classe” per a HPC. Va donar tres raons per això: un major èmfasi en el rendiment de l’aplicació i la productivitat dels desenvolupadors i dels usuaris amb codis HPC; la tendència creixent de les aplicacions HPC a confiar en API de tercers; l’augment de l’ús de la generació de codi per abordar els colls d’ampolla de rendiment. Va dir que Python podria abordar aquests factors i posa els nivells més alts de rendiment al maquinari HPC a l’accés dels investigadors. L’equip va rebre la nominació al prestigiós premi ACM Gordon Bell.

opinió experta

“Això està lluny de la veritat, i la resposta depèn de la capa de la pila de programari a què es refereix. En particular, l’elecció del llenguatge de programació per als usuaris finals és molt diferent de la dels que implementen els sistemes, biblioteques, compiladors i temps d’execució subjacents. Per al primer, Python és popular, ja que la majoria dels models de programació d’usuari final es basen en Python (per exemple, TensorFlow, PyTorch), els paquets Python per a informàtica científica i d’alt rendiment estan àmpliament disponibles i Python ofereix una alta productivitat del programador. Tanmateix, per a les implementacions del model de programació subjacent, biblioteques, compiladors i temps d’execució, C, C++ i CUDA segueixen sent els llenguatges preferits ja que ofereixen rendiment. En última instància, tots els paquets Python potents es mapegen internament a biblioteques escrites en C, C++ o CUDA. L’alt rendiment es deriva en última instància d’aquestes biblioteques optimitzades o, en alguns casos, de compiladors i generadors de codi just a temps. Per tant, C i C++ segueixen sent els llenguatges preferits per implementar les biblioteques, compiladors, generadors de codi o temps d’execució subjacents”, va dir Uday Bondhugula, fundador i CTO de Polymage Labs.

“Python és, de fet, el llenguatge de referència en informàtica científica i d’alt rendiment. Com que és senzill, escalable, versàtil, eficient i independent de la plataforma, està guanyant popularitat entre programadors, científics de dades, enginyers de ML i analistes de dades. Inclou centenars de biblioteques i marcs disponibles públicament i paquets rics en funcions per a la manipulació de dades (Pandas) i l’aprenentatge automàtic (scikit-learn). A més, Python s’ha utilitzat en diversos marcs d’IA empresarials (TensorFlow, PyTorch, etc.). A causa de l’abundància d’eines de codi obert, sembla que el món acadèmic s’està allunyant de R (i de plataformes similars), cosa que permet que Python sorgeixi com l’idioma preferit entre els entusiastes. Python també s’adapta a les necessitats empresarials mitjançant paquets com Dask, PySpark, Koalas i altres”, va dir Pavan Nanjundaiah, director sènior de Tredence Studio.

Leave a Comment

Your email address will not be published. Required fields are marked *