1 / 15

V z poredno procesiranje s knji ž nico PyOPUS

V z poredno procesiranje s knji ž nico PyOPUS. Arpad Bűrmen FE Uni-Lj. 25 računalnikov +1 nadzorni. Specifikacije. Delavec i5 750 @ 2.66GHz 4 jedra, 1 nit/jedro = 4 procesi/računalnik Gbit Ethernet, stikalo, 48vrat

alden-wynn
Download Presentation

V z poredno procesiranje s knji ž nico PyOPUS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Vzporednoprocesiranje s knjižnicoPyOPUS Arpad Bűrmen FE Uni-Lj

  2. 25 računalnikov • +1 nadzorni

  3. Specifikacije • Delavec i5 750 @ 2.66GHz4 jedra, 1 nit/jedro= 4 procesi/računalnik • Gbit Ethernet, stikalo, 48vrat • + 1 nadzorni računalnik = delavecdodaten mrežni vmesnik -> internetstrežnik za mrežni disk (NFS) • 25+1 kos, vsak cca 300W = 7.8kW

  4. Programska oprema • OS = Debian Linux (AMD64) • Samodeja postavitev delavcev (15 min) – FAI konf. strežnik = glavni računalnik • OS (jedro+programi) - lokalni pogon • Domače mape uporabnikov – mrežni pogon • Pomožne datoteke (hitrost!) – lokalni pogon • Programiranje: C/C++ ali Python • Vzporedno procesiranje: knjižnica PVM ali MPI

  5. PyOPUS simulator evaluator optimizer • Uvoz in izvoz rezultatov • Vmesniki • SPICE OPUS • HSPICE • SPECTRE • ADS • Upravljanje simulatorjev • Izračun lastnosti vezja • Izračun KF wxmplplot visual parallel • Vmesnik do Matplotlib-a • Prikazovanje grafov v oknih (wxPython) • Vtičnik za izris rezultatov med optimizacijo • Vmesnik do PVM in MPI • Razredi za opis na sporočilih temelječih vzporednih postopkov podanih v master-slave obliki • Razredi za opis postopkov podanih v paketni (batch) obliki

  6. PVM • Knjižnica za vzporedno procesiranjezagon, komunikacija, nadzor • Od leta 1989 • Zadnja stabilna različica 3.4.6 (2009) • “samo” za sisteme UNIX (t.j. tudi Linux) • Dolgo veljala de de-facto standard • http://www.csm.ornl.gov/pvm/

  7. MPI • Standard za programski vmesnik • Definira ga MPI forum http://www.mpi-forum.org/ • Zadnja različica: 3.0 (september 2012)852 strani • Izvedba v obliki knjižnice (brezplačna) • MPICH ... http://www.mpich.org/ izpeljanke: IBM, Cray, Microsoft, Intel, Myricom, ... • OpenMPI ... http://www.open-mpi.org/prispevki: ARM, IBM, Cray, Cisco, NVIDIA, Myricom, Oracle, ... • Mi uporabljamo OpenMPI.

  8. MPI + Python Tolmač za Python • https://bitbucket.org/mpi4py/ Knjižnica MPI (OpenMPI) Vtičnik MPI4Py

  9. MPI - programiranje from mpi4py import MPI comm=MPI.COMM_WORLD print( "Hello! I'm rank %d from %d running in total..." % (comm.rank, comm.size) ) comm.Barrier() # wait for everybody to synchronize

  10. Zagon Zagon brez MPI (1 proces) python hello.py • Hello! I'm rank 0 from 1 running in total... Zagon v sistemu MPI (4 procesi) mpirun –n 4 python hello.py • Hello! I'm rank 0 from 4 running in total... • Hello! I'm rank 1 from 4 running in total... • Hello! I'm rank 2 from 4 running in total... • Hello! I'm rank 3 from 4 running in total...

  11. MPI - komunikacija Funkciji send in recvdelata z Pythonovskimiobjekti. Uporabljata modul pickle/cPickle za pakiranje v binarnenize, ki se natopošiljajo med računalniki. • from mpi4py import MPI • comm = MPI.COMM_WORLD • rank = comm.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)

  12. PyOPUS in vzporedni postopki simulator evaluator optimizer • Uvoz in izvoz rezultatov • Vmesniki • SPICE OPUS • HSPICE • SPECTRE • ADS • Upravljanje simulatorjev • Izračun lastnosti vezja • Izračun KF wxmplplot visual parallel • Vmesnik do Matplotlib-a • Prikazovanje grafov v oknih (wxPython) • Vtičnik za izris rezultatov med optimizacijo • Vmesnik do PVM in MPI • Razredi za opis na sporočilih temelječih vzporednih postopkov podanih v master-slave obliki • Razredi za opis postopkov podanih v paketni (batch) obliki

  13. Zakasnitev pri prenosu (1B)

  14. Zakasnitev pri prenosu (10MB)

  15. Primer: vzporedna globalna optimizacija (PSADE) • AlgoritemOlenšek J., Tuma T., Puhan J., Buermen A.: A new asynchronous parallel global optimization meth od based on simulated annealing and differential evolution. Applied Soft Computing Journal, vol. 11, pp. 1481-1489, 2011. • Izvedba s pomočjo modulapyopus.parallel.evtdrvms • 600 vrstic kode v Pythonu • Lahko uporablja samo en proces, ali več procesov -> pospešitev • Podpora za MPI in PVM

More Related