Projektovanje paralelnih algoritama II

Similar documents
Projektovanje paralelnih algoritama I. Uvod Osnove dinamičke paralelizacije

Rekurzivni algoritmi POGLAVLJE Algoritmi s rekurzijama

Mathcad sa algoritmima

Chapter 4 Divide-and-Conquer

CS60020: Foundations of Algorithm Design and Machine Learning. Sourangshu Bhattacharya

Algoritam za množenje ulančanih matrica. Alen Kosanović Prirodoslovno-matematički fakultet Matematički odsjek

DEVELOPMENT OF A MATHEMATICAL MODEL TO PREDICT THE PERFORMANCE OF A VIBRATORY BOWL FEEDER FOR HEADED COMPONENTS

Fajl koji je korišćen može se naći na

APPROPRIATENESS OF GENETIC ALGORITHM USE FOR DISASSEMBLY SEQUENCE OPTIMIZATION

KLASIFIKACIJA NAIVNI BAJES. NIKOLA MILIKIĆ URL:

ANALYSIS OF INFLUENCE OF PARAMETERS ON TRANSFER FUNCTIONS OF APERIODIC MECHANISMS UDC Života Živković, Miloš Milošević, Ivan Ivanov

ANALYTICAL AND NUMERICAL PREDICTION OF SPRINGBACK IN SHEET METAL BENDING

Osobine metode rezolucije: zaustavlja se, pouzdanost i kompletnost. Iskazna logika 4

A STUDY ON NATURAL CONVECTION HEAT TRANSFER IN COMPLEX BOUNDARIES

TEORIJA SKUPOVA Zadaci

Uvod u algoritamske tehnike

3. Linear Systems of Algebraic Equations: Iterative Methods

MATHEMATICAL ANALYSIS OF PERFORMANCE OF A VIBRATORY BOWL FEEDER FOR FEEDING BOTTLE CAPS

TemidaLib sistem za rad sa velikim brojevima TemidaLib Multiprecision Arithmetic Library

Matrices: 2.1 Operations with Matrices

CSE 613: Parallel Programming. Lecture 8 ( Analyzing Divide-and-Conquer Algorithms )

The Divide-and-Conquer Design Paradigm

HENDERSON'S APPROACH TO VARIANCE COMPONENTS ESTIMATION FOR UNBALANCED DATA UDC Vera Djordjević, Vinko Lepojević

Uvod u relacione baze podataka

1 Основни појмови егзактно посредног претраживања Релаксација и рестрикција

Matrix Multiplication

An Algorithm for Computation of Bond Contributions of the Wiener Index

ALGORITMI PODIJELI PA VLADAJ

Slika 1. Slika 2. Da ne bismo stalno izbacivali elemente iz skupa, mi ćemo napraviti još jedan niz markirano, gde će

LIQUID VISCOSITY DETERMINATION BY CORIOLIS FLOW METER

Lecture 22: Multithreaded Algorithms CSCI Algorithms I. Andrew Rosenberg

ZANIMLJIV NAČIN IZRAČUNAVANJA NEKIH GRANIČNIH VRIJEDNOSTI FUNKCIJA. Šefket Arslanagić, Sarajevo, BiH

Kevin James. MTHSC 3110 Section 2.1 Matrix Operations

RESISTANCE PREDICTION OF SEMIPLANING TRANSOM STERN HULLS

DETERMINATION OF THE EFFECTIVE STRAIN FLOW IN COLD FORMED MATERIAL

MOHR S CIRCLES FOR NON-SYMMETRIC STRESSES AND COUPLE STRESSES

CSE 613: Parallel Programming. Lectures ( Analyzing Divide-and-Conquer Algorithms )

NEURONSKE MREŽE 1. predavanje

ALGORITMI ZA SIMBOLIČKA MATRIČNA IZRAČUNAVANJA I OPTIMIZACIJU

1.1 Algoritmi. 2 Uvod

DISTRIBUIRANI ALGORITMI I SISTEMI

Scripture quotations marked cev are from the Contemporary English Version, Copyright 1991, 1992, 1995 by American Bible Society. Used by permission.

VELOCITY PROFILES AT THE OUTLET OF THE DIFFERENT DESIGNED DIES FOR ALUMINIUM EXTRUSION

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku Sveučilišni nastavnički studij matematike i informatike. Sortiranje u linearnom vremenu

5 th INTERNATIONAL CONFERENCE Contemporary achievements in civil engineering 21. April Subotica, SERBIA

NAPREDNI FIZIČKI PRAKTIKUM 1 studij Matematika i fizika; smjer nastavnički MJERENJE MALIH OTPORA

Ivan Soldo. Sažetak. U članku se analiziraju različiti načini množenja matrica. Svaki od njih ilustriran je primjerom.

Math 4377/6308 Advanced Linear Algebra

THE ROLE OF SINGULAR VALUES OF MEASURED FREQUENCY RESPONSE FUNCTION MATRIX IN MODAL DAMPING ESTIMATION (PART II: INVESTIGATIONS)

APPLICATION OF THOMAS-FERMI MODEL TO FULLERENE MOLECULE AND NANOTUBE UDC 547. Yuri Kornyushin

PLANIRANJE SAOBRAĆAJA - Izvod iz vježbi -II dio-

Metode izračunavanja determinanti matrica n-tog reda

- a =aaa, a= aaa, a = a (3)

Grafovi. Osnovni algoritmi sa grafovima. Predstavljanje grafova

Hornerov algoritam i primjene

Vedska matematika. Marija Miloloža

Dynamic analysis of 2-D and 3-D quasi-brittle solids and structures by D/BEM

Maja Antolović Algoritmi u teoriji brojeva

Đorđe Đorđević, Dušan Petković, Darko Živković. University of Niš, The Faculty of Civil Engineering and Architecture, Serbia

Preliminary Program for PHD students- English language

Mathematics and Computer-Aided Modeling in Sciences Intensive School Novi Sad Preliminary Program for PHD students- English language

UTICAJ KRIVE SNAGE VETROGENERATORA NA TEHNO-EKONOMSKE POKAZATELJE SISTEMA ZA NAPAJANJE POTROŠAČA MALE SNAGE

Matrix Algebra & Elementary Matrices

Elementary maths for GMT

EVALUATION OF STRUCTURAL RELIABILITY USING SIMULATION METHODS

The System of Linear Equations. Direct Methods. Xiaozhou Li.

FTN Novi Sad Katedra za motore i vozila. Drumska vozila Uputstvo za izradu vučnog proračuna motornog vozila. 1. Ulazni podaci IZVOR:

Conditional stability of Larkin methods with non-uniform grids

Math/CS 466/666: Homework Solutions for Chapter 3

ADAPTIVE NEURO-FUZZY MODELING OF THERMAL VOLTAGE PARAMETERS FOR TOOL LIFE ASSESSMENT IN FACE MILLING

DEVELOPMENT OF MATHEMATICAL MODELS TO PREDICT THE EFFECT OF INPUT PARAMETERS ON FEED RATE OF A RECIPROCATORY TUBE FUNNEL FEEDER

Matrices. Chapter Definitions and Notations

Introduction to Algorithms 6.046J/18.401J/SMA5503

CHEMICAL REACTION EFFECTS ON VERTICAL OSCILLATING PLATE WITH VARIABLE TEMPERATURE

6 th INTERNATIONAL CONFERENCE

SYNCHRONIZATION OF HYDROMOTOR SPEEDS IN THE SYSTEM OF WHEEL DRIVE UDC : Radan Durković

STUDY GUIDE. Learn Serbian. Have fun. GRAMMAR VOCABULARY PRACTICE ANSWER KEY. LESSON 14

Divide-and-conquer algorithm

HAA je potpisnica multilateralnog sporazuma s Europskom organizacijom za akreditaciju (EA) HAA is a signatory of the European co-operation for

Konstrukcija i analiza algoritama

DISKRETNI LOGARITAM. 1 Uvod. MAT-KOL (Banja Luka) ISSN (p), ISSN (o) Vol. XVII (2)(2011), 43-52

Rayleigh-Bénard convection with magnetic field

Chapter 4. Determinants

UOPŠTENI INVERZI, FAKTORI USLOVLJENOSTI I PERTURBACIJE

Matrix-Product-States/ Tensor-Trains

Sortiranje podataka. Ključne riječi: algoritmi za sortiranje, merge-sort, rekurzivni algoritmi. Data sorting

ICS 6N Computational Linear Algebra Matrix Algebra

A matrix over a field F is a rectangular array of elements from F. The symbol

Dynamic Programming: Matrix chain multiplication (CLRS 15.2)

EXPERIMENTAL ANALYSIS OF THE STRENGTH OF A POLYMER PRODUCED FROM RECYCLED MATERIAL

AMS 209, Fall 2015 Final Project Type A Numerical Linear Algebra: Gaussian Elimination with Pivoting for Solving Linear Systems

The Prediction of. Key words: LD converter, slopping, acoustic pressure, Fourier transformation, prediction, evaluation

Algoritmi za mnoºenje i dijeljenje velikih. brojeva. Marko Pejovi UNIVERZITET CRNE GORE. Prirodno-matemati ki fakultet Podgorica. Podgorica, 2018.

Design and Analysis of Algorithms

CS473 - Algorithms I

CMPS 2200 Fall Divide-and-Conquer. Carola Wenk. Slides courtesy of Charles Leiserson with changes and additions by Carola Wenk

PRECIPITATION FORECAST USING STATISTICAL APPROACHES UDC 55:311.3

Poređenje kompresionih tehnika digitalne slike primenom DFT, DCT i SVD sa aspekta broja upotrebljenih transformacionih koeficijenata

ALGORITMI. Pojam algoritma Blok dijagram

Transcription:

Projektovanje paralelnih algoritama II Primeri paralelnih algoritama, I deo Paralelni algoritmi za množenje matrica 1

Algoritmi za množenje matrica Ovde su data tri paralelna algoritma: Direktan algoritam sa tri ugnježdene petlje Paralelni algoritam po principu podeli-i-zavladaj Paralelizovan Strasenov algoritam 2

Direktan algoritam Zasnovan na paralelizaciji petlji u standardnom serijskom algoritmu sa tri ugnježdene for petlje Rezultat je procedura P-Square-Matrix-Multipy: P-Square-Matrix-Multiply(A, x) 1.n = A.rows 2.neka je C nova matrica dimenzije n x n 3.parallel for i =1ton 4. parallel for j =1to n 5. c ij =0 6. for k =1to n 7. c ij = c ij + a ik b kj 8.return C 3

Analiza direktnog algoritma Rad: Serijalizacija: kod sa tri ugnježdene for petlje sa po n iteracija, pa je T 1 (n) = (n 3 ). Raspon: T (n) = (n), jer je raspon za parallel for petlje (lg n), a za običnu je (n); dakle, ukupno: (n) Paralelizam: (n 3 )/ (n) = (n 2 ) Domaći: Paralelizujte unutrašnji for da bi se dobio paralelizam (n 3 /lg n) Prosta zamena sa parallel for dovodi do trke do podataka! 4

Algoritam po principu podeli-i-zavladaj (1/2) Polazni problem se podeli na manje probleme Matrice, A, B i C, dimenzije n x n, se podele na četiri podmatrice, dimenzije n/2 x n/2 : Onda se proizvod matrica može napisati kao: 5

Algoritam po principu podeli-i-zavladaj (2/2) P-Matrix-Multiply- Recursive(C, A, B) 1.n = A.rows 2.if n==1 3. c 11 = a 11 b 11 4.else neka je T nova matrica dimenzije n x n 5. podeli matrice A, B, C i T u podmatrice dimenzije n/2 x n/2 6. spawn P-Matrix-Multiply- Recursive(C 11, A 11, B 11 ) 7. spawn P-Matrix-Multiply- Recursive(C 12, A 11, B 12 ) 8. spawn P-Matrix-Multiply- Recursive(C 21, A 21, B 11 ) 9. spawn P-Matrix-Multiply- Recursive(C 22, A 21, B 12 ) 10. spawn P-Matrix-Multiply- Recursive(T 11, A 12, B 21 ) 11. spawn P-Matrix-Multiply- Recursive(T 12, A 12, B 22 ) 12. spawn P-Matrix-Multiply- Recursive(T 21, A 22, B 21 ) 13. P-Matrix-Multiply- Recursive(T 22, A 22, B 22 ) 14. sync 15. parallel for i =1ton 16. parallel for j =1to n 17. c ij = c ij + t ij Osnovni slučaj: linija 3 Rekurzivni slučaj: linije 4-17 Rekurzivni pozivi u linijama 6-13 obavljaju 8 množenja podmatrica Polu proizvodi u matricama C i T se saberu pomoću dve ugnježdene parallel for petlje u linijama 15-17 6

Analiza procedure P-Matrix-Multiply-Recursive (1/2) Rad: Podela matrica u (1) vremenu, osam rekurzivnih množenja podmatrica, i sabiraju se matrice C i T u dve ugnježdene petlje u (n 2 ) vremenu: T 1 (n) = 8 T 1 (n/2) + (n 2 ) Rešenje: po prvom slučaju master teoreme: T 1 (n) = (n 3 ) Rad ovog paralelnog algoritma je asimtotski jednak radu direktnog algoritma 7

Analiza procedure P-Matrix-Multiply-Recursive (2/2) Raspon: Raspon podele matrica je (1), raspon dve ugnježdene parallel for petlje u linijama 15-17 je (lg n), raspon 8 paralelnih rekurzivnih poziva = max od njih = raspon bilo kog od tih poziva. Ukupno: T (n) = T (n/2) + (lg n) Rešenje: T (n) = (lg 2 n), metodom zamene Master metoda se ne može primeniti. Zašto? Paralelizam: T 1 (n)/ T (n) = ( n 3 / lg 2 n) To je veoma visok paralelizam 8

Strasenov metod za množenje matrica (1/3) Ključ je da se rekurzivno stablo učini manje razgranatim Umesto 8 množenja matrica n/2 x n/2, on obavlja 7 Cena za uklanjanje jednog matričnog množenja Nekoliko matričnih sabiranja Ali, konstantan broj matričnih sabiranja 9

Strasenov metod za množenje matrica (2/3) Stasenov metod je zasnovan na sledećim transformacijama: 10

Strasenov metod za množenje matrica (3/3) Metod se sastoji od sledeća četiri koraka: Podeliti matrice A, B i C na podmatrice dimenzije n/2 x n/2. Ovaj korak uzima (1) vreme. Napraviti 10 matrica S 1, S 2,, S 10. Ovaj korak uzima (n 2 ) vremena. Rekurzivno izračunati sedam matričnih proizvoda P 1, P 2,, P 7. Izračunati željenje podmatrice C 11, C 12, C 21, C 22 matrice C. Ovaj korak uzima (n 2 ) vremena. 11

Analiza Strasenovog metoda Cilj: odrediti vreme izvršenja T(n) Za n=1 svodi se na prosto skalarno množenje: (1) Za n > 1, koraci 1, 2 i 4 nose (n 2 ) vremena, a korak 3 zahteva sedam množenja matrica dim. n/2 x n/2 Rekurencija za vreme izvršenja T(n): Primenom master metode dobija se rešenje ove jednačine: T(n) = (n lg 7 ) Asimptotski brže od direktnog moženja matrica 12

Paralelizovan Strasenov metod Sastoji se od sledeća četiri koraka: Podeliti matrice A, B i C na podmatrice dimenzije n/2 x n/2. Ovaj korak uzima rad (1) i isti raspon. Korišćenjem dve ugnježdene parallel for petlje napraviti 10 matrica S 1, S 2,, S 10. Rad je (n 2 ) i raspon je (lg n). Rekurzivno izračunati sedam matričnih proizvoda P 1, P 2,, P 7. Korišćenjem dve ugnježdene parallel for petlje izračunati željenje podmatrice C 11, C 12, C 21, C 22. Rad je (n 2 ) i raspon je (lg n). 13

Analiza paralelizovanog Strasenovog metoda Rad: Serijalizacija = originalni algoritam T 1 (n) = (n lg 7 ) Raspon: Sedam rekurzivnih poziva izvršava u paraleli Dobija se identična rekurencija kao za P-Matrix- Multipy-Recursive T (n) = (lg 2 n) Paralelizam: T 1 (n)/ T (n) = (n lg 7 / lg 2 n) Malo niži od paralelizma P-Matrix-Multiply-Recursive 14