Niyazi ELVAN – YTÜ niyazi@yildiz.edu.tr BEOWULF KÜMELERİ Niyazi ELVAN – YTÜ niyazi@yildiz.edu.tr 20.11.2018 Akademik Bilişim 2007 , Kütahya.

Slides:



Advertisements
Benzer bir sunumlar
BULUT BİLİŞİM GÜVENLİK VE KULLANIM STANDARDI M. Raşit ÖZDAŞ Huzeyfe ÖNAL Zümrüt MÜFTÜOĞLU Ekim 2013.
Advertisements

ODTÜ Bilgisayar Mühendisliği Tanıtım Günleri Temmuz 2005.
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
Hat Dengeleme.
BULUT BİLİŞİM M. KÜRŞAT YILDIRIM İÇERİK  BULUT BİLİŞİM NEDİR?  BULUT BİLİŞİM ÖZELLİKLERİ  BULUT BİLİŞİM MİMARİ YAPISI  BULUT BİLİŞİM.
Antalya/Muratpaşa SABİHA GÖKÇEN ANAOKULU EFQM KAZANANLAR KONFERANSI ASLI KANBİR OKUL MÜDÜRÜ 24 Şubat 2016 İstanbul Deniz Müzesi.
HARİCİ VERİ DEPOLAMA SİSTEMLERİ
Bilimsel bilgi Diğer bilgi türlerinden farklı
Yüksek Başarımlı Hesaplama Sistemleri ve Yapılan Çalışmalar Züleyha EZBER
SUNUCU İŞLETİM SİSTEMİ Öğr. Gör. Ümit ATİLA.  1980’li yıllardan günümüze geldikçe, bilgi toplumuna yönelişte teknolojik rota, telekomünikasyon ve iletişim.
Hopfield Ağı Ayrık zamanSürekli zaman Denge noktasının kararlılığı Lyapunov Anlamında kararlılık Lineer olmayan sistemin kararlılığı Tam Kararlılık Dinamik.
Arş.Gör.İrfan DOĞAN.  Bugün otizm tedavisinde en önemli yaklaşım, özel eğitim ve davranış tedavileridir.  Tedavi planı kişiden kişiye değişmektedir,
DONANIM VE YAZILIM.
İNSAN BİLGİSAYAR ETKİLEŞİMİ: BİLİŞSEL BOYUT III. İBE alanında etkileşimi anlamaya çalışan uzmanlar, özellikle şema ve zihinsel modeller üzerinde yoğunlaşırlar.
İŞLETİM SİSTEMLERİ ISE 206 DR. TUĞRUL TAŞCI. Dersin Amacı Bilgisayar sistemlerinin temel organizasyonunu tanımak İşletim sistemlerinin ana bileşenlerini.
İÇİNDEKİLER GRID COMPUTING NEDİR? NASIL ÇALIŞIR? GRID COMPUTING YAPISI
Yazılım Mühendisliği1[ 3.hft ]. Yazılım Mühendisliği2 Yazılım İ sterlerinin Çözümlemesi Yazılım Yaşam Çevrimi “ Yazılım Yaşam çevrimin herhangi bir yazılım.
Şahin GÖKÇEARSLAN. Yazılım Türleri Bilgisayar Yazılımları Yazılım türleri (İşletim sistemleri, paket programlar, programlama dilleri) Yazılım lisans türleri.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
SÜPERBİLGİSAYARLAR ve BEOWULF KÜMELERİ Niyazi ELVAN.
İnternet Uygulamalarında Özgür Yazılımların Yeri Mahir B. Aşut EkoPC Kurucu Ortağı ve Yöneticisi, LKD Üyesi
HARİCİ VERİ DEPOLAMA SİSTEMLERİ. HARİCİ VERİ DEPOLAMA NEDİR?  Harici Veri Depolama: Verilerimizi saklamak ve gelecekte kullanmak amacıyla kullanılan.
NETWORK YÖNETIMI Ş. Bü ş ra Güngör NETWORK YÖNETIMI NEDIR? Network, sunucu, yazıcı, bilgisayar ve modem gibi veri ileti ş im araçlarının güncel.
Kütüphane Otomasyon Sistemleri
Bölüm 2 C Dilinin Temelleri
İnternet'e Bağlanmak İçin Neler Gereklidir?
Hız felaket mi? 32-Bit/64-Bit işlemciler üzerine örnek bir çalışma
BİLGİSAYAR AĞLARI Hakan AYHAN Eğt. Bil. formatörü.
Açık Bulut Nedir ? Neden Açık Bulut ?
İŞLETİM SİSTEMLERİ ISE 206 Dr. Tuğrul TAŞCI.
Algoritma ve Programlamaya Giriş
İç Kontrol Standartlarına Uyum Eylem Planı Toplantısı
Tüm ikililer arasında en kısa yollar
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
DHCP SERVER (dynamic host configuration protocol)
HAZIRLAYAN SEDA KALKANDELEN
İnternet ve WEB Tanımları Html Temel Etiketleri
Ağ İşletim Sistemleri Öğr. Gör. Arif DAŞ.
Bilgi ve İletişim Teknolojileri
DOSYA BÜYÜKLÜKLERİ İkili Sistem Dosya Büyüklükleri ve Hesaplamalar
STORAGE BÜŞRA KARADENİZ
Sunucu Çeşitleri Mehmet Ali Uluekmekçi.
Seminer Dersi Sunumu Sunum Adı Öğrenci Ad ve Soyadı Ay Yıl
İŞLETİM SİSTEMLERİ Bilişim Teknolojileri Araçlarında
Temel Bilgisayar Bilgileri
Bölüm 6 Örgütsel Yönlendirme
Hız felaket mi? 32-Bit/64-Bit işlemciler üzerine örnek bir çalışma
İZMİR ÜNİVERSİTELERİ PLATFORMU DÖNEMİ ÇALIŞMALARI
Tedarik Zinciri Yönetimi:
DÖNEMİ FAALİYET RAPORU Sunucu: Yrd. Doç. Dr. Fevzi HANSU
Prof. Dr. Eşref ADALI Doç. Dr. Şule Gündüz Öğüdücü Sürüm-B
KÜMELİ İŞLEM - BEOWULF Hande DOĞAN - Ersin ER
Gurbet Güntürk Evsel BY423 Güz, 2015
BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ
Bilgi Teknolojileri Hafta 01
EĞİTİME GİRİŞ Mehmet Akif Ersoy Üniversitesi
Dünya Üzerine Yayılmış Çok-Kullanıcılı Çevrim-İçi Eğitsel
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Hata ayıklama da denilen programlama hatalarını bulma ve düzelme işlemine ne denir? a) Veri b) Yazılım c) Bug d) Debugging e) Donanım.
BLM113 Bilgisayar Bilimlerine Giriş
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
BAP Koordinatörlüğünün Görev ve Sorumlulukları
Bilgehan Arslan, Süreyya Gülnar
İleri Algoritma Analizi
8. Ders Tüm ikililer arasında en kısa yollar
Bilişim Güvenliği: Güvenli Hesaplama
Bellek içi raporlama sistemleri için denormalizasyon uygulaması
Örgüt Kuramı, Örgüt Tasarımı ve Örgütsel Değişim
Sunum transkripti:

