Paralel hesaplama - Vikipedi
İçeriğe atla
Ana menü
Gezinti
  • Anasayfa
  • Hakkımızda
  • İçindekiler
  • Rastgele madde
  • Seçkin içerik
  • Yakınımdakiler
Katılım
  • Deneme tahtası
  • Köy çeşmesi
  • Son değişiklikler
  • Dosya yükle
  • Topluluk portalı
  • Wikimedia dükkânı
  • Yardım
  • Özel sayfalar
Vikipedi Özgür Ansiklopedi
Ara
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç

İçindekiler

  • Giriş
  • 1 İki sayının toplanması
  • 2 Paralel Hesaplama Sistemleri
  • 3 Performans & Fiyat
  • 4 Algoritmalar
  • 5 Thread'ler arası iletişim
  • 6 Paralel Programlama
    • 6.1 İyi bilinen paralel yazılım problem kümeleri
  • 7 Paralel programlama modelleri
    • 7.1 Sık kullanılan paralel programlama modelleri
  • 8 Ayrıca bakınız
  • 9 Kaynakça

Paralel hesaplama

  • العربية
  • Azərbaycanca
  • Български
  • বাংলা
  • Bosanski
  • Català
  • Čeština
  • Deutsch
  • Ελληνικά
  • English
  • Esperanto
  • Español
  • Eesti
  • Euskara
  • فارسی
  • Suomi
  • Français
  • Galego
  • ગુજરાતી
  • עברית
  • हिन्दी
  • Hrvatski
  • Magyar
  • Bahasa Indonesia
  • Ido
  • İtaliano
  • 日本語
  • Jawa
  • ಕನ್ನಡ
  • 한국어
  • Latina
  • Latviešu
  • മലയാളം
  • Монгол
  • मराठी
  • Nederlands
  • Norsk bokmål
  • Polski
  • Português
  • Română
  • Русский
  • Sicilianu
  • සිංහල
  • Simple English
  • Slovenščina
  • Shqip
  • Српски / srpski
  • Svenska
  • தமிழ்
  • Українська
  • اردو
  • Tiếng Việt
  • 吴语
  • 中文
  • 粵語
Bağlantıları değiştir
  • Madde
  • Tartışma
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Araçlar
Eylemler
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Genel
  • Sayfaya bağlantılar
  • İlgili değişiklikler
  • Kalıcı bağlantı
  • Sayfa bilgisi
  • Bu sayfayı kaynak göster
  • Kısaltılmış URL'yi al
  • Karekodu indir
Yazdır/dışa aktar
  • Bir kitap oluştur
  • PDF olarak indir
  • Basılmaya uygun görünüm
Diğer projelerde
  • Wikimedia Commons
  • Vikiveri ögesi
Görünüm
Vikipedi, özgür ansiklopedi
(Paralel programlama sayfasından yönlendirildi)
Bu maddedeki bilgilerin doğrulanabilmesi için ek kaynaklar gerekli. Lütfen güvenilir kaynaklar ekleyerek maddenin geliştirilmesine yardımcı olun. Kaynaksız içerik itiraz konusu olabilir ve kaldırılabilir.
Kaynak ara: "Paralel hesaplama" – haber · gazete · kitap · akademik · JSTOR
(Mart 2020) (Bu şablonun nasıl ve ne zaman kaldırılması gerektiğini öğrenin)

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.[1]

İki sayının toplanması

[değiştir | kaynağı değiştir]
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.[1]

Paralel Hesaplama Sistemleri

[değiştir | kaynağı değiştir]

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

[değiştir | kaynağı değiştir]

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.

Algoritmalar

[değiştir | kaynağı değiştir]

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

[değiştir | kaynağı değiştir]

Paralel bilgisayarlar, teorik olarak, Paralel Rastgele Erişim Makineleri (PRAM) 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: paylaşılmış hafıza, sürgü (crossbar), paylaşılmış bir veriyolu 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

[değiştir | kaynağı değiştir]

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

[değiştir | kaynağı değiştir]
  • 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

[değiştir | kaynağı değiştir]

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

[değiştir | kaynağı değiştir]

Sık kullanılan paralel programlama modelleri şöyledir: PVM, MPI, OpenMP, Global Arrays, Co-Array Fortran, UPC, HPF, SHMEM, Occam, Linda, Cilk.

Ayrıca bakınız

[değiştir | kaynağı değiştir]
  • Dağıtık hesaplama

Kaynakça

[değiştir | kaynağı değiştir]
  1. ^ a b "Arşivlenmiş kopya" (PDF). 22 Kasım 2009 tarihinde kaynağından (PDF) arşivlendi. Erişim tarihi: 4 Eylül 2009. 
  • g
  • t
  • d
Bilgisayar biliminin alt dalları
Matematiksel temeller
Matematiksel mantık · Kümeler kuramı · Sayı teorisi · Çizge teorisi · Tip teorisi · Kategori teorisi · Sayısal çözümleme · Bilgi teorisi · Kombinatorik · Boole cebiri
Hesaplama teorisi
Otomat teorisi · Hesaplanabilirlik teorisi · Hesaplamalı karmaşıklık teorisi · Kuantum hesaplama teorisi
Algoritmalar ve veri yapıları
Algoritma çözümlemesi · Algoritma tasarımı · Hesaplamalı geometri
Programlama dilleri ve derleyiciler
Ayrıştırıcılar · Yorumlayıcılar · Yordamsal programlama · Nesne yönelimli programlama · Fonksiyonel programlama · Mantık programlama · Programlama paradigmaları
Eşzamanlı, paralel ve dağıtık sistemler
Çoklu işleme · Dağıtımlı hesaplama · Eşzamanlılık denetimi
Yazılım mühendisliği
Gereksinim çözümleme · Yazılım tasarımı · Bilgisayar programlama · Biçimsel yöntemler · Yazılım testi · Yazılım geliştirme süreci
Sistem mimarisi
Bilgisayar mimarisi · Bilgisayar organizasyonu · İşletim sistemi
Telekomünikasyon ve ağ oluşturma
Bilgisayar müziği · Yönlendirme · Örgü topolojisi · Kriptografi
Veritabanları
Veritabanı yönetim sistemleri · İlişkisel veritabanı · SQL · İşlem yürütme · Veritabanı indeksleme · Veri madenciliği · Metadata (Üst veri) · Ana veri (Master data)
Yapay zekâ
Otomatikleştirilmiş muhakeme · Bilgisayarlı dilbilim · Bilgisayarlı görü · Evrimsel hesaplama · Uzman sistemler · Makine öğrenimi · Doğal dil işleme · Robotik
Bilgisayar grafikleri
Görselleştirme · Bilgisayar animasyonu · Görüntü işleme
İnsan-bilgisayar etkileşimi
Bilgisayar erişilebilirliği · Kullanıcı arayüzleri · Giyilebilir hesaplama · Yaygın bilişim · Sanal gerçeklik
Bilimsel hesaplama
Yapay yaşam · Biyoenformatik · Bilişsel bilim · Bilgisayarlı kimya · Hesaplamalı nörobilim · Hesaplamalı fizik · Sayısal algoritmalar · Sembolik matematik
Bilgisayar bilimi, ACM Hesaplama ve Sınıflandırma Sistemi'ne göre farklı konu ve alanlara ayrılabilir.
  • g
  • t
  • d
Paralel hesaplama
Genel
Yüksek başarımlı hesaplama · Kümesel hesaplama · Dağıtık hesaplama · Dağıtımlı hesaplama · Bulut bilişim · Grafik işlemci biriminde genel amaçlı hesaplama · Bilgisayar ağı
Koşutluk düzeyleri
Bit · Komut · Veri · Görev
İzlekler
Üst izlekleme · Yüksek izlekleme
Kuram
Amdahl yasası · Gustafson yasası · Karp-Flatt ölçütü · Yavaşlama · Hızlanma
Ögeler
İşlem · İzlek · Lif · PRAM · Buyruk penceresi · Dizi
Eşgüdüm
Çoklu işleme · Çoklu izlekleme · Bellek tutarlılığı · Ön bellek tutarlılığı · Engel · Eşzamanlılaştırma · Aşamalı uygulama denetimi
Programlama
Modeller (Gizli koşutluk · Açık koşutluk · Koşutzamanlılık)
Donanım
Flynn Sınıflandırması (SISD • SIMD • MISD • MIMD) · Boru hattı yöntemi · Çoklu işleme (Bakışımlı · Bakışımsız) · Bellek (NUMA · COMA · Dağıtık · Paylaşımlı · Dağıtık paylaşımlı) · SMT
MPP · Sayılüstü · Dizi işlemcisi · Süper bilgisayar · Beowulf
APIler
POSIX Threads · OpenMP · MPI · OpenCL · UPC · Intel İzlekleme Yapıtaşları · Boost.Thread · Evrensel Diziler · Charm++ · Cilk · CUDA · PVM
Sorunsallar
Olağanüstü koşutluk · Büyük Sorun · Yazılım durağanlığı  · Ölçeklenebilirlik  · Yarışma koşulları  · Deadlock  · Gerekirci algoritma
  • Kategori Kategori
  • Commons sayfası Paralel hesaplama
Otorite kontrolü Bunu Vikiveri'de düzenleyin
  • BNF: cb11982441p (data)
  • LCCN: sh85097826
  • NLI: 987007563162905171
"https://tr.wikipedia.org/w/index.php?title=Paralel_hesaplama&oldid=34532621" sayfasından alınmıştır
Kategori:
  • Paralel hesaplama
Gizli kategoriler:
  • Ek kaynaklar gereken maddeler Mart 2020
  • Ek kaynaklar gereken tüm maddeler
  • BNF tanımlayıcısı olan Vikipedi maddeleri
  • LCCN tanımlayıcısı olan Vikipedi maddeleri
  • NLI tanımlayıcısı olan Vikipedi maddeleri
  • Sayfa en son 22.15, 23 Aralık 2024 tarihinde değiştirildi.
  • Metin Creative Commons Atıf-AynıLisanslaPaylaş Lisansı altındadır ve ek koşullar uygulanabilir. Bu siteyi kullanarak Kullanım Şartlarını ve Gizlilik Politikasını kabul etmiş olursunuz.
    Vikipedi® (ve Wikipedia®) kâr amacı gütmeyen kuruluş olan Wikimedia Foundation, Inc. tescilli markasıdır.
  • Gizlilik politikası
  • Vikipedi hakkında
  • Sorumluluk reddi
  • Davranış Kuralları
  • Geliştiriciler
  • İstatistikler
  • Çerez politikası
  • Mobil görünüm
  • Wikimedia Foundation
  • Powered by MediaWiki
Paralel hesaplama
Konu ekle