BİLİM VE TEKNOLOJİ

Paralel Programlama Nedir?

Soru: 1 musluk bir havuzu 20 saatte dolduruyorsa 4 musluk aynı havuzu kaç saatte doldurur?

Soru: 1 bilgisayar verilen görevi 16 mikro saniyede yapıyorsa 4 bilgisayar (aynı donanımsal özelliklere sahip) kaç mikro saniyede yapar?

Kitabi tanımları şimdilik bir kenara bırakalım ve bu iki soru üzerinde düşünelim. Paralel programlama, matematik derslerinde gördüğümüz işçi-havuz problemlerinden pek de farklı değildir. Matematikte görev paylaşımını işçiler, musluklar arasında yaptırıyorken; paralel programlamada görev veya veri paylaşımını (buna ilerde tekrar değineceğiz) bilgisayarlar (işlemciler) arasında yaptırıyoruz. Peki paralel programlama yapmak şart mı, bu problemi başka yollarla (seri programlama yaparak) çözemez miyiz? Elimizdeki veri kümesi küçükse elbette çözebiliriz; ancak milyonlarca veri üzerinde işlemler yapıyorken bu epey bir zaman alacaktır. Kavramların daha net anlaşılır olması açısından ilk önce seri programlamanın ne olduğuna bir bakalım.

Seri programlama, bir tane merkezi işlem birimi (CPU) olan bir bilgisayarda; her bir adımın ardışık olarak işlemcide yürütülmesidir. Belirli bir zaman zarfında sadece tek bir işlem yapılabilmektedir. Bir işlem bitmeden diğer bir işleme geçiş yapılamaz. Aşağıdaki fotoğrafta olduğu gibi problem komutlar dizisine bölünür ve her bir komut sırasıyla işlemcide yürütülür.

seri programlamanın çalışma mantığı

Paralel programlama ise, haberleşebilen ve iş birliği yapabilen, birden fazla işlem biriminin eş zamanlı çalışarak tek bir işlem adımında birden fazla işlemi gerçekleştirebilmesidir. Belirli bir zaman zarfında birden fazla işlem yapılır. İşlemler birden çok bilgisayarda gerçekleştirilebildiği gibi, bir bilgisayardaki çok çekirdekli bir işlemcinin üzerinde de gerçekleştirilebilir. Problemin her bir parçası farklı bir bilgisayarda çözümlenir.

paralel programlamanın çalışma mantığı

Veri ve Görev Paralelliği Analojisi

5 intern doktorun 40 farklı hastanın 20 farklı kan değerine bakacağı bir senaryo hayal edelim. İlk senaryoda her intern doktora 8 hasta düşeceğini, ikinci senaryoda ise her intern doktorun bütün hastaların kan tahlili sonuçlarındaki tek bir kan değerini inceleyeceğini düşünelim. (1. doktor 1. kan değerlerini, 2. doktor 2. kan değerlerini…)

Her iki senaryoda da her bir intern doktor 160 kan değeri incelemiş olur. İlk senaryo veri paralelliğine, ikinci senaryo görev paralelliğine örnek verilebilir.

Paralel programlama teknolojisine sahip IBM Blue Gene süper bilgisayarı

Paralel Programlamanın Avantajları

Çok büyük ve karmaşık problemlerin tek bir bilgisayarda çözümü çok uzun olacağından paralel programlama ile kısa sürede sonuca ulaşabiliriz. Büyük problemler parçalara ayrılarak paralel hesaplama kümesindeki bilgisayarlara dağıtılır ve her bir bilgisayar kendi payına düşen veriyi işler. Bu da bize zamandan kazanç sağlayarak haftalar, aylar sürebilecek problemleri daha kısa sürede çözmemize olanak sağlar.

Praralel Programlamanın Dezavantajları

Paralel programlamayı öğrenmek ve uygulamak seri programlaya göre çok daha fazla zaman alır. Algoritma kurulurken her bir adım eksiksiz ve hatasız düşünülmelidir. Aksi halde hata ayıklamak çok karmaşık bir hale gelebilir. Maliyet, güç tüketimi ve soğutma gibi hususlara dikkat edilmesi gerekir. Paralel hesaplama kümesinde kullanılacak bilgisayar sayısı arttıkça maliyetin, güç tüketiminin ve soğutmanın zorluğunun artacağı da göz önünde bulundurulmalıdır.

Paralel programlama kümesini; görev paylaşımını yapan ve sonrasında işlenmiş verileri toplayan bir master bilgisayar (ana bilgisayar) ve kendisine verilen görevi yerine getiren kümedeki diğer bilgisayarlar oluşturur. Aşağıdaki örnekte bir küme içerisindeki bilgisayarların birbiri arasındaki iletişimini görüyorsunuz. Hata ayıklamanın zorluğundan dolayı yapılan her bir işlemi ekrana yazdırarak kümedeki hangi bilgisayarın/bilgisayarların görevini yerine getiremediği tespit edilir.

Paralel Programlamada hata ayıklama örneği

Paralel Programlamanın Kullanım Alanları

Bilim ve Mühendislikte

  • Biyobilim, Biyoteknoloji, Genetik
  • Kimya, Moleküler Bilimler
  • Elektrik Mühendisliği, Devre Tasarımı, Mikroelektronik
  • Bilgisayar Bilimleri, Matematik
  • Savunma, Siber Güvenlik

Endüstriyel ve Ticari Alanda

  • Büyük Veri, Veritabanları, Veri Madenciliği
  • Yapay Zekâ
  • Tıbbi Görüntüleme ve Teşhis
  • Farmasötik Tasarım
  • Finansal ve ekonomik modelleme
  • Ağ bağlantılı video ve multimedya teknolojileri

KAYNAKÇA

  1. Barney, B (n.d). Introduction to parallel computing tutorial.Department of Energy’s National Nuclear Security Administration  Retrieved December 13, 2020 from https://hpc.llnl.gov/training/tutorials/introduction-parallel-computing-tutorial
  2. Dal, D. (2020). Giriş ve temel kavramlar [PowerPoint slaytı]. 13 Aralık 2020 tarihinde http://muhserv.atauni.edu.tr/bilgisayar/ddal/courses/
    bm308_spring20.html adresinden erişildi.
  3. Geekboots (November, 4 2018). Parallel computing and its advantage and disadvantage Geekboots. https://www.geekboots.com/story/parallel-computing-and-its-advantage-and-disadvantage
Daha Fazla Göster

Recep Özdemir

10 yaşında bilgisayarla tanışmış, bilime ve teknolojiye meraklı, sevdiği bölümü okuyan, araştırmaktan ve kod yazmaktan sıkılmayan bir bilgisayar mühendisi adayı.

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Başa dön tuşu