Niyazi ELVAN – YTÜ niyazi@yildiz.edu.tr BEOWULF KÜMELERİ Niyazi ELVAN – YTÜ niyazi@yildiz.edu.tr 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya İÇERİK Süperbilgisayar ve Beowulf Nedir ? Beowulf mimarisi ve sistem tasarımı Beehive projesi Görev yönetimi ( Torque,Maui ) Sistemin izlenmesi (Ganglia) Paralel Programlama LAM / MPI MPI fonksiyonları ve veri türleri Örnek uygulamalar Sorular 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya SÜPERBİLGİSAYAR Normal bilgisayarlardan daha yüksek işlem yapabilme kapasitesi olan bilgisayar Dünyanın en yüksek işlem gücüne sahip bilgisayar sistemi 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya SÜPERBİLGİSAYARLAR www.top500.org 1. BlueGene/L , IBM İşlem gücü : 360 teraflop Bellek : 32 tebibyte (2^40 byte) 65536 adet çift işlemcili uç birim 32x32x64 3D network (Torus) 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya SÜPERBİLGİSAYARLAR 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya SÜPERBİLGİSAYARLAR www.top500.org 2. RedStorm , Cray Inc. İşlem gücü : 40 teraflop Bellek : 30 terabytes 10368 AMD işlemcili uç birim 240 terabyte disk 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya SÜPERBİLGİSAYARLAR www.top500.org 3. BGW, IBM İşlem gücü : 10 teraflop Bellek : 30 terabytes 4096 tek işlemcili uç birim 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya SIRADA NE VAR ??? 1 Petaflop İşlem gücü ABD Ulusal Bilim Vakfı 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya BEOWULF NEDİR ? İngiliz edebiyatının bilinen en eski yazılı eseridir. Hikayede adı geçen kahraman yarı insan yarı kurt bir varlık. “Yüzüklerin Efendisi” nin yazarının esinlendiği efsane kahramanı 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya BEOWULF NEDİR ? Düşük maliyetli Yüksek işlem gücüne sahip Çoklu yapısı son kullanıcıdan soyutlanmış Birden fazla bilgisayardan oluşan Linux tabanlı işletim sistemi yüklü 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya BEOWULF KÜMELERİ Uç Düğüm 1 A N H T R Uç Düğüm 2 Uç Düğüm 2 Ana Düğüm Ana Düğüm Uç Düğüm 3 Uç Düğüm 3 . Uç Düğüm n Uç Düğüm n 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya BEEHIVE PROJESİ Donanım Yapısı Düğüm ( 5 adet ) IBM Netfinity 6000R 2 x PIII Xeon 700 Mhz CPU 1.5 GB bellek Min 72 GB SCSI disk 1 Gbps NIC Anahtarlama birimi Cisco 3500-12G 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya BEEHIVE PROJESİ Disk Mimarisi / /home /usr /lib /tmp bee00 NFS / /home /usr /lib /tmp bee01 . 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya BEEHIVE PROJESİ Ağ Yapısı beehive.yildiz.edu.tr bee00 A N H T R L M B İ bee01 INTERNET bee02 bee03 bee04 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya BEEHIVE PROJESİ Kurulum ( Ana düğüm) Debian base sistem Apache2 NFS sunucu Samba sunucu DHCP sunucu Winbind rsh sunucu Lam MPI Torque (pbs_server, pbs_mom) Maui Ganglia (gmetad, gmond) 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya BEEHIVE PROJESİ Kurulum ( Uç düğüm) Debian base sistem NFS istemci DHCP istemci rsh sunucu Lam MPI Torque (pbs_mom) Ganglia (gmond) 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya BEEHIVE PROJESİ Yapılandırma (ana düğüm) NFS sunucu (/etc/exports) DHCP sunucu Yapılandırma (uç düğüm) Servislerin açılış sırası Şifre sorgulaması olmadan rsh bağlantısı /etc/fstab 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya BEEHIVE PROJESİ Yeni uç birimlerin eklenmesi İlk uç birimin diski dd komutu ile diğer birimin diskine kopyalanır. # dd if=/dev/sda of=/dev/sdb Disk kendi sistemine takılır ve sistem başlatılır. 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya BEEHIVE PROJESİ Avantajlar Yönetim kolaylığı /home paylaşımı /usr ve /lib paylaşımı Ölçeklenebilirlik Disk kopyalama ile hızlı çoğullama 20.11.2018 Akademik Bilişim 2007 , Kütahya

Beowulf Cluster Yönetimi Yasin Bahtiyar – YTÜ yasin@yildiz.edu.tr 20.11.2018 Akademik Bilişim 2007 , Kütahya

Sistem yapısı nasıl olmalı Yüksek başarımlı hesaplama Paralel işlem mimarisi Çoklu kullanıcı sistemi Paralel işlem/Sıralı Görev Ucuz maliyet 20.11.2018 Akademik Bilişim 2007 , Kütahya

BeeHive Mimarisi / Cluster Yönetimi Torque 2.1.6 Lam-MPI 7.1.2 Maui 3.2.6p19 Ganglia 3.0.4 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Torque Nedir? Terascale Open-Source Resource and QUEue Manager Cluster Resources Inc. tarafından üretildi. Bir kaynak ve kuyruk yöneticisi. OpenPBS temel alınarak ortaya çıkarılmıştır. 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya OpenPBS nedir? PBS: Portable Batch System 1990 larda NASA için geliştirilmiştir. Altair Grid Tech. Tarafından ortaya çıkarılmıştır. Artık daha fazla desteklenmeyen bir proje Kurumsal türevi PBS Pro (Altair) 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Torque = OpenPBS+ OpenPBS v2.3.12 üzerine geliştirilmiş bir proje. 15 TF/2500 CPU yönetebilir. Geliştirilmiş hata kontrolü Geliştirilmiş server2mom iletişim protokolü OpenPBS üzerine 1200+ patch 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Torque Bileşenleri PBS Server:pbs_server Kaynak ve kuyruk yönetimini yapan temel bileşen Her clusterda sadece bir tane (sunucu uç) 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Torque Bileşenleri PBS MOM:pbs_mom Her bir uçta yer alır Uç hakkında bilgi verir. pbs_server dan gelen istekleri yerine getirir 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Torque Bileşenleri PBS Scheduler:pbs_sched Sunucuda çalışır Bir kuyruk yöneticisidir Kuyruğa iş ekleme, işi bekletme, iptal etme gibi fonksiyonları yerine getirir 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Torque Kurulumu tar -xzvf torqueXXX.tar.gz cd torqueXXX ./configure make make install make packages 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Torque Kurulumu Mpi tm boot module için: ln -s /usr/local/lib/libtorque.a /usr/local/lib/libpbs.a ln -s /usr/local/lib/libtorque.la /usr/local/lib/libpbs.la 20.11.2018 Akademik Bilişim 2007 , Kütahya

Torque Konfigürasyonu pbs_server # pbs_server –t create # qmgr (server konfigurasyonu) $TORQUE_HOME/server_priv/nodes 20.11.2018 Akademik Bilişim 2007 , Kütahya

Torque Konfigürasyonu pbs_mom $TORQUE_HOME/server_name $TORQUE_HOME/mom_priv/config # pbs_mom (her bir uç için) # qterm -t quick # pbs_server Kullanıcılar için şifresiz ssh 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Torque Komutları Komut Açıklama momctl MOM (node execution) yönetimi / durdurulması pbsnodes Uç bilgisayardan bilgi alma – uç bilgisayar yönetimi qalter Kuyruktaki işlerin özelliklerinin değiştirilmesi qdel Kuyruktaki işlerin silinmesi qhold Kuyruktaki işin bekletilmesi qmgr manage policies and other batch configuration qrls Kuyruktaki işin devam ettirilmesi qrun Kuruktaki bir işin başlatılması qsub Kuyruğa yeni iş eklenmesi qstat Kuyruktaki iş hakkında bilgi alınması qterm Pbs server in durdurulması tracejob TORQUE loglarına göre bir işin takip edilmesi 20.11.2018 Akademik Bilişim 2007 , Kütahya

Lam-Mpi rsh boot module 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Lam-Mpi tm boot module 20.11.2018 Akademik Bilişim 2007 , Kütahya

Lam-Mpi (tm boot) & Torque lamd pbs_mom tarafından yönetilir Daha hızlı lamboot Bu desteği sağlamak için: ./configure --with-boot=tm make && make install 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Ganglia Dağıtık sistemleri izleme yazılımı Cluster ve grid yapılarında kullanılır gmond gmetad Ganglia web arayüzü rrdtool kullanarak xml şemalarını grafiklere çevirir. 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya gmond Her bir uç için gerekli bilgileri alır ve xml şeması olarak yayın yapar /etc/init.d/ganglia-monitor /etc/gmond.conf name “BeeHive” owner “YTU” trusted_hosts 10.0.0.10 //(gmetad) 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya gmetad gmond lerden aldığı xml şemalarından bir rrd veritabanı oluşturur. Genellikle sadece sunucuda çalışır. /etc/init.d/gmetad 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya gmetad /etc/gmetad.conf data_source "bee00" bee00 data_source "bee01" bee01 data_source "bee02" bee02 data_source "bee03" bee03 data_source "bee04" bee04 gridname "YTU" 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Ganglia Web Frontend Rrd veritabanındaki bilgilere göre bir rapor oluşturan web arabirimidir. rrdtool kullanır. 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Maui Scheduler Bir scheduler, aslında kuyruk yöneticisi olarak çalışan bir kullanıcının yaptığı işleri yapar. Kaynak yöneticisine ne yapacağını söyler. İleri seviye scheduler.pbs_sched den daha iyi. Kaynak yönetimini optimize eder 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Maui kurulumu > gtar -xzvf maui-<VERSION>.tar.gz > cd maui-<VERSION> > ./configure > make > sudo make install 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Konfigürasyon vi /usr/local/maui/maui.cfg SERVERHOST bee00 ADMIN1 root RMCFG[BEE00] TYPE=PBS 20.11.2018 Akademik Bilişim 2007 , Kütahya

Maui komutlarından bazıları Açıklama canceljob İşi iptal eder checkjob İş durumu hakkında ayrıntılı bilgi verir checknode Uç durumu hakkında ayrıntılı bilgi verir diagnose Kaynaklar, iş yükü ve scheduling ile ilgili rapor verir. mjobctl İş kontrolu ve modifikasyon runjob Bir işi anında çalıştırmak için kullanılır showconfig Scheduler konfiguresyonunu gösterir showq Kuyruk hakkında bilgi verir showres Rezervsyonlar hakkında bilgi verir showstart Tahmini olarak bir işin ne zaman başlayacapı konusunda fikir verir showstate Kaynakların durumunu gösterir Showstats Kullanım istatistiklerini gösterir 20.11.2018 Akademik Bilişim 2007 , Kütahya

Eş Zamanlı (Concurrent) Programlama Z. Cihan TAYŞİ cihan@ce.yildiz.edu.tr 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Konu Başlıkları Eş zamanlı programlama nedir Eş zamanlılık modelleri Eş zamanlı program tasarımı LAM – MPI Örnek uygulamalar 20.11.2018 Akademik Bilişim 2007 , Kütahya

Eş Zamanlı Programlama 1960’larda ortaya atılmıştır. Channels, Device controller Bir işin birden fazla parçaya bölünmesi Parçaların farklı süreçler tarafından işlenmesi 20.11.2018 Akademik Bilişim 2007 , Kütahya

Eş Zamanlılık Modelleri Multi-Threaded programlama Posix Threads, pthreads OpenMP Parallel programlama Shared Memory Dağıtık (Distributed) programlama Message Passing Interface, MPI Parallel Virtual Machine, PVM 20.11.2018 Akademik Bilişim 2007 , Kütahya

Eş Zamanlı Program Tasarımı Problemin analiz edilmesi Problemin parçalara ayrılması (Partitioning) Problem parçaları arasındaki iletişim Senkronizasyon (Synchorization) Yük dağılımı Eş zamanlı programlamanın limitleri ve maliyeti 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Problem Analizi Eş zamanlı hesaplama Matris işlemleri N-Body problemi Seri hesaplama Fibonacchi sayıları F(k + 2) = F(k + 1) + F(k) 1, 1, 2, 3, 5, 8, 13, 21 20.11.2018 Akademik Bilişim 2007 , Kütahya

Problemin Parçalara Ayrılması Veriye göre parçalama (Domain Partitioning) 20.11.2018 Akademik Bilişim 2007 , Kütahya

Problemin Parçalara Ayrılması Fonksiyona göre parçalama (Functional Partitioning) 20.11.2018 Akademik Bilişim 2007 , Kütahya

Problem Parçaları Arası İletişim Parçalar arasında iletilecek veri miktarı Verinin iletim süresi parçanın gerçekleştirilme süresine göre çok az olmalı Parçalar arası iletişimin sıklığı Fiziksel iletişim hızı İletişim Tipi Senkron (blocking) Asenkron (non-blocking) 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Senkronizasyon Bariyer Bariyere ulaşan görev, diğer tüm görevler bariyere ulaşana kadar bekler. Tüm görevler bariyere ulaştığında sekronizasyon işlemi gerçekleştirilir. Lock / semaphore Ortak kaynakların düzgün kullanımı içindir Bir görev kaynağı kullanırken diğer görevlerin beklemesi sağlanır. 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Yük Dağılımı Yüklerin görevler arasında eşit dağıtılması Dizi ve Matris işlemleri Yüklerin dinamik olarak dağıtılması N-Body problemi 20.11.2018 Akademik Bilişim 2007 , Kütahya

Eş Zamanlı Programlama Maliyetleri Karmaşıklık Uygulama, Haberleşme, Senkronizasyon Taşınabilirlik Programlama arayüzleri Ölçeklenebilirlik ( Scalability) Geliştirilen algoritma Altyapı Kaynak İhtiyacı 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Neden MPI ??? MPI çeşitli kurum ve kişilerin katılımıyla oluşturulmuş olan bir standart. Değişik kurumlar tarafından geliştirilen farklı versiyonları mevcuttur. MPICH LAM-MPI Open MPI Taşınabilir (Portable) bir yapıya sahiptir. Tamamen asenkron iletişim özelliğine sahiptir. Homojen yapılarda çalışmak üzere tasarlanmış 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya LAM – MPI Ohio Supercomputing Center tarafından geliştirilmeye başlandı. Tasarımında görev alanların birçoğu Notre Dame Üniversitesi, Bilimsel Hesaplama Laboratuarına (The Laboratory of Scientific Computing) geçti. Notre Dame Üniversitesine geçildikten sonra 6.2b ve 6.3 versiyonları kullanıma sunuldu. 2001 yılında, LSC Indiana Universitesi’ne geçti. Grubun ismi Open Systems Laboratory (OSL) olarak değişti. 7.1.2 versiyonu kullanıma sunuldu. Bu grup şu anda Open MPI adında yeni bir MPI sürümü üzerinde çalışmaktadır. 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya MPI Fonksiyonları int MPI_Comm_size(MPI_Comm comm,int *size) int MPI_Comm_rank(MPI_Comm comm,int *rank) int MPI_Recv(void *buf, int count, MPI_Datatype dtype, int src, int tag, MPI_Comm comm, MPI_Status *stat) int MPI_Send(void *buf, int count, MPI_Datatype dtype, int dest, int tag, MPI_Comm comm) int MPI_Bcast(void *buff, int count, MPI_Datatype datatype, int root, MPI_Comm comm) int MPI_Scatter(void *sbuf, int scount, MPI_Datatype sdtype, void *rbuf, int rcount, MPI_Datatype rdtype, int root, MPI_Comm comm) int MPI_Gather(void *sbuf, int scount, MPI_Datatype sdtype, void *rbuf, int rcount, MPI_Datatype rdtype, int root, MPI_Comm comm) 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya Örnek – I “Hello World” #include <stdio.h> #include <mpi.h> int main ( int argc, char *argv[] ) { int myrank, size; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myrank); MPI_Comm_size(MPI_COMM_WORLD, &size); if (myrank == 0) { printf("I'm the master\n"); }else { printf("I'm slave (%d)\n",myrank); } MPI_Finalize(); return 0; 20.11.2018 Akademik Bilişim 2007 , Kütahya

Örnek – II “Matris Çarpımı” Matris boyutları A Matrisinin boyutları : 4000 x 100 B Matrisinin boyutları : 100 x 40 Problemin bölünmesi Birinci matrsinin satırları işlemler arasında paylaştırılabilir. İşlemler arası iletişim Bir işlem yönetici rolü üstlenmeli Her işleme kendi paylarına düşen satırlar gönderilmeli Her işleme B Matrisinin tamamı gönderilmeli Her işlemden sonuçlar alınmalı 20.11.2018 Akademik Bilişim 2007 , Kütahya

“Matris Çarpımı” – 1. Çözüm Yönetici İşlem Hesaplama Yapılacak Matrsilerin Oluşturulması if(rank==0) { // Yonetici process rowspp = M1_RSIZE / size; offset = rowspp; for (i=1; i<size; i++) { MPI_Send(&rowspp, 1, MPI_INT, i, TAG1, MPI_COMM_WORLD); datacount = rowspp*M1_CSIZE; MPI_Send(&m1[offset][0], datacount, MPI_DOUBLE, i, TAG1, MPI_COMM_WORLD); datacount = M2_RSIZE*M2_CSIZE; MPI_Send(&m2, datacount, MPI_DOUBLE, i, TAG1, MPI_COMM_WORLD); offset = offset + rowspp; } Kendi Payına Düşen Kısmın Hesaplanması datacount = rowspp * M2_CSIZE; for(i=1;i<size;i++) { MPI_Recv(&mr[offset][0], datacount, MPI_DOUBLE, i, TAG2, MPI_COMM_WORLD, &status); printf("Calculation finished \n"); 20.11.2018 Akademik Bilişim 2007 , Kütahya

“Matris Çarpımı” – 1. Çözüm Diğer İşlemler }else { // Diger islemler MPI_Recv(&rowspp, 1, MPI_INT, 0, TAG1, MPI_COMM_WORLD, &status); datacount = rowspp*M1_CSIZE; MPI_Recv(&m1, datacount, MPI_DOUBLE, 0, TAG1, MPI_COMM_WORLD, &status); datacount = M2_RSIZE*M2_CSIZE; MPI_Recv(&m2, datacount, MPI_DOUBLE, 0, TAG1, MPI_COMM_WORLD, &status); Kendi Payına Düşen kısmın Hesaplanması datacount = rowspp * M2_CSIZE; MPI_Send(&mr, datacount, MPI_DOUBLE, 0, TAG2, MPI_COMM_WORLD); } 20.11.2018 Akademik Bilişim 2007 , Kütahya

“Matris Çarpımı” – 2. Çözüm int main ( int argc, char *argv[] ) { int i,j,k; int rowspp, offset, datacount; int rank,size; double sum; double m1[M1_RSIZE][M1_CSIZE], m2[M2_RSIZE][M2_CSIZE], mr[M1_RSIZE][M2_CSIZE]; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); if(rank==0) {// Master process Matrisleri oluştur. rowspp = M1_RSIZE / size; printf("rowspp : %d\n",rowspp); offset = rowspp; } 20.11.2018 Akademik Bilişim 2007 , Kütahya

“Matris Çarpımı” – 2. Çözüm MPI_Bcast(&rowspp, 1, MPI_INT, 0, MPI_COMM_WORLD); datacount = M2_RSIZE*M2_CSIZE; MPI_Bcast(&m2, datacount, MPI_DOUBLE, 0, MPI_COMM_WORLD); datacount = rowspp*M1_CSIZE; MPI_Scatter(&m1, datacount, MPI_DOUBLE, &m1, datacount, MPI_DOUBLE, 0, MPI_COMM_WORLD); Kendi Payına Düşen kısmın Hesaplanması datacount = rowspp * M2_CSIZE; MPI_Gather(&mr, datacount, MPI_DOUBLE, &mr, datacount, MPI_DOUBLE, 0, MPI_COMM_WORLD); MPI_Finalize(); return 0; } 20.11.2018 Akademik Bilişim 2007 , Kütahya

Performans Karşılaştırmaları 20.11.2018 Akademik Bilişim 2007 , Kütahya

Akademik Bilişim 2007 , Kütahya SORULAR ??? 20.11.2018 Akademik Bilişim 2007 , Kütahya