Lineáris egyenletrendszerek megoldása

Slides:



Advertisements
Hasonló előadás
Lineáris egyenletrendszerek
Advertisements

C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Lineáris egyenletrendszerek megoldása Gauss elimináció, Cramer-szabály Dr. Kovács Sándor DE GVK Gazdaságelemzési és Statiszikai Tanszék.
 Folyékony anyagok  Füstszerű jelenségek  Felhők  Festékek.
Műveletek mátrixokkal
Számítógépes algebrai problémák a geodéziában
Analitikus (koordináta) geometriai gyorstalpaló
Benczúr Zsolt VBA gyorstalpaló Benczúr Zsolt
 Lineáris egyenlet  algebrai egyenlet  konstansok és első fokú ismeretlenek  pl.: egyenes egyenlete  Lineáris egyenletrendszer  lineáris egyenletek.
 Adat- és feladat párhuzamos modell  Az ISO C99 szabvány részhalmaza  párhuzamos kiegészítésekkel  Numerikus műveletek az IEEE754 alapján  Beágyazott.
 Gauss szűrő uniform sampler2D colorMap; const float kernel[9] = float[9]( 1.0, 2.0, 1.0, 2.0, 4.0, 2.0, 1.0, 2.0, 1.0); out vec4 outColor; void main(){
 Alapja a véletlen minták kiértékelése  Matematikai rendszerek  Fizikai szimuláció  Sok szabadság fokú csatolt rendszerek  Folyadékok, sejt struktúrák,
GPGPU labor I. OpenGL, Cg.
 Nincs szinkronizáció és kommunikáció  Csővezeték alkalmazása  Párhuzamosítás Proc 2Proc 1 Csővezeték Proc 1 Proc 21 Proc 22 Párhuzamosság.
Dr. Balikó Sándor: ENERGIAGAZDÁLKODÁS 5. Mérlegek (folytatás)
Térbeli infinitezimális izometriák
Egy kis lineáris algebra
Programozás I. Horváth Ernő.
Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1.5 Programozó matematikus szak 2003/2004-es tanév II. félév.
Lineáris algebra Mátrixok, determinánsok, lineáris egyenletrendszerek
ANY u WHERE u : seq(MININT..MAXINT) & size(u) = size(s) & #f.(f : 1..size(s) >->> 1..size(s) & !j.(j : 1..size(s) => s(f(j)) = u(j))) & !i.(i : 1..size(s)-1.
Lineáris egyenletrendszerek megoldása
ISZAM III.évf. részére Bunkóczi László
Lineáris transzformáció sajátértékei és sajátvektorai
További vektor, mátrix algoritmusok
VFP xBase adatkezelés - munkaterületek - DML - DDL - navigáció - eljárások, függvények - vezérlési szerkezetek - változók - képernyő IO - mintaprogram.
Lineáris algebra.
Nikházy László Ureczky Bálint Konzulens: dr. Horváth Gábor
Lineáris programozás Elemi példa Alapfogalmak Általános vizsg.
1 AAO folytatás ++ Csink László. 2 Rekurzív bináris keresés (rendezett tömbben) public static int binker(int[] tomb, int value, int low, int high) public.
Fraktálok Szirmay-Kalos László.
 Map  Reduce  Scan  Histogram  Compact const size_t dataSize = 1024; cl_kernel mapKernel = cl.createKernel(clProgram, "map"); float* hData = new.
GPGPU labor X. Monte Carlo módszerek. Kezdeti teendők Tantárgy honlapja, Monte Carlo módszerek A labor kiindulási alapjának letöltése (lab10_base.zip),
GPGPU labor III. Iteratív algoritmusok. Kezdeti teendők Tantárgy honlapja, Iteratív algoritmusok A labor kiindulási alapjának letöltése (lab3base.zip),
GPGPU labor IX. Lineáris egyenletrendszerek megoldása.
GPGPU Labor 15.. Párhuzamos primitívek Map Reduce Scan Histogram Compact.
GPGPU labor II. GPU mint vektor processzor. Kezdeti teendők Tantárgy honlapja, Bevezetés – Alap könyvtárak letöltése Tantárgy honlapja, GPU mint vektor.
Lineáris egyenletrendszerek, leképezések, mátrixok
A “Numerikus módszerek” című könyv
Programozás I. Típus algoritmusok
Lineáris algebra.
CUDA C/C++ programozás Egyéb eszköztárak vegyesen A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt.
CUDA C/C++ programozás
1 Mivel foglalkozunk a laborokon? 7. hét: Do-Loop-Until Do-Until-Looptömbök Function 7. hét: Do-Loop-Until és Do-Until-Loop ciklusok. Egy indexes tömbök,
A Visual Basic nyelvi elemei
Dr. Bánkuti Gyöngyi Klingné Takács Anna
CUDA C/C++ programozás Atomikus műveletek A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt keretében.
Műveletek, függvények és tulajdonságaik Mátrix struktúrák:
CUDA C/C++ programozás CUDA C bevezetés A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt keretében.
Rendezőalgoritmusok. Feladatok I. 1.Hozzunk létre új StandardEXE VB projektet. Töröljük Form1-t 2.Add/Module/New, majd Properties/átnevezzük: „MainModule”
1 Mivel foglalkoz(t)unk a laborokon? 1.Labor: Word alapok Excel alapok: Excel alapok: Cellahivatkozás, munkalapfüggvény, diagram varázsló, trendvonal 2.
Excel programozás (makró)
C++2. Ciklusok elöltesztelő (for, while) A ciklusmag feldolgozása előtt történik a vizsgálat  lehet, hogy egyszer sem fut le. A soronkövetkező iteráció.
Programtervezés, programozás I. 2.5 tömbök,stringek
Teljesítményelemzés CLBenchmark 1.1-el
Google Summer of Code 2015 OpenCL image support for the r600g driver.
Szécsi László 3D Grafikus Rendszerek 15. előadás
GPGPU – CUDA 1..
Lineáris programozás Elemi példa Alapfogalmak Általános vizsg.
Monte Carlo módszerek.
Párhuzamos primitívek
Lineáris egyenletrendszerek megoldása Gauss elimináció, Cramer-szabály Dr. Kovács Sándor DE GVK Gazdaságelemzési és Statiszikai Tanszék.
Lineáris egyenletrendszerek
GPGPU – CUDA 2..
ITERÁCIÓ.
Nikházy László Ureczky Bálint Konzulens: dr. Horváth Gábor
Tomográfiás rekonstrukció
Sugármetszés implicit szintfelülettel
Ghost Hunter Game logic/HUD.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Előadás másolata:

Lineáris egyenletrendszerek megoldása GPGPU Alkalmazások Lineáris egyenletrendszerek megoldása

Gauss-Jordan elimináció // TODO // // ID := get_local_id(0) // LOOP ma := 0 .. m DO: // pivot := A[ma + ma * n] // coeff := A[ma + ID * n] / pivot // BARRIER // IF ID != ma DO: // LOOP na := 0 .. n DO: // A[na + id * n] := A[na + id * n] - coeff * A[na + n * ma]; // ENDIF // END LOOP // coeff := A[ID + ID * n] // LOOP na := 0 .. n DO: // A[na + id * n] = A[na + id * n] / coeff __kernel void gaussian(const int n, const int m, __global float* A){ }

Minta egyenletrendszer int n = 4; int m = 3; float A[] = {2, 1, -1, 8, -3, -1, 2, -11, -2, 1, 2, -3};

Mátrix invertálás int n = 6; int m = 3; float A[] = { 2, -1, 0, 1, 0, 0, -1, 2, -1, 0, 1, 0, 0, -1, 2, 0, 0, 1};

Mátrix vektor szorzás CPU implementáció void scalarMV(int n, int m, float* y, const float* A, const float* x, const float* b){ for(int i=0; i<n; ++i){ float yi = b[i]; for(int j=0; j<m; ++j){ yi += A[i * m + j] * x[j]; } y[i] = yi;

Mátrix vektor szorzás GPU implementáció I // TODO // // i := get_global_id(0) // IF ID < n DO: // yi := b[i] // LOOP j := 0 .. m DO: // yi += A[j + i * m] * x[j] // END LOOP // y[i] := yi // END IF __kernel void simpleMV(const int n, const int m, __global float* y, __global float* A, __global float* x, __global float* b){ }

Mátrix vektor szorzás GPU implementáció II // TODO // // i = get_group_id(0) // j = get_local_id(0) // Q[j] := A[i * M + j] * x[j] // BARRIER // Sum scan on Q (reduction) // IF j = 0 THEN: // y[i] = Q[0] + b[i] __kernel void reduceMV(const int n, __global float* y, __global float* A, __global float* x, __global float* b, const int M, __local float* Q){ }

Mátrix vektor szorzás GPU implementáció III // TODO // // t := get_local_id(0) / Z // z := get_local_id(0) % Z // FOR i := t ; i < n ; i := i + T : // Q[t * Z + z] = 0 // FOR j := z ; j < m ; j += Z : // Q[t * Z + z] += A[j + i * m] * x[j] // END FOR // END FOR // Sum scan on Q (reduction) // IF z = 0 THEN: // y[i] = Q[t * Z + 0] + b[i] __kernel void largeMV(const int n, const int m, __global float* y, __global float* A, __global float* x, __global float* b, const int T, const int Z, __local float* Q){ }

Mátrix vektor szorzás Terjesszük valamely megoldást több munkacsoportra!

Jacobi iteráció void jacobi(){ int n = 8; float* x[2] = {NULL, NULL}; x[0] = new float[n]; x[1] = new float[n]; for(int i = 0; i < n; ++i){ x[0][i] = 0.0f; x[1][i] = 0.0f; } float* A = new float[n * n]; for(int j = 0; j < n; ++j){ float v = 0.0f; if( i == j){ v = 0.5f; A[i + j * n] = v; float* b = new float[n]; b[i] = 1.0f; int inputBuffer = 0; const int iterations = 20; for(int i = 0; i < iterations; ++i){ largeMV(n, n, x[(inputBuffer + 1) % 2], A, x[inputBuffer], b); inputBuffer = (inputBuffer + 1) % 2; printResult(n, x[inputBuffer], "Jakobi"); delete x[0]; delete x[1]; delete A; delete b; Jacobi iteráció

Jacobi iteráció Próbáljuk ki más egyenlet rendszerre is! Próbáljuk ki, hogy mi történik, ha nem megoldható az egyenlet rendszer!