Bu maddedeki bilgilerin için ek kaynaklar gerekli.Mart 2020) () ( |
Paralel hesaplama ya da Koşut hesaplama, aynı görevin (parçalara bölünmüş ve uyarlanmış), sonuçları daha hızlı elde etmek için çoklu işlemcilerde eş zamanlı olarak işletilmesidir. Bu fikir, problemlerin çözümünün ufak görev parçalarına bölünmesi ve bunların eş zamanlı olarak koordine edilmesine dayanır. Paralel hesaplama ile performans artar, büyük sorunlar daha az sürede çözülür ve bilimdeki gelişmeler paralel hesaplamaya gereksinim duyar.
İki sayının toplanması
- Seri (1 işlemci)
- 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8
- 3 + 3 + 4 + 5 + 6 + 7 + 8
- 6 + 4 + 5 + 6 + 7 + 8
- 10 + 5 + 6 + 7 + 8
- 15 + 6 + 7 + 8
- 21 + 7 + 8
- 28 + 8
- 36
- Paralel (2 işlemci)
- 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8
- 3 + 3 + 4 + 5 + 6 + 15
- 6 + 4 + 5 + 21
- 10 + 26
- 36
1,75 kat hızlanma sağlanır. Daha fazla işlem olursa hızlanma 2 kata kadar çıkar.
Paralel Hesaplama Sistemleri
Paralel işlemci terimi bazen paralel işlemeye elverişli birden fazla işlemci içeren bir bilgisayarı tanımlamak için kullanılır. Binlerce işlemci içeren sistemler güçlü paralel (massively parallel) sistemler olarak bilinir. Çok çekirdekli işlemciler de paralel hesaplama sistemleri için uygundur. Kullanılan işlemcilerin büyüklüğüne göre sistemler büyük taneli (large grain) ve küçük taneli (small grain) olarak ikiye ayrılır. PC tabanlı sistemler küçük taneli sistemlere örnek olarak verilebilir.
Çok çeşitli paralel bilgisayar (işlemci) yapıları vardır. Bu çeşitler, işlemciler (işleme elemanı olarak adlandırılır-PE) arasındaki veya işlemci ve hafıza arasındaki bağlantıya göre belirlenir. Flynn, tüm işlemcilerin aynı zamanda aynı talimatları işlemelerine göre (tek talimat/çoklu veri-SIMD) veya her bir işlemcinin farklı talimatları (çoklu talimat/çoklu veri-MIMD) işlemesine göre paralel bilgisayarları sınıflandırır. Paralel işlemci makineleri simetrik (tüm işlemcilerin aynı seviyede olması) ve asimetrik (işlemcilerin bazı görevler için ayrılması ve önceliklerinin olması) çoklu işlemciler olarak ikiye ayrılır.
Performans & Fiyat
n adet paralel işlemciden oluşan bir sistem, n kat hızlı tek bir işlemciden daha az verimlidir fakat çok daha ucuzdur. Çok fazla hesaplama gerektiren, bitirilmesinde zaman kısıtları olan ve özellikle n adet thread’e bölünebilen görevler için paralel hesaplama mükemmel bir çözümdür. Aslında geçtiğimiz yıllarda, süperbilgisayar olarak bilinen yüksek performanslı hesaplama sistemleri paralel bir mimariye sahiptir.
Bir paralel hesaplamanın, sadece uygun donanımı satın alıp, bağlantılarını yapınca başarılı olacağı asla düşünülmemelidir. Kooperatif problem çözme şu sebepten dolayı zordur: Eğer bir insan bir çukuru bir dakikada kazıyorsa, 60 insanın bir çukuru bir saniyede kazması gerekir.
Pratikte lineer hızlanmayı (işlemci sayısıyla orantılı) başarmak çok zordur. Bunun nedeni, doğada birçok algoritma aslında sıralıdır (Amdahl yasası bunu bilimsel olarak açıklamıştır).
Ekstra işlemciler eklendikçe, bazı iş yükleri, boruhattı (pipeline) paralellik kullanarak belli bir noktaya kadar fayda sağlar. Bu sistem, bir fabrika montaj hattı yaklaşımı kullanarak işleri parçalar. Eğer iş n aşamaya bölünebiliyorsa ve bir ayrık değişken bir aşamadan diğer birine iletilebiliyorsa, en fazla n adet işlemci kullanılabilir. Bununla birlikte, en yavaş aşama diğer aşamaları da tutacaktır ve n işlemciyi tam performansta kullanmak pek mümkün olmayacaktır.
Pek çok algoritma, paralel donanımın kullanımını daha verimli yapmak için tekrar tasarlanmalıdır. Tek işlemcili sistemlerde iyi çalışan programlar, paralel sistemlerde aynı performansı vermeyebilir. Aynı programın çoklu kopyaları, birbirlerini etkileyebilirler (aynı anda aynı hafıza adresine yazma/okuma yapma). Bu yüzden paralel sistemlerde dikkatli programlama yapılması gerekir.
Thread'ler arası iletişim
Paralel bilgisayarlar, teorik olarak, Paralel Rastgele Erişim Makineleri () olarak modellenir. PRAM modeli, hesaplama bileşenleri arasındaki bağlantı masraflarını yok sayar fakat bununla beraber pek çok problem için paralel çözülebilirlik desteği sunar. Gerçekte ara bağlantılar çok hayati rol oynar.
İşlemciler bir problemi iş birliği ile çözerken birbirleriyle haberleşmek durumundadırlar veya işleri dağıtan ve sonuçları toplayan bir başka işlemcinin kontrolü altında birbirlerinden tamamen bağımsız çalışabilirler.
Bir paralel bilgisayardaki işlemciler birbirleriyle pek çok çeşitli yöntemler ile haberleşirler. Bunlar: , sürgü (crossbar), paylaşılmış bir veri yolu ya da yıldız, halka, ağaç, hiperküp, şişman hiperküp, n boyutlu ağ (mesh) gibi çok sayıda çeşitli ağ topolojileri vs. olabilir. Paralel bilgisayarlar, birbirleriyle doğrudan bağlantılı olmayan düğümlerde mesajların değişimi için bazı yönlendirme tekniklerine ihtiyaç duyarlar. Büyük ölçekli çoklu işlemci makinelerinde haberleşme ortamı hiyerarşik biçimdedir. Benzer şekilde, hafıza her bir işlemciye özgü, belli sayıdaki işlemciler için paylaşımlı veya tümüyle paylaşımlı olabilir.
Paralel bilgisayar yaklaşımları şu şekildedir:
- Çoklu işleme (multiprocessing)
- Bilgisayar kümelemesi
- Paralel süperbilgisayarlar
- Dağıtık hesaplama
- NUMA, SMP ve massively paralel sistemler
- Izgara (grid) hesaplama
Paralel Programlama
Paralel bilgisayarlarda programlama için işletim sistemi seviyesinde ve programlama dili seviyesinde pek çok yazılım sistemi geliştirilmiştir. Bu sistemler, problemin parçalara bölümlenmesini ve işlemcilere atanmasını sağlayan çeşitli mekanizmalar içermelidir. Dolaylı paralellik (implicit parallelism) derleyici ya da diğer programın problemi bölümlemesi ve işlemcilere otomatik olarak atamasıdır. Dolaysız paralellik (explicit parallelism) ise programcının problemin nasıl bölümleneceğini bildirmesidir. Şu an pek çok paralel işleme derleyici uygulamaları tek-katmanlı parallelliği desteklemektedir. Çok-katmanlı paralellik de paralel çalışan thread’ler daha fazla paralellik için daha da bölünürler. Semaphore ve monitor adı verilen senkronizasyon yapıları ile işlemlerin kaynakları paylaşımında bir anlaşmazlık olması durumu engellenmiştir.
Yük dengeleme, ağır yük ile çalışan işlemciden bazı görevleri daha hafif yük ile çalışan işlemcilere taşıyarak hepsinin aynı meşguliyette olmasını sağlar.
Bazı insanlar paralel programlamayı, eş zamanlı (concurrent) programlama ile eş anlamlı kabul ederler. Bazıları da kesin bir çizgiyle ayrırırlar. Paralel programlama, işlemler arasında iyi tanımlanmış iletişim yapıları kullanan ve verimi artırmaya yönelik işlemlerinin paralel işlenmesini sağlayan bir yapıdır. Eş zamanlı (concurrent) programlama, performanstan ziyade başka nedenlerden dolayı eş zamanlı işlemler arasında yeni iletişim tekniklerine dayanan bir yapıdadır. İşlemler arası iletişim genelde paylaşımlı hafıza veya mesaj geçirme tekniği ile yapılır.
İyi bilinen paralel yazılım problem kümeleri
- Cansıkıcı (Embarrassingly) paralel: Bir birinden bağımsız alt görevler içeren, kolay uygulanabilen problemlerdir. Daha çok dağıtık hesaplama için uygundurlar. Mesela büyük bir grafiğin render edilmesi veya seti@home gibi projeler buna örnek verilebilir.
- Büyük uğraştırıcı (grand challenge) problemler: Genelde çözülmesi çok zor olan problemlerdir. Ör: uygulamalı akışkanlar dinamiği, ekosistem simülasyonları, biyomedikal görüntüleme ve biyomekanik, moleküler biyoloji, kavrama, nükleer güç ve silah simulasyonları vs.
Paralel programlama modelleri
Bir paralel programlama modeli, paralel algoritmaları açıklayan bir yazılım teknolojileri kümesidir. Bu model, uygulamalar, diller, derleyiciler, kütüphaneler, iletişim sistemleri ve paralel giriş/çıkış alanlarını kapsar. Programcılar, kendileri ve uygulamaları için uygun bir model veya karma bir model seçip, uygulamalarını geliştirirler.
Paralel modeller çok farklı şekillerde uyarlanırlar: klasik sıralı dillerden çağrılan kütüphaneler şeklinde, dil uzantıları şeklinde ya da tamamen yeni işleme modelleriyle. Bu modeller kabaca ikiye ayrılırlar: paylaşımlı hafıza sistemleri ve dağıtık hafıza sistemleri. Günümüzde bu iki sistem arasındaki çizgi oldukça bulanıklaşmıştır.
Sık kullanılan paralel programlama modelleri
Sık kullanılan paralel programlama modelleri şöyledir: PVM, MPI, OpenMP, , , , , , , , .
Ayrıca bakınız
Kaynakça
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Bu maddedeki bilgilerin dogrulanabilmesi icin ek kaynaklar gerekli Lutfen guvenilir kaynaklar ekleyerek maddenin gelistirilmesine yardimci olun Kaynaksiz icerik itiraz konusu olabilir ve kaldirilabilir Kaynak ara Paralel hesaplama haber gazete kitap akademik JSTOR Mart 2020 Bu sablonun nasil ve ne zaman kaldirilmasi gerektigini ogrenin Paralel hesaplama ya da Kosut hesaplama ayni gorevin parcalara bolunmus ve uyarlanmis sonuclari daha hizli elde etmek icin coklu islemcilerde es zamanli olarak isletilmesidir Bu fikir problemlerin cozumunun ufak gorev parcalarina bolunmesi ve bunlarin es zamanli olarak koordine edilmesine dayanir Paralel hesaplama ile performans artar buyuk sorunlar daha az surede cozulur ve bilimdeki gelismeler paralel hesaplamaya gereksinim duyar Iki sayinin toplanmasiSeri 1 islemci 1 2 3 4 5 6 7 8 3 3 4 5 6 7 8 6 4 5 6 7 8 10 5 6 7 8 15 6 7 8 21 7 8 28 8 36Paralel 2 islemci 1 2 3 4 5 6 7 8 3 3 4 5 6 15 6 4 5 21 10 26 36 1 75 kat hizlanma saglanir Daha fazla islem olursa hizlanma 2 kata kadar cikar Paralel Hesaplama SistemleriParalel islemci terimi bazen paralel islemeye elverisli birden fazla islemci iceren bir bilgisayari tanimlamak icin kullanilir Binlerce islemci iceren sistemler guclu paralel massively parallel sistemler olarak bilinir Cok cekirdekli islemciler de paralel hesaplama sistemleri icin uygundur Kullanilan islemcilerin buyuklugune gore sistemler buyuk taneli large grain ve kucuk taneli small grain olarak ikiye ayrilir PC tabanli sistemler kucuk taneli sistemlere ornek olarak verilebilir Cok cesitli paralel bilgisayar islemci yapilari vardir Bu cesitler islemciler isleme elemani olarak adlandirilir PE arasindaki veya islemci ve hafiza arasindaki baglantiya gore belirlenir Flynn tum islemcilerin ayni zamanda ayni talimatlari islemelerine gore tek talimat coklu veri SIMD veya her bir islemcinin farkli talimatlari coklu talimat coklu veri MIMD islemesine gore paralel bilgisayarlari siniflandirir Paralel islemci makineleri simetrik tum islemcilerin ayni seviyede olmasi ve asimetrik islemcilerin bazi gorevler icin ayrilmasi ve onceliklerinin olmasi coklu islemciler olarak ikiye ayrilir Performans amp Fiyatn adet paralel islemciden olusan bir sistem n kat hizli tek bir islemciden daha az verimlidir fakat cok daha ucuzdur Cok fazla hesaplama gerektiren bitirilmesinde zaman kisitlari olan ve ozellikle n adet thread e bolunebilen gorevler icin paralel hesaplama mukemmel bir cozumdur Aslinda gectigimiz yillarda superbilgisayar olarak bilinen yuksek performansli hesaplama sistemleri paralel bir mimariye sahiptir AlgoritmalarBir paralel hesaplamanin sadece uygun donanimi satin alip baglantilarini yapinca basarili olacagi asla dusunulmemelidir Kooperatif problem cozme su sebepten dolayi zordur Eger bir insan bir cukuru bir dakikada kaziyorsa 60 insanin bir cukuru bir saniyede kazmasi gerekir Pratikte lineer hizlanmayi islemci sayisiyla orantili basarmak cok zordur Bunun nedeni dogada bircok algoritma aslinda siralidir Amdahl yasasi bunu bilimsel olarak aciklamistir Ekstra islemciler eklendikce bazi is yukleri boruhatti pipeline paralellik kullanarak belli bir noktaya kadar fayda saglar Bu sistem bir fabrika montaj hatti yaklasimi kullanarak isleri parcalar Eger is n asamaya bolunebiliyorsa ve bir ayrik degisken bir asamadan diger birine iletilebiliyorsa en fazla n adet islemci kullanilabilir Bununla birlikte en yavas asama diger asamalari da tutacaktir ve n islemciyi tam performansta kullanmak pek mumkun olmayacaktir Pek cok algoritma paralel donanimin kullanimini daha verimli yapmak icin tekrar tasarlanmalidir Tek islemcili sistemlerde iyi calisan programlar paralel sistemlerde ayni performansi vermeyebilir Ayni programin coklu kopyalari birbirlerini etkileyebilirler ayni anda ayni hafiza adresine yazma okuma yapma Bu yuzden paralel sistemlerde dikkatli programlama yapilmasi gerekir Thread ler arasi iletisimParalel bilgisayarlar teorik olarak Paralel Rastgele Erisim Makineleri olarak modellenir PRAM modeli hesaplama bilesenleri arasindaki baglanti masraflarini yok sayar fakat bununla beraber pek cok problem icin paralel cozulebilirlik destegi sunar Gercekte ara baglantilar cok hayati rol oynar Islemciler bir problemi is birligi ile cozerken birbirleriyle haberlesmek durumundadirlar veya isleri dagitan ve sonuclari toplayan bir baska islemcinin kontrolu altinda birbirlerinden tamamen bagimsiz calisabilirler Bir paralel bilgisayardaki islemciler birbirleriyle pek cok cesitli yontemler ile haberlesirler Bunlar surgu crossbar paylasilmis bir veri yolu ya da yildiz halka agac hiperkup sisman hiperkup n boyutlu ag mesh gibi cok sayida cesitli ag topolojileri vs olabilir Paralel bilgisayarlar birbirleriyle dogrudan baglantili olmayan dugumlerde mesajlarin degisimi icin bazi yonlendirme tekniklerine ihtiyac duyarlar Buyuk olcekli coklu islemci makinelerinde haberlesme ortami hiyerarsik bicimdedir Benzer sekilde hafiza her bir islemciye ozgu belli sayidaki islemciler icin paylasimli veya tumuyle paylasimli olabilir Paralel bilgisayar yaklasimlari su sekildedir Coklu isleme multiprocessing Bilgisayar kumelemesi Paralel superbilgisayarlar Dagitik hesaplama NUMA SMP ve massively paralel sistemler Izgara grid hesaplamaParalel ProgramlamaParalel bilgisayarlarda programlama icin isletim sistemi seviyesinde ve programlama dili seviyesinde pek cok yazilim sistemi gelistirilmistir Bu sistemler problemin parcalara bolumlenmesini ve islemcilere atanmasini saglayan cesitli mekanizmalar icermelidir Dolayli paralellik implicit parallelism derleyici ya da diger programin problemi bolumlemesi ve islemcilere otomatik olarak atamasidir Dolaysiz paralellik explicit parallelism ise programcinin problemin nasil bolumlenecegini bildirmesidir Su an pek cok paralel isleme derleyici uygulamalari tek katmanli parallelligi desteklemektedir Cok katmanli paralellik de paralel calisan thread ler daha fazla paralellik icin daha da bolunurler Semaphore ve monitor adi verilen senkronizasyon yapilari ile islemlerin kaynaklari paylasiminda bir anlasmazlik olmasi durumu engellenmistir Yuk dengeleme agir yuk ile calisan islemciden bazi gorevleri daha hafif yuk ile calisan islemcilere tasiyarak hepsinin ayni mesguliyette olmasini saglar Bazi insanlar paralel programlamayi es zamanli concurrent programlama ile es anlamli kabul ederler Bazilari da kesin bir cizgiyle ayririrlar Paralel programlama islemler arasinda iyi tanimlanmis iletisim yapilari kullanan ve verimi artirmaya yonelik islemlerinin paralel islenmesini saglayan bir yapidir Es zamanli concurrent programlama performanstan ziyade baska nedenlerden dolayi es zamanli islemler arasinda yeni iletisim tekniklerine dayanan bir yapidadir Islemler arasi iletisim genelde paylasimli hafiza veya mesaj gecirme teknigi ile yapilir Iyi bilinen paralel yazilim problem kumeleri Cansikici Embarrassingly paralel Bir birinden bagimsiz alt gorevler iceren kolay uygulanabilen problemlerdir Daha cok dagitik hesaplama icin uygundurlar Mesela buyuk bir grafigin render edilmesi veya seti home gibi projeler buna ornek verilebilir Buyuk ugrastirici grand challenge problemler Genelde cozulmesi cok zor olan problemlerdir Or uygulamali akiskanlar dinamigi ekosistem simulasyonlari biyomedikal goruntuleme ve biyomekanik molekuler biyoloji kavrama nukleer guc ve silah simulasyonlari vs Paralel programlama modelleriBir paralel programlama modeli paralel algoritmalari aciklayan bir yazilim teknolojileri kumesidir Bu model uygulamalar diller derleyiciler kutuphaneler iletisim sistemleri ve paralel giris cikis alanlarini kapsar Programcilar kendileri ve uygulamalari icin uygun bir model veya karma bir model secip uygulamalarini gelistirirler Paralel modeller cok farkli sekillerde uyarlanirlar klasik sirali dillerden cagrilan kutuphaneler seklinde dil uzantilari seklinde ya da tamamen yeni isleme modelleriyle Bu modeller kabaca ikiye ayrilirlar paylasimli hafiza sistemleri ve dagitik hafiza sistemleri Gunumuzde bu iki sistem arasindaki cizgi oldukca bulaniklasmistir Sik kullanilan paralel programlama modelleri Sik kullanilan paralel programlama modelleri soyledir PVM MPI OpenMP Ayrica bakinizDagitik hesaplamaKaynakca a b PDF 22 Kasim 2009 tarihinde kaynagindan PDF arsivlendi Erisim tarihi 4 Eylul 2009