160 likes | 172 Views
Learn about Python's parallel programming capabilities, syntax, and libraries like MPI4PY and multiprocessing, enabling efficient code execution across multiple processes. Explore examples and projects incorporating Python parallelism.
E N D
PYTHON ILE PARALEL PROGRAMLAMA • ORÇUN ULUTAŞ
PYTHON Nedir ? • Python yorumlanabilir script tabanlı bir dilidir. • Çoklu platform desteği • Geniş kütüphane desteği • Web ve masaüstü uygulamalar geliştirilebilir
YER ALDIĞI PROJELER • Belender, GIMP, Inkscape • Linux dağıtımları • Django Framework • Apache • Bittorrnet • Google, Yahoo, Facebook • GERN, NASA
PRALLEL LIBRARIES • MPI4PY • pyMPI • Python PROCESS • MULTI PROCESSING • Python Parallel
MPI4PY frommpi4pyimport MPI comm = MPI.COMM_WORLD rank = comm.Get_rank() if rank ==0: data = {'a': 7, 'b': 3.14} comm.send(data, dest=1, tag=11) elif rank ==1: data = comm.recv(source=0, tag=11)
Broadcast frommpi4pyimport MPI comm = MPI.COMM_WORLD rank = comm.Get_rank() if rank ==0: data = {'key1' : [7, 2.72, 2+3j], 'key2' : ( 'abc', 'xyz')} else: data =None data = comm.bcast(data, root=0)
MPI import mpi if mpi.rank == 0: print "size=",mpi.size print "rank=",mpi.rank,"/size=",mpi.size
root@linuxpc:/home/se364/python# mpirun –np 2 python mpi.py mypi = 3.1454 for rank 0 Computed value of pi on 2 processors is 3.1417 Using 120000 samples.
PPROCESS root@linuxpc:/home/se364/python# python process.py 1 3
root@linuxpc:/home/se364/python# python pyocr.py 6.716026 s for traditional, serial computation. 4.041723 s for parallel computation.
MULTI PROCESSING p = multiprocessing.Pool() po = p.map_async(fn, args) result = po.get()
root@linuxpc:/home/se364/python# python mp.py main line ('module name:', '__main__') ('parent process:', 4436) ('process id:', 4815) function f ('module name:', '__main__') ('parent process:', 4815) ('process id:', 4816) ('hello', 'bob')
root@linuxpc:/home/se364/python# python mp2.py 3.1415927 [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
PP root@linuxpc:/home/se364/python# python mp2.py Start at: Mon Dec 16 23:43:35 2013 Start doing something Do something... ... do something else... 1 I'm done 2 I'm done End at: Mon Dec 16 23:43:40 2013