Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

MPI İle Paralel Programlama Tunahan Altıntop. Neden Paralel Hesaplama? Paralel İşlem Seri Hesaplama Nedir? Paralel Hesaplama Nedir? Bellek Modelleri :

Benzer bir sunumlar


... konulu sunumlar: "MPI İle Paralel Programlama Tunahan Altıntop. Neden Paralel Hesaplama? Paralel İşlem Seri Hesaplama Nedir? Paralel Hesaplama Nedir? Bellek Modelleri :"— Sunum transkripti:

1 MPI İle Paralel Programlama Tunahan Altıntop

2 Neden Paralel Hesaplama? Paralel İşlem Seri Hesaplama Nedir? Paralel Hesaplama Nedir? Bellek Modelleri : Dağıtık Bellekli Model Dağıtık Bellekli Model Ve C Dili İçin Paralel Programlama Adımları MPI Sürümleri MPICH Kurulumu Ve Çalışırlığının Test Edilmesi DevC++ Uygulamasının MPI İçin Konfigrasyonu MPI Nedir? MPI Kullanmanın Nedenleri MPI Fonksiyonları ve MPI Programının Genel Yapısı MPI İle Asal Sayıların Bulunması Uygulaması Sorular? Konular:

3 Zaman: Daha büyük problemleri daha uygun sürelerde çözebilme Performans: Performansı artırmanın önemli bir yolu Maliyet/Performans: Vektör bilgisayarların maliyetlerinin çok fazla olması Bellek: Çoğu problemin kaçınılmaz ihtiyacı Gittikçe Artan İhtiyaçlar: Dağıtık veritabanları, görselleştirme kalitesinin artması gibi ihtiyaçlar… Neden Paralel Hesaplama?

4 Amaç: 2 işlemci ile hızlanmayı iki katına çıkarmak Örnek: 8 sayının toplanması Seri(1 işlemci) Paralel(2 işlemci) Adım Hızlanma: 1.75x 36 7 Adım Paralel İşlem

5 Yazılım bilgisayar üzerindeki tek Merkezi İşlem Birimi üzerinde çalışmaktadır Problem komutlara ayrılmıştır Komutlar ardışık olarak çalıştırılmaktadır Herhangi bir anda sadece bir komut çalıştırılabilmektedir. Seri Hesaplama Nedir?

6 Bir problemi çözmek için çok sayıdaki hesaplama kaynağı aynı anda kullanılmasıdır. Problem çok sayıda CPU üzerinde çalışmaktadır Her bir parça kümesi komutlara ayrılır Her bir parçanın komutları aynı anda farklı CPU’lar üzerinde çalıştırılabilir Paralel Hesaplama Nedir?

7 Bellek Modelleri: Dağıtık Bellekli Model Farklı bellek ve farklı işlemcilerin network aracılığıyla haberleştirilmesi ve küme yapısı (Cluster) sağlanması

8 Paralel Programlama Adımları Programlama Dili + Paralel Kütüphane = Paralel Program (C) Dağıtık Bellekli Model PVM (Parallel Virtual Machine) MPI (Message Passing Interface)

9 Ücretsiz: –MPICH –OpenMPI Ücretli: –SUN MPI –Intel MPI MPI Sürümleri

10 MPICH ücretsiz olarak kullanılabilen ve Windows işletim sistemi için ideal olarak kullanılabilecek bir MPI sürümüdür Demo uygulaması MPICH2 1.1 sürümü ile gerçekleştirilmiştir Uygulamanın çalışması için.netFramework2.0 veya üzeri gereklidir. MPICH çalıştırılacak olan bilgisayarlarda aynı isimle ve aynı parolaya sahip kullanıcı oluşturulmalıdır Önemli: Firewall ayarlamaları yapılmalıdır MPICH Kurulumu

11 Kurulum sonra aşağıdaki resimde de görülen passphrase kısmına her bilgisayarda da aynı olacak şekilde şifre girilmelidir. MPICH Kurulumu

12 Bu anlatımda komut penceresinden çalışmak tercih edilmiştir. Bu işlemi daha rahat gerçekleştirebilmek için bilgisayarın ortam değişkenlerindeki path kısmına C:/Program Files/MPICH2/bin dizini eklenmelidir. Bu işlemden sonra komut penceresinden direk olarak mpiexec komutu çalıştırılabilir duruma gelmiş olur. MPICH Kurulumu

13 mpiexec –localonly –n 2 hostname Bu komut ile bilgisayarımızın adı ekranda iki kere yazılacaktır. Ağda kullanacağımız diğer bilgisayarlar ile çalışmasını test etmek içinde mpiexec –hosts 2 hostname Bu komutların denenmesi MPICH Test Edilmesi

14 MPI uygulamalarını C programlama diliyle geliştirmek için ücretsiz bir yazılım olan DevC++ uygulaması kullanılabilir. MPI uygulamalarının DevC++’ da çalışabilmesi için include ve lib parametreleri DevC++ daki projemize eklenmelidir. Aksi takdirde programımız çalışmaz. Program üzerinde ayarlamaların gösterilmesi DevC++ Uygulamasının MPI İçin Konfigrasyonu

15 MPI standartları belirlenmiş mesajlaşma kütüphanesidir (Message Passing Interface) MPI arayüzü mesajlaşmalı programlama için geniş kullanıma sahip standarttır. Standart: –Pratik –Taşınabilirlik –Etkili –Esnek MPI Nedir?

16 Standart: Standart olarak kabul edilen kütüphanedir (1993) Taşınabilirlik: MPI standartlarını destekleyen farklı platformlar arasında uygulama taşımaları sonucunda kod üzerinde değişiklik yapmaya gerek yoktur Performans Fırsatları: Yazılım geliştiricileri donanımın özelliklerine göre ayarlama yapabilir Fonksiyon Yapısı: MPI 1 den MPI 2 ye doğru bulundurulan fonksiyon sayısı artmıştır Erişilebilirlik: MPI in farklı şirket ve gönüllüler tarafından geliştirilen sürümlerine kolayca erişilebilir MPI Kullanmanın Nedenleri?

17 Başlatma/Sonlanırma Fonksiyonları Noktadan Noktaya Haberleşme Fonks. Toplu Haberleşme Fonksiyonları Haberleşme Topolojisi Fonksiyonları Kullanıcı Veri Tipi Tanımlama Fonksiyonları Araçlar (Zaman ölçme gibi) MPI Fonksiyonları

18 MPI Başlık Dosyası: #include MPI Çevresini Hazırlama: MPI_Init MPI Çağrıları ve Problemin Çözülmesi MPI Çevresini Sonlandırma: MPI_Finalize MPI Programının Genel Yapısı

19 Haberleşme: –Nesneleri –Haberleşme Dünyaları –Grupları MPI fonksiyonlarının çoğu haberleşme dünyasına ihtiyaç duyar Bu ihtiyaca MPI süreçlerinin tamamını kapsayan MPI_COMM_WORLD değişkeni cevap verir MPI_Comm_size: Haberleşme dünyası ile ilişkili grubun boyutunu belirtir. (işlemci sayısı) MPI_Comm_rank: Sürecin haberleşme dünyasındaki sırasını belirtir. 0 dan başlar ardışık, tekil ve tam sayıdır. MPI Haberleşme Ortamının Kurgulanması

20 Amaç: –MPI çevresini hazırlamak –MPI çevresini sonlandırmak –MPI çevresini sorgulamak –Sıra numarası v.s. belirlemek MPI_Init: –MPI çevresini hazırlar –Her MPI programında mutlaka bulunur –Herhangi bir MPI fonksiyonundan önce çağrılmalıdır. –MPI programı içinde sadece bir kere çağrılır –Örnek kullanımı: –MPI_Init(int *argc, char **argv[]) MPI Çevresel Yönetim Fonksiyonları

21 MPI_Finalize: –MPI çalışma çevresini sonlandırır –Bu fonksiyondan sonra çağrılan MPI fonksiyonları haliyle geçersizdir –Örnek kullanımı: –MPI_Finalize(void) MPI_Comm_size: –Haberleşme dünyası ile ilgili grubun kaç sürece sahip olduğunu belirler –Genellikle MPI_COMM_WORLD haberleşme ortamı uygulamanın kullanacağı süreç sayısını belirtir. –Örnek kullanım: –int MPI_Comm_size(MPI_COMM_WORLD, int *size) MPI Çevresel Yönetim Fonksiyonları

22 MPI_Comm_rank: –Çağrıldığı sürecin haberleşme ortamındaki sıra numarasını belirtir –MPI_COMM_WORLD haberleşme ortamında sıra numarası 0 ile (Süreç-1) arasında tekil tamsayıdır –Örnek kullanım: –int MPI_Comm_rank(MPI_COMM_WORLD, int *rank) MPI_Send: –İstenilen veriyi istenilen noktaya bloklu şekilde gönderir –Basit bloklu gönderme işlemidir. –Fonksiyon gönderici sürecinin uygulama tamponu tekrar kullanmaya uygun olduğunda sonlanmaktadır. MPI Çevresel Yönetim Fonksiyonları

23 MPI_Recv: –Belirli bir veriyi istenilen kaynaktan bloklu bir şekilde alır. –Fonksiyon alıcı süreci bir mesaj alana ve uygulama tamponunda istenilen veri olana kadar sonlanmayacaktır. MPI Çevresel Yönetim Fonksiyonları

24 MPI İle Asal Sayıların Bulunması Uygulaması Sorular? Son


"MPI İle Paralel Programlama Tunahan Altıntop. Neden Paralel Hesaplama? Paralel İşlem Seri Hesaplama Nedir? Paralel Hesaplama Nedir? Bellek Modelleri :" indir ppt

Benzer bir sunumlar


Google Reklamları