Paralel Programlamaya Giriş

Slides:



Advertisements
Similar presentations
I ASİMO I ASİMO PREPARED: CENGİZ MURAT TEKİNBÜĞRÜ English Course Presentation TURKEY Mechatronics Engineering at SAKARYA UNIVERSITY PREPARED: CENGİZ.
Advertisements

Atama ve eşleme (eşleştirme) problemleri (Matching and Assignment problems)
MPI İle Paralel Programlama Tunahan Altıntop
Logical Design Farid Rajabli.
İŞ SIRALAMA VE ÇİZELGELEME DERS 5
1 T.C. Yükseköğretim Kurulu DİPLOMA EKİ PROGRAM ÖĞRENME ÇIKTILARI (KAZANIMLARI) DİPLOMA EKİ EĞİTİM SEMİNERİ Dönemi Bologna Sürecinin Türkiye’de.
S 2/e C D A Computer Systems Design and Architecture Second Edition© 2004 Prentice Hall Chapter 6 Overview Number Systems and Radix Conversion Fixed point.
Bir Problemin Programa Dönüştürülme Süreci
21. Yüzyılda Tıpta Kök Hücrenin Yeri. “ I magination is more Important than knowledge ” Albert Eistein.
Hareket halindeki insanlara ulaşın.Mobil Arama Ağı Reklamları Reach customers with Mobile Search Network.
İşletim Sistemi.
Paralel Programlamaya Giriş
BİLGİSAYAR SİSTEMLERİ DERSİ
DEVRE TEOREMLERİ.
Bilgisayarlar kodu nasıl işler?
CACHE MEMORY Ersin ERSOY
COMPANY Veritabanı Örneği (Gereksinimler)
Kampanyanızı optimize edin. Görüntülü Reklam Kampanyası Optimize Edici'yi Kullanma Display Ads Campaign Optimizer. Let Google technology manage your diplay.
Chapter 5: Threads (İş Parçacıkları)
BM-305 Mikrodenetleyiciler Güz 2015 (6. Sunu) (Yrd. Doç. Dr. Deniz Dal)
Yapısal Programlama Yüksek Düzeyli Dillerin Gelişim Süreci – , Fortran (by IBM), for creating scientific and engineering applications, first commercial.
BİLGİSAYAR MİMARİLERİ 12.Hafta: Çok İşlemcili Sistemler
Database for APED Büşra Bilgili | Emirhan Aydoğan | Meryem Şentürk | M. Arda Aydın COMPE 341.
BİLGİSAYAR MİMARİLERİ 1.Hafta: Bilgisayar Mimarisine Giriş
Environmental pollution Traffic Infrastructural problems Unconscious employee Urbanization and industrialization Lack of financial sources.
BM-308 Paralel Programlamaya Giriş Bahar 2016 (3. Sunu) (Yrd. Doç. Dr. Deniz Dal)
Muammer Benzeş MVP (IIS) Bulut Bilişim /muammerbenzes.
ULUBATLI HASAN PRIMARY SCHOOL (ULUBATLI HASAN İLKÖĞRETİM OKULU) BERGAMA, İZMİR TURKEY.
Nasa programs for students.
Mesleki Yabancı Dil HARDWARE UNITS.
Improvement to Rankine cycle
Practice your writing skills
CHAPTER Section 1.1 What Is Entrepreneurship? Section 1.2 Characteristics of an Entrepreneur Introduction to Entrepreneurship.
DISCUSSION
CHILD PORNOGRAPHY IŞIK ÜNİVERSİTESİ
Sieve Analysis Concrete Mix Design Technician School.
Mesleki Yabancı Dil HARDWARE UNITS.
Paralel Programlamaya Giriş
CHAPTER 1 uzm. Psk. Özlem ataoğlu
YDI101 YABANCI DIL 1 HAFTA 1. We use subject pronouns when the pronoun is the subject of the sentence. When the subject appears the second time, we don’t.
Femore Cream femore medikal jel nedir government shutdown on GE's businesses, Rice remained bullish on GE's renewed focus on core infrastructure areas.
Present Perfect & Simple Past I love to travel. I have been to more than 10 countries.
BİLİMSEL ÇALIŞMA BASAMAKLARI SCIENTIFIC WORKING STEPS MHD BASHAR ALREFAEI Y
Ac POWER ANALYSIS Part III..
Bilgisayarlar kodu nasıl işler?
Bir Problemin Programa Dönüştürülme Süreci
The Need for Program Design
Organizational Communication
IBM Bulut Servisleri ile Yeni Çözümler Oluşturun L
WEEKS Dynamics of Machinery
Döngüler ve Shift Register
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
İstanbul Boğazı. İstanbul Boğazı İSTANBUL BOĞAZI ( BOSPHORUS) İstanbul Boğazı, Karadeniz ile Marmara Denizi’ni birleştiren su yoluna verilen isimdir.
NİŞANTAŞI ÜNİVERSİTESİ
The Need for Program Design
“Differentiation for making a positive Difference!!!!”
BİLL GATES Şule Eslem ÖZTÜRK NUN OKULLARI Prep-A.
Multipoint programlama
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Before the Battle of Çanakkale. Why a Front in Çanakkale was Opened? In the summer of 1914, the war continued in Europe with all its intensity, and by.
THE MYSTERIOUS ISLAND JULES VERNE. INFORMATION ABOUT THE BOOK  Name of the book: The Mysterious Island  Author: Jules Verne  Type: Adventure  Number.
PREPARED BY: 9-B STUDENTS. Sumerians, who laid the foundations of great civilizations and the world cultural heritage, emerged to the st The Sumerians.
Bilgisayarlar kodu nasıl işler?
According to string theory, every substance in the universe consists of one thing. These strings, which vibrate in different channels, create everything.
SUBJECT NAME Prepeared by Write the names of group members here
NİŞANTAŞI ÜNİVERSİTESİ
Presentation transcript:

Paralel Programlamaya Giriş BM-308 Paralel Programlamaya Giriş Bahar 2017 (3. Sunu) (Yrd. Doç. Dr. Deniz Dal)

Bir Elin Nesi Var İki Elin Sesi Var High Performance Computing (HPC) yani Yüksek Başarımlı Hesaplama (YBH) kavramının temelinde bilgisayarların hesaplama (işlemci) güçlerini bir araya getirerek tek bir sistem gibi çalıştırma düşüncesi yatmaktadır. Bu sayede elde edilen yüksek hesaplama gücü ile sonuç üretmesi günler hatta haftalar alan programlardan daha kısa sürede ve maksimum başarım ile sonuç alınması hedeflenmektedir.

KÜME (CLUSTER) MİMARİSİ İLE YBH Cluster mimarisi, birden fazla sıradan bilgisayarın ya da sunucunun birbirine bir ağ üzerinden bağlanması ve böylece tek bir yüksek performanslı yapı olarak çalıştırılması için geliştirilmiş bir teknolojidir. Yüksek başarımlı hesaplamalarda daha kısa sürede daha kesin sonuç elde etmek için işlemci sayısı ve hafıza miktarlarının artırılması gerekmektedir. İşlemci sayısının tek bir sunucu üzerinde artırıldığı durumda belli bir işlemci sayısından sonra maliyet katlanarak artar. Bu durumda makul bir maliyete sahip 2 (dual) veya 4 (quad) işlemcili sunucuların birleştirilmesi ile oluşturulan HPC Cluster çözümleri çok daha az maliyetle performans problemini halleder.

CLUSTER SİSTEMLERİN AVANTAJLARI BÜYÜYEBİLMEYE AÇIKLIK: Daha yüksek hesaplama gücüne ihtiyaç duyulduğu zaman sadece cluster içindeki sunucu (compute node) sayısı istenilen adette artırılarak istenen güç elde edilir. MALİYET: Bir sunucunun maliyeti içerisine konacak işlemci sayısının artmasıyla yükselir. Ancak işlemci sayısını artırma metodu olarak sunucu sayısını artırma yoluna gidilirse maliyet çok büyük ölçüde azalır. YEDEKLİLİK: Sunucu kümesi içindeki herhangi bir sunucunun arızalanması cluster sisteminin çalışmasını engellemez. Sunucu sayısı kadar yedeklilik sağlanır.

CLUSTER SİSTEMLERİNDE INTERCONNECT Cluster’ı oluşturan sunucuların tek bir sistem gibi çalışması için birbirleriyle çok hızlı haberleşmelerini sağlayacak bir ağ alt yapısına (interconnect) ihtiyaç vardır. Gigabit Ethernet teknolojisinin bant genişliği 1Gb/s iken Infiniband Duplex teknolojisinin bant genişliği 40 Gb/s dir. computation/communication ratio?????

BEOWULF CLUSTER A Beowulf cluster is a computer cluster of what are normally identical, commodity-grade computers networked into a small local area network with libraries and programs installed which allow processing to be shared among them. The result is a high-performance parallel computing cluster from inexpensive personal computer hardware. The name Beowulf originally referred to a specific computer built in 1994 by Thomas Sterling and Donald Becker at NASA. The name "Beowulf" comes from the Old English epic poem of the same name. No particular piece of software defines a cluster as a Beowulf. Beowulf clusters normally run a Unix-like operating system, such as BSD, Linux, or Solaris, normally built from free and open source software. Commonly used parallel processing libraries include Message Passing Interface (MPI) and Parallel Virtual Machine (PVM). Both of these permit the programmer to divide a task among a group of networked computers, and collect the results of processing. Examples of MPI software include OpenMPI or MPICH. https://en.wikipedia.org/wiki/Beowulf_cluster

BEOWULF CLUSTER http://www.climatemodeling.org/~forrest/osdj-2000-11/

BEOWULF CLUSTER http://www.tik.ee.ethz.ch/~ddosvax/cluster/

IBM BLUE GENE https://storagebuddhist.files.wordpress.com/2011/06/ibm_blue_gene_p.jpg

HPC SİSTEMLERİN GENEL KULLANIM ALANLARI MÜHENDİSLİK Uçak, gemi ve otomobil tasarımı Ürün tasarımı ve testleri Araç çarpışma testleri Nükleer kazalar sonucu oluşabilecek serpintiler EKONOMİ Uzun vadeli ekonomik öngörüler Yüksek doğrulukta borsa tahminleri Bankaların risk analizi HAVA TAHMİNLERİ 4 ya da 5 günlük hava tahminlerinin süresi HPC ile 10 güne kadar çıkmaktadır. MALZEME TAHMİNLERİ Yarıiletken cihaz simulasyonları İnşaat sektörü için hafif ve dayanıklı malzeme tasarımı İlaçların etki tahmin simülasyonu SAVUNMA SANAYİ Savaş oyunları simülasyonu Şifre kırma

Paralel Programlama Ucuz Mu? ÖRNEK 1: 100 metrelik bir duvar örülmek isteniyor. Bir işçi 1 metrelik duvarı yarım günde örüyorsa duvar örme işlemi 50 günde biter. İşçi sayısını 100’e çıkarırsak ne olur? Süre kesinlikle azalır. Peki ya işçilere ödeyeceğimiz ücret ve ekipman temini? ÖRNEK 2: Bir teknisyen bir otomobilin eski bir lastiğini yenisiyle 15 dakikada değiştiriyorsa bütün lastiklerin değişmesi 1 saat sürer. Peki 4 teknisyen aynı anda işe koyulursa?

Parallel Processing Want 2x speedup now? Use 2 processors! Simple Example: adding 8 numbers 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 Sequential (1 Proc.)‏ 7 steps Parallel (2 Procs.)‏ 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 3 + 7 + 5 + 6 + 7 + 8 10 + 11 + 7 + 8 21 + 15 36 4 steps = 1.75x faster (approaches 2x with more numbers)‏ Idea: give diff. parts of problem to diff. procs. In general: up to N times faster with N procs.

von Neumann Architecture For over 50 years, virtually all computers have followed a common machine model known as the von Neumann Computer. Named after the Hungarian mathematician John von Neumann. A von Neumann computer uses the stored-program concept. The CPU executes a stored program that specifies a sequence of read and write operations on the memory. Basic design: o Memory is used to store both program and data instructions o Program instructions are coded data which tell the computer to do something o Data is simply information to be used by the program o A central processing unit (CPU) gets instructions and/or data from memory, decodes the instructions and then sequentially performs them.

Seri Hesaplama Nedir? Traditionally, software has been written for serial computation: o To be run on a single computer having a single Central Processing Unit (CPU); o A problem is broken into a discrete series of instructions. o Instructions are executed one after another. o Only one instruction may execute at any moment in time.

Paralel Hesaplama Nedir? In the simplest sense, parallel computing is the simultaneous use of multiple compute resources to solve a computational problem. To be run using multiple CPUs A problem is broken into discrete parts that can be solved concurrently Each part is further broken down to a series of instructions Instructions from each part execute simultaneously on different CPUs

Ortak Paylaşım Bellekli Model (Shared Memory)

Shared Memory Architecture General Characteristics Shared memory parallel computers vary widely, but generally have in common the ability for all processors to access all memory as global address space. Multiple processors can operate independently but share the same memory resources. Changes in a memory location effected by one processor are visible to all other processors.

Dağıtık Bellekli Model (Distributed Memory)

Dağıtık-Paylaşım Bellekli Model (Hybrid)

Data ve Task Parallelism 20 kişilik bir öğrenci grubuna 5 farklı sorudan oluşan bir sınav yapılıyor. Soruları değerlendirmek üzere 5 kişilik bir öğretmen grubu görevlendiriliyor. 1. Senaryo: Herbir öğretmen bütün öğrencilerin sınav kağıtlarında sadece bir soruyu değerlendirmekten sorumlu tutuluyor. (1. öğretmen 1. soruları, 2. öğretmen 2. soruları....) 2. Senaryo: Sınav kağıtları 5 e bölünüyor ve herbir öğretmen kendisine verilen 4 adet sınav kağıdındaki bütün soruları değerlendirmekten sorumlu tutuluyor. Her iki senaryo için de herbir hoca toplamda 20 soru değerlendirmiş olur. 1. senaryo task parallelism e 2. senaryo ise data parallelism e örnek olarak verilebilir.

Flynn's Classical Taxonomy * There are different ways to classify parallel computers. One of the more widely used classifications, in use since 1966, is called Flynn's Taxonomy. * Flynn's taxonomy distinguishes multi-processor computer architectures according to how they can be classified along the two independent dimensions of Instruction and Data. Each of these dimensions can have only one of two possible states: Single or Multiple. * The matrix below defines the 4 possible classifications according to Flynn. S I S D Single Instruction, Single Data S I M D Single Instruction, Multiple Data M I S D Multiple Instruction, Single Data M I M D Multiple Instruction, Multiple Data

Single Instruction, Single Data (SISD)‏ * A serial (non-parallel) computer * Single instruction: only one instruction stream is being acted on by the CPU during any one clock cycle * Single data: only one data stream is being used as input during any one clock cycle * Deterministic execution * This is the oldest and until recently, the most prevalent form of computer * Examples: most PCs, single CPU workstations and mainframes

SIMD MIMD Single Instruction Multiple data Multiple Instruction Multiple data

Single Program Multiple data SPMD Single Program Multiple data Eg., master-slave program: SPMD is most commonly used model Can incorporate SIMD and MIMD Each process runs same program but may execute different instructions If ( myid .eq. 0 ) then … master does work else … slaves do different work endif Each process assigned a rank (myid)‏

MPMD a.out b.out c.out Each process runs its own program Multiple Program Multiple data a.out b.out c.out Each process runs its own program

Partitioning Domain Decomposition One of the first steps in designing a parallel program is to break the problem into discrete "chunks" of work that can be distributed to multiple tasks. This is known as decomposition or partitioning. There are two basic ways to partition computational work among parallel tasks: domain decomposition and functional decomposition. Domain Decomposition In this type of partitioning, the data associated with a problem is decomposed. Each parallel task then works on a portion of the data.

Functional Decomposition In this approach, the focus is on the computation that is to be performed rather than on the data manipulated by the computation. The problem is decomposed according to the work that must be done. Each task then performs a portion of the overall work.

Parallel Programming Models Message Passing Model A set of tasks that use their own local memory during computation. Multiple tasks can reside on the same physical machine as well across an arbitrary number of machines. Tasks exchange data through communications by sending and receiving messages. Data Parallel Model Most of the parallel work focuses on performing operations on a data set. The data set is typically organized into a common structure, such as an array or cube A set of tasks work collectively on the same data structure, however, each task works on a different partition of the same data structure

4 Steps in Creating a Parallel Program Decomposition of computation in tasks Assignment of tasks to processes Orchestration of data access, comm, synch. Mapping processes to processors

Principles of Parallel Computing Parallelism and Amdahl’s Law Preserving data locality Load balancing Coordination and synchronization Performance modelling All of these items make parallel programming more difficult than sequential programming.

Amdahl's law states that the performance improvement to be gained from using some faster mode of execution is limited by the fraction of the time the faster mode can be used. The speedup of a program using multiple processors in parallel computing is limited by the time needed for the sequential fraction of the program