PYTHON

advertisement
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)
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
Download