1 / 43

Paralel Hesaplama

Paralel Hesaplama. Onur Temizsoylu Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi ODT Ü , Ankara. İçerik. Neden paralel hesaplama? Terminoloji Paralel hesaplamanın tarihi Teori: Hızlanma, Amdahl Yasası Sınıflandırma Yönetim Modelleri Programlama Modelleri

shakti
Download Presentation

Paralel Hesaplama

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. Paralel Hesaplama Onur Temizsoylu Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi ODTÜ, Ankara

  2. İçerik • Neden paralel hesaplama? • Terminoloji • Paralel hesaplamanın tarihi • Teori: • Hızlanma, Amdahl Yasası • Sınıflandırma • Yönetim Modelleri • Programlama Modelleri • Paralel Donanım Mimarileri • Paralel Uygulamalar • Örnek Problemler Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  3. Neden Paralel Hesaplama • Hesaplama ihtiyaçları, gün geçtikçe artmaktadır. Daha yüksek frekanslı sensörler, görselleştirme kalitesinin artması, dağıtık veri tabanları buna birer örnektir. • Diğer taraftan işlemci teknolojisi fiziksel limitlerine (termodinamik, ışık hızı, CMOS transistörler) yaklaşmaktadır. • Paralel hesaplama, daha hızlı sonuç almak için bir uygulamaya ait program parçalarının birden fazla işlemcide aynı anda çalıştırılmasıdır. • Ağ teknolojilerindeki hızlı gelişmeler paralel hesaplama için kolay edinilebilir ve ulaşılabilir donanımlara izin vermektedir. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  4. Moore Yasası (?) • Intel’in kurucularından Gordon E. Moore tarafından ortaya atılmıştır. • “Mikroişlemciler içindeki transistör sayısı her iki yılda bir iki katına çıkacaktır.” • Buna bağlı olarak işlemci hızlarının da iki katına çıkması beklenmektedir. • Ucuz CMOS transistörlerle üretim, 2008 yılı içinde 45nm üretim teknolojisi bile kullanılsa da hız artışının sonu gelmektedir. • Intel, çok çekirdekli işlemciler ile Moore yasasını geçerli kılmaya çalışmaktadır. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  5. Butters Yasası • Ağ dünyasında ise Gerald Butters her dokuz ayda tek bir fiber kablodan geçebilecek veri miktarının iki katına çıktığını öne sürmüştür. • Özellikle WDM teknolojisi ile optik kablolar üzerinden transfer edilebilecek veri miktarı artmaktadır. • İşlemcilerden farklı olarak farklı dalga boylarında çalışan lazer ışığı kullanıcı farkında olmadan birleştirilmektedir. • Lokal ve geniş ağlardaki hızlı teknoloji değişimi ile paralel hesaplama için küme bilgisayarlar, grid hesaplama gibi yöntem ve mimariler ortaya çıkmıştır. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  6. Terminoloji • Süreç (“Process”) • İş Parçacığı (“Thread”) • Görev (“Task”) • Hızlanma (“Speedup”) • Ölçeklenebilirlik (“Scalability”) • Verimlilik • Senkronizasyon (“Synchronization”) • Paralel Ek Yükü (“Parallel Overhead”) • Süperbilgisayar Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  7. Paralel Hesaplamanın Tarihi • İlk paralel hesaplamanın M.Ö. tabletlerde yapıldığı varsayılmaktadır  Donanım İşletim Sistemi / Derleyici Uygulamalar Donanım İşletim Sistemi / Derleyici Uygulamalar Seri Çağı Paralel Çağı 1940 50 60 70 80 90 2000 2030 Ticarileştirme Araştırma Son Ürün Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  8. Paralel Hesaplamanın Tarihi Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  9. Paralel Hesaplamanın Tarihi • TOP500 Listesine göre son 15 sene içinde süperbilgisayar sistemlerinde mimari değişimi Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  10. Paralelleştirme • Bir işin paralelleştirilmesinde programın toplam çalışma zamanını azaltmak amaçlanır. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  11. İşlemci Zamanı Haberleşme Ek Yükü 4 işlemci 8 işlemci 2 işlemci 1 işlemci Çalışma Zamanında Azalma Çalışma Zamanı Paralelleştirme Ek Yükü • Ek yük: • İşlemcilerde fazladan geçen süre • İletişim ek yükü • Senkronizasyon ek yükü • Programın paralel olmayan/ olamayan parçaları • Paralel programlamada ek yük ve çalışma zamanı hızlanma ve verimlilik ile ifade edilir. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  12. Hızlanma Verimlilik ideal 1 Süper-lineer Saturasyon Felaket İşlemci Sayısı İşlemci Sayısı Hızlanma ve Verimlilik • İ sayıda işlemcide programın toplam işlemci zamanını Z(i) olarak ifade edelim. Hızlanma (i) = Z(1) / Z(i) Verimlilik (i) = Hızlanma (i) / i • İdeal durumda: Z (i) = Z (1) / i Hızlanma (i) = i Verimlilik (i) = 1 • Ölçeklenebilir programlar büyük işlemci sayılarında bile verimli kalırlar. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  13. Amdahl Yasası • Amdahl yasası: • “Kodun paralel olmayan kısmı (ek yük), kodun ölçeklenebilirliği konusunda üst limiti oluşturur.” • Kodun seri kısmını s, paralel kısmını p olarak ifade edersek: 1= s + p Z (1) = Z (s) + Z (p) = Z (1) * (s + p) = Z (1) * (p + (1-p)) Z (i) = Z (1) * (p/i + (1-p)) Hızlanma (i) = Z (1) / Z (i) = 1 / (p/i + 1 – p) Hızlanma (i) < 1 / (1 - p) Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  14. 8.0 7.0 6.0 0% 20% 40% 60% 80% 100% 5.0 4.0 3.0 2.0 1.0 Pratikte • Pratikte programları paralelleştirmek Amdahl yasasında görüldüğü kadar zor değildir. • Ancak programın çok büyük bir kısmını paralel işlem için harcaması gereklidir. Hızlanma P=8 P=4 P=2 Kodda Paralel Kısım 1970s David J. Kuck, Hugh Performance Computing, Oxford Univ.. Press 1996 1980s En iyi paralel kodlar 1990s ~99% diliminde Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  15. Coarse-grained Ana Program A B C D E F G H I J K L M N O p q r s Fine-grained t Coarse/Fine Grained Paralel • Fine-Grained: • Genelde her döngüde paralelleştirme vardır. • Çok sayıda döngü paralleleştirilir. • Kodun çok iyi bilinmesine gerek yoktur. • Çok fazla senkronizasyon noktası vardır. • Coarse-Grained: • Geniş döngülerle paralleştirme yapılır. • Daha az senkronizasyon noktası vardır. • Kodun iyi anlaşılması gerekir. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  16. i0 i1 i2 i3 başlangıç bitiş Çalışma Zamanı Ölçeklenebilirlik • Ölçeklenebilirliği etkileyen diğer faktörler: • İş parçacıkları arası yük dengesizliği : Bir kodun herhangi bir paralel kısmının çalışma zamanı en uzun süren iş parçacığının çalışma zamanıdır. Coarse-Grained programlamada ortaya çıkması daha olasıdır. • Çok fazla senkronizasyon: Kodda küçük döngüler sırasında her seferinde senkronizasyon yapılırsa bu ek yük getirir. Fine-Grained programlamada ortaya çıkması daha olasıdır. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  17. Flynn Sınıflandırması • Michael J. Flynn paralel bilgisayar mimarilerini komut ve veri akışlarına göre sınıflandırmıştır: • SISD (Single Instruction, Single Data) • PCler, iş istasyonları • SIMD (Single Instruction, Multiple Data) • Vektör makineler, Intel SSE • MISD (Multiple Instruction, Single Data) • Çok fazla örneği yok • MIMD (Multiple Instruction, Multiple Data) • SGI sunucular, küme bilgisayarlar Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  18. Komutlar İşlemci Veri Çıkışı Veri Girişi SISD Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  19. Komut Akışı A Komut Akışı B Komut Akışı C İşlemci A Çıktı Verisi Girdi Verisi İşlemci B İşlemci C MISD Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  20. Komut Akışı Çıktı Akışı A Girdi Akışı A İşlemci A Çıktı Akışı B İşlemci B Girdi Akışı B Çıktı Akışı C İşlemci C Girdi Akışı C SIMD Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  21. MIMD Komut Akışı A Komut Akışı C Komut Akışı B Çıktı Akışı A Girdi Akışı A İşlemci A Çıktı Akışı B İşlemci B Girdi Akışı B Çıktı Akışı C İşlemci C Girdi Akışı C Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  22. BELLEK BELLEK BELLEK YOLU YOLU YOLU Ortak Bellek MIMD İşlemci A İşlemci B İşlemci C Bellek Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  23. BELLEK BELLEK BELLEK YOLU YOLU YOLU BELLEK A BELLEK B BELLEK C Dağıtık Bellek MIMD IPC Kanalı IPC Kanalı İşlemci A İşlemci B İşlemci C Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  24. Terminoloji - II • Son senelerde ağ hızındaki önemli artış ve çoklu çekirdekli işlemcilerin kullanılmaya başlaması ile paralel hesaplama konusunda birçok terminoloji karışıklığı olmaya başlamıştır. MPP, küme bilgisayarlarla hesaplama, dağıtık hesaplama, grid hesaplama... • Paralel hesaplamada yaygın kullanılan terimlerden bazıları şunlardır: • Multiprocessing: İki veya daha fazla işlemcinin aynı bilgisayar sistemi içinde kullanılmasıdır. • Dağıtık hesaplama: Ağ üzerinden iki veya daha fazla bilgisayar üzerinde aynı anda belli bir programa ait parçaların çalıştırıldığı hesaplama. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  25. Paralel Programlama Modelleri • Ortak Hafıza Modelleri • Dağıtık Ortak Bellek • Posix Threads • OpenMP • Java Threads (HKU JESSICA, IBM cJVM) • Mesaj Tabanlı Modeller • PVM • MPI • Hibrid Modeller • Ortak ve dağıtık hafızayı birlikte kullananlar • OpenMP ve MPI birlikte kullananlar • Nesneve Servis Tabanlı Modeller • Geniş alanda dağıtık hesaplama teknolojileri • Nesne: CORBA, DCOM • Servis: Web servisleri tabanlı • Bilimsel araştırma projelerinde sıklıkla • Derleyici tarafından paralelleştirilen ortak bellek tabanlı programlar • MPI gibi mesaj paylaşımı tabanlı programlar kullanılmaktadır. • Belirli bir programlama modelinin seçimi, genellikle uygulama gereksinimi, kişisel tercih veya donanımla ilgilidir. • Ortak hafızaya sahip makineler, hem OpenMP gibi SMP hem de MPI gibi mesaj paylaşımı tabanlı modelleri çalıştırabilirler. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  26. 1 p= =S 4 dx (1+x2) 0<i<N 0 4 N(1+((i+0.5)/N)2) p sayısını OpenMP ile hesaplamak #define n 1000000 main() { double pi, l, ls = 0.0, w = 1.0/n; int i; #pragma omp parallel private(i,l) reduction(+:ls) { #pragma omp for for(i=0; i<n; i++) { l = (i+0.5)*w; ls += 4.0/(1.0+l*l); } #pragma omp master printf(“pi is %f\n”,ls*w); #pragma omp end master } } Seri programlama şeklinde yazılıyor Otomatik yük dağılımı yapılıyor. Bütün değişkenler paylaşılıyor. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  27. 1 p= =S 4 dx (1+x2) 0<i<N 0 4 N(1+((i+0.5)/N)2) p sayısını MPI ile hesaplamak #include <mpi.h> #define N 1000000 main() { double pi, l, ls = 0.0, w = 1.0/N; int i, mid, nth; MPI_init(&argc, &argv); MPI_comm_rank(MPI_COMM_WORLD,&mid); MPI_comm_size(MPI_COMM_WORLD,&nth); for(i=mid; i<N; i += nth) { l = (i+0.5)*w; ls += 4.0/(1.0+l*l); } MPI_reduce(&ls,&pi,1,MPI_DOUBLE,MPI_SUM,0,MPI_COMM_WORLD); if(mid == 0) printf(“pi is %f\n”,pi*w); MPI_finalize(); } Önce iş parçacıkları belirleniyor Bütün değişkenler sürece özel kalıyor. Uygulama dışında yük dağılımı ve veri paylaşımı yapılıyor. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  28. Paralel Uygulamalarda Bağlantı • Sıkı bağlı sistemler: • Süreçler arasında yoğun haberleşme • Gecikme süresine hassas • Ortak Bellek Paralel • Dağıtık Bellek Paralel Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  29. Paralel Uygulamalarda Bağlantı • Gevşek bağlı sistemler: • Süreçler arasında haberleşme azdır veya hiç yoktur. • Gecikme süresine hassas değillerdir. Ancak bant genişliği veri transferi için etkili olabilir. • Parametrik çalışan uygulamalar • Süreçler arasında haberleşme yoktur. • Kümelerde, grid altyapılarında çalışan uygulamaların çoğunluğunu oluştururlar. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  30. Paralel Donanım Mimarileri • SMP makineler • MPP makineler • NUMA makineler • Superscalar işlemciler • Vektör makineler • Küme bilgisayarlar Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  31. SMP • SMP, birden fazla eş işlemcinin ortak bir belleğe bağlandığı çok işlemcili bir bilgisayar mimarisidir. • SMP sistemler, görevleri işlemciler arasında paylaşabilirler. • SMP sistemler, paralel hesaplama için kullanılan en eski sistemlerdir ve hesaplamalı bilimlerde yoğun bir şekilde kullanılırlar. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  32. MPP • MPP, binlerce işlemci kullanılabilen çok işlemcili bir mimaridir. • Bir MPP sisteminde her işlemci kendi belleğine ve işletim sistemi kopyasına sahiptir. • MPP sistemler üzerinde çalışacak uygulamalar eş zamanda çalışacak eş parçalara bölünebilmelidirler. • MPP sistemlere yeni işlemci ekledikten sonra uygulamalar yeni paralel kısımlara bölünmelidirler. SMP sistemler ise bundan çok iş parçacığı çalıştırabilir yapıları sayesinde hemen faydalanırlar. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  33. NUMA • NUMA, çok işlemcili makinelerde bellek erişim zamanının bellek yerine göre değiştiği bir bellek tasarımıdır. • İlk defa 1990’larda ortaya çıkmıştır. • Modern işlemciler, belleklere hızlı bir şekilde erişmeye ihtiyaç duyarlar. NUMA, istenen verinin “cache” bellekte bulunamaması, belleğin başka işlemci tarafından kullanılması gibi performans sorunlarını her işlemciye bellek vererek aşar. • Intel Itanium ve AMD Opteron işlemciler ccNUMA tabanlıdır. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  34. Superscalar İşlemciler • 1998 senesinden beri üretilen bütün genel amaçlı işlemciler “superscalar” işlemcilerdir. • “Superscalar” işlemci mimarisi, tek bir işlemcide makine kodu seviyesinde paralellik sağlar. • “Superscalar” bir işlemci tek bir basamakta birden fazla işlem yapar. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  35. Vektör Makineler • Vektör işlemciler, aynı anda birden fazla veri üstünde matematik işlem yapabilen işlemcilerdir. • Şu anda süperbilgisayar dünyasında vektör işlemciler çok az kullanılmaktadırlar. • Ancak bugün çoğu işlemci vektör işleme komutları içermektedirler (Intel SSE). • Vektör işlemciler, aynı matematiksel komutu farklı veriler üzerinde defalarca çalıştırmak yerine bütün veri yığınını alıp aynı işlemi yapabilirler. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  36. Küme Bilgisayarlar • Hesaplamada küme bilgisayar kullanımı 1994 senesinde NASA’da Beowulf projesi ile başlamıştır. 16 Intel 486 DX4 işlemci ethernet ile bağlanmıştır. • Yüksek performanslı hesaplama, artık küme bilgisayarlarla hesaplama halini almıştır. • Küme bilgisayar, birlikte çalışmak üzere bağlanmış birden fazla sunucudan oluşur. • En önemli dezavantajı kullanıcıya tek sistem arayüzü sunamamasıdır. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  37. Paralel Uygulamalar Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  38. Dünya Simülasyonu • Gelişmiş nümerik simülasyon yöntemleri ile sanal bir dünya yaratarak gelecekte dünyanın nasıl görüneceğini hesaplayan bir Japonya’da bir projedir. • 40 TFLOPS işlem kapasitesine sahiptir. • Toplam 10 TByte belleğe sahiptir. • Her birinde 8 vektör işlemci bulunan 640 işlemci ucundan oluşur. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  39. TeraGrid Caltech: Data collection analysis ANL: Visualization LEGEND Visualization Cluster Cluster IA64 Sun IA32 0.4 TF IA-64 IA32 Datawulf 80 TB Storage 1.25 TF IA-64 96 Viz nodes 20 TB Storage IA64 Storage Server Shared Memory IA32 IA32 Disk Storage Backplane Router Extensible Backplane Network LA Hub Chicago Hub 30 Gb/s 40 Gb/s 30 Gb/s 30 Gb/s 30 Gb/s 30 Gb/s 10 TF IA-64 128 large memory nodes 230 TB Disk Storage 3 PB Tape Storage GPFS and data mining 6 TF EV68 71 TB Storage 0.3 TF EV7 shared-memory 150 TB Storage Server 4 TF IA-64 DB2, Oracle Servers 500 TB Disk Storage 6 PB Tape Storage 1.1 TF Power4 EV7 IA64 Sun EV68 IA64 Pwr4 Sun SDSC: Data Intensive NCSA: Compute Intensive PSC: Compute Intensive PSC integrated Q3 03 Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  40. EGEE Altyapısı Scale > 49 ülkede 224 site ~ 38.000 işlemci > 15 PB veri alanı > Günde onbinlerce çalışan iş > Yüzden fazla kayıtlı sanal organizasyon Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  41. LHC • LHC 7’şer TeV’lik enerjiye sahip iki proton demetini çarpıştıracak. • En yeni süperiletken teknolojisini kullanarak mutlak sıfırın hemen üstünde – 2710C’de çalışacak. , • 27 km’lik çevresiyle dünyadaki en büyük süperiletken uygulaması olacak. LHC 2007’de çalışmaya başlayacak Dedektörleri birer saray büyüklüğünde olan dört deney: ALICE ATLAS CMS LHCb Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  42. LHC Verileri 1 Gigabyte (1GB) = 1000MB A DVD filmi 1 Terabyte (1TB) = 1000GB Dünyanın yıllık kitap üretimi 1 Petabyte (1PB) = 1000TB Bir LHC deneyinin yıllık veri üretimi 1 Exabyte (1EB) = 1000 PB Dünyanın yıllık bilgi üretimi • Saniyede 40 milyon olay • Filtrelemeden sonra saniyede 100 ilginçolay • Her olayda bir megabitlik dijital veri = 0.1 Gigabit/s’lik veri kayıt hızı • Yılda 1010 olay kaydı = 10 Petabyte/yıllık veri üretimi CMS LHCb ATLAS ALICE Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

  43. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi

More Related