Merhabalar e-bergi severler. Bu ay elimden geldiğince paralel hesaplama kavramından bahsedeceğim. Ben yazarken çok keyif aldım, umarım siz de okurken keyif alırsınız. :)

Paralel hesaplamada yapılacak bir iş, birden çok iş bölümlerine ayrılır ve her iş bölümünde bulunan sonuçlar bir yerde toplanır (örneğin, ana bilgisayar) ve bu şekilde, bu işlerin daha kısa zamanda ve daha hızlı bir şekilde yapılmasına olanak sağlanır. Günümüzde çok çekirdekli bilgisayarların yaygınlaşmasıyla birlikte paralel hesaplamayla yapılacak projelere yeni alanlar açılmış ve bu sayede paralel hesaplama üzerindeki ilgi daha da artmıştır.

Paralel hesaplamayla sonuca daha hızlı ulaşmanın yanında, iş bölümleri aynı anda işletilerek eş zamanlı olarak işlemlerin yapılmasıyla performans da arttırılır. Çift ve çok çekirdekli işlemcilerle artık bilgisayarların işlemleri daha hızlı ve kısa sürede yapabilmeleri, hatta daha az ısınmaları da sağlanabilmektedir.

Paralel hesaplamaları gerçekleştirebilmek için işlemci-sunucu (client-server) tarzı bir yaklaşım ya da paralel hesaplama için geliştirilmiş özel yöntem ve programlar (örneğin, Mpich2) kullanılabilir.

Paralellik ile ilgili ilk fikirler, ilk olarak 1958’de IBM araştırmalarında numerik hesaplamaların yapılabileceği fikrini ortaya atan John Cocke ve Daniel Slotnick ile ortaya çıkmıştır.

1960’a gelindiğinde Novosibirsk Matematik Enstitüsünden(IMN) E.V Yevreinov’un birbirine bağlantılı şekilde programlanabilen paralel mimarileri tasarlamasıyla paralel kavramı yeni bir boyut kazandı.

1964’te ise Daniel Slotnick Lawrance Livermore National Laboratuarları'nda kullanılmak üzere büyük paralel makineleri geliştirdi.

1967’de Gene Amdahl ve Daniel Slotnick paralel işlemlerin olasılığıyla ilgili bir makale yayınladılar. Bu paralellikle ilgili olan tartışma konusu daha sonra “Amdahl Kanunu” olarak adlandırıldı.

1983’te Goodyear Aeorospace NASA Goddard için Massively Paralel İşlemciler geliştirdi.

1985’te David Gelernter Linda paralel programlama sisteminin temellerini ortaya koydu.

1986’da Parallel Virtual Machine (PVM) projesi dağıtık bilgisayarlarda gerekli olan yazılımların kullanılabilmesi için geliştirildi.

1993’te IBM , RISC RS/6000 işlemcisine dayalı ilk SP1 PowerParallel sistemi piyasaya sürdü.

Gelelim, “neden paralel hesaplama?” sorusuna. Bunun birden çok nedeni var. Sıralayacak olursak;

  • Bellek kullanımını en uygun şekilde gerçekleştirerek, bilgisayardaki yavaşlamaları engellemek
  • Tek CPU yerine çoklu (çift, dört vs.) CPU kullanılması ile sıcaklık artışını engellemek.
  • Hesaplamaların hızlı bir şekilde yapılmasını sağlamak.
  • Hızlı hesaplama ile performans artışı sağlamak.

Paralel hesaplamayla bir problemin; 1. Birden çok parçaya ayrılması sağlanır. 2. Bu parçalar eşit zaman aralıklarına bölünür. 3. Her iş bölümü farklı CPU’larda aynı zamanda eş zamanlı olarak işleme alınır.

Aşağıdaki şekilde bir problemin eş parçalara ayrılarak, eş zamanlı olarak farklı CPU’larda çalıştırılmasını görebilirsiniz.

Paralel hesaplamanın en büyük artısı problemin çözüm zamanını azaltarak sonuca daha hızlı ulaşılmasını sağlamaktır.

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.

Tabi ki bu avantajlarının yanında dezavantajları da vardır. Örneğin paralel hesaplamada parçalara ayrılan problemlerin her biri bilgisayarlarda ve CPU’larda çalıştırıldığı için bu parçalardan herhangi birinde oluşabilecek bir çözümsüzlük veya hata diğer parçalar tamamen çözülse bile problemin genel olarak başarıya ulaşmasına engel olabilir. Ayrıca bu parçaların her birine zaman kısıtlaması konulduğu için her bir görev kendine verilen süre zarfı içerisinde çözülmelidir. Çözülecek veya çözülmüş parçalar birbirleriyle etkileşimde olmalı ve sürekli olarak iletişimlerini korumalıdırlar.

Kaynakça: