Upload
ion
View
197
Download
0
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
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
Python Syntax
Python Syntax
PRALLEL LIBRARIES
• MPI4PY
• pyMPI
• Python PROCESS
• MULTI PROCESSING
• Python Parallel
MPI4PY
from mpi4py import 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
from mpi4py import 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)
MPIimport 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 0Computed value of pi on 2 processors is 3.1417Using 120000 samples.
PPROCESS
root@linuxpc:/home/se364/python# python process.py 13
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 2013Start doing somethingDo something... ... do something else...1 I'm done2 I'm doneEnd at: Mon Dec 16 23:43:40 2013