Paralel çalışabilen sistemler artık hemen hemen her yerde karşımıza çıkmaktadır. Günümüzde çok çekirdekli bir işlemci kullanmayan bir dizüstü bilgisayar, masaüstü veya sunucu bulmak oldukça zordur. Bununla birlikte, çoğu bilgisayar mühendisleri paralel programlama hakkında çok az tecrübeye sahip veya az deneyimli bir şekilde mezun olmaktadır. Her ne kadar, birçok üniversite son sınıflara doğru seçmeli ders olarak paralel hesaplamayı sunmakta iseler de öğrenciler zorunlu alması gereken derslere öncelik tanıdıklarından çok kanallı veya çok işlemli bir program yazma becerisinden yoksun olarak mezun olmaktadır. Bu durumun değişmesi gerektiği açıktır. Birçok program tek bir çekirdek üzerinde tatmin edici bir performans elde edebilmesine rağmen, Bilgisayar bilimcileri, paralellik ile elde edilebilecek geniş kapsamlı performans iyileştirmelerinin farkında olmalı ve ihtiyaç duyulduğunda bu potansiyelden yararlanabilmelidir.
Bu kitap kısmen bu problemi çözmek için yazılmıştır. Ayrıca, paralel programlama kavramını açıklayan ilk kitaplardan biridir. Paralel programlama için en yaygın kullanılan uygulama programlama arayüzlerinden (API) ikisi olan MPI ve OpenMP ile paralel programların yazılmasına bir giriş sağlanmaktadır. Örneklerin birçoğu günümüzde yaygın kullanıma sahip C ve Python dili ile kodlanmıştır. Hedef kitle, paralel programlar yazması beklenilen öğrenciler, araştırmacılar ve profesyonellerdir. Kitaptan en iyi bir şekilde yararlanabilmek için önkoşullar minimal düzeyde tutulmuştur. Açıkçası, lise düzeyinde bir matematik ve C dilinde temel programlar yazma becerisi bu kitabı anlayabilmek ve uygulayabilmek için yeterli gelmektedir.
Paralel hesaplama ile önceden deneyime sahip olmayan okuyucular ilk önce Bölüm 1'i okumalıdır. Burada, paralel sistemlerin neden bilgisayar mimarisine ve alanına hâkim olduğuna dair açıklama bulunmaktadır. Bu bölüm ayrıca paralel sistemlere ve paralel programlamaya kısa bir giriş sağlar. Bölüm 2, 3 ve 4 sırasıyla OpenMP, MPI ve Python ile programlamaya dairdir. 2. ve 3. Bölümde kodlanan örnekler C programlama dili ile yazılmıştır, çünkü kullanılan tüm API'lar C-dili arayüzlerine sahiptirler. Bununla birlikte, C++ ve Java programcıları C dili söz dizimine aşina olduklarından bölümlerde yazılan C kodlarını rahatlıkla anlayacaklardır. 4.Bölümdeki örnek kodlarda ise günümüzde popüler bir dil olan Python 3.7 dili kullanılmıştır.
Umuyorum ki, okuyucular OpenMP, MPI ve Python'un tam anlamıyla kodlanma tarzını ve gücünü kullanmayı öğrenirler. Bu kitap paralel programlamaya yeni başlayanlara mükemmel bir giriş özelliğini taşımaktadır. Kitapta bulunan bütün örnek kodlar ayrı ayrı özenle test edilmiş ve düzgün çalıştığı doğrulanmıştır. Yine de gözden kaçan eksiklikler olabilir. Bu nedenle, okuyucuların bulduğu sorunları ve/veya varsa önerilerini [email protected] e-posta adresine göndermelerini rica ediyorum.