Archive for Octubre, 2008

El futur dels llenguatges dinàmics i del paral·lelisme…

He fet una ullada a aquest article “Dynamic programming futuresJavaScript, Perl, PHP, Python, Ruby, and other dynamic languages are remaking the Web and bringing programming to the masses. Where should developers place their bets? i m’ha resultat interessant. Al final deixa caure la importància de la seva adaptació als multi-core i per extensió al paral·lelisme. No ho diu explícitament però fa referència la llibreria “multiprocessing” que ja ve de sèrie des de Python 2.6 (té la mateixa api que la de threads, però corre en diferents processos que poden estar en diferents cores…).

De fet, fa uns dies vaig cercar què hi havia sobre paral·lelisme a Python:

Fent una ullada a la documentació oficial, apareixen moltes opcions, i em vaig fixar en 3: multiprocessing, parallelpython i pythonBSP.

Sobre les dos primeres aquest article en parla amb exemples:
Both the processing package and Parallel Python tackle the issues of multi-processing in Python head on, from different directions. Where the processing [multiprocessing] package tries to fit itself into existing threading designs, pp uses a more explicit distributed job model. Each approach has benefits and drawbacks, and neither is suitable for every situation. Both, however, save you a lot of time over the alternative of writing everything yourself with low-level libraries. What an age to be alive!
La de “parallelpython” és molt explícita pel que fa a “repartir feines entre màquines”, i la la de “pythonBSP” aplica un paradigma diferent:
Message passing and multithreading aren’t the only models developed for parallel computing.
Synchronization is particularly unpleasant to deal with explicitly because bugs in synchronization handling are very hard to analyze.
In the rest of this article, I’ll try to convince you that a level-two model [Explicit: parallelism,comm; Implicit: sync] is much easier to work with, especially when combined with a high-level programming language such as Python.
BSP computations =  sequence of supersteps
superstep = computation(independent) + communication + barrier sync
combining comm/sync = impossibility of deadlocks (BSP prefered versus MPI!!!)

Finalment, veig que l’autor de “Programming Patterns” té una presentació sobre “Parallel Programming Patterns” que comença a “sistematitzar” aquest tipus de programació…

Posted in Sense especificar      

By | Guaita

Feu un comentari

Hello world!

Welcome to This is your first post. Edit or delete it and start blogging!

Comments (1)