Tugas Besar Arsikompar RDS(Final)
March 22, 2017 | Author: Rahmat Muttaqin | Category: N/A
Short Description
Download Tugas Besar Arsikompar RDS(Final)...
Description
IMPLEMENTASI ALJABAR LINEAR (IDENTIFIKASI VARIABEL SISTEM PERSAMAAN LINIER MENGGUNAKAN MATRIKS) DENGAN OPEN MP-CUDA Rahmat Muttaqin (13210027) Dita Amalia (13210105) Anissa Sachi Hatami (13210123) EL4127-Arsitektur dan Komputasi Paralel
Sekolah Teknik Elektro dan Informatika ITB Abstrak Pada tugas besar ini, dilakukan implementasi aljabar linear berupa identifikasi variabel sistem persamaan linier menggunakan matriks orde 3x3 dengan program Open MP dan CUDA. Program Open MP (Open Multi-Processing) adalah sebuah antarmuka pemrograman aplikasi (API) yang mendukung multi processing shared memory pemrograman di C, C++ dan Fortran pada berbagai arsitektur yang terdiri dari satu set perintah kompiler, perpustakaan rutinitas, dan variabel lingkungan yang mempengaruhi run-time. Program CUDA merupakan platform komputasi paralel dan model pemrograman yang dibuat oleh NVIDIA dan implementasinya menggunakan GPU( Graphic Processing Unit). CUDA memberikan akses langsung pada set instruksi virtual dan memori dari elemen komputasi paralel pada GPU CUDA. Secara keseluruhan hasil yang didapat berupa perbandingan performa antara Open Mp dan CUDA.
OpenMP mengimplementasi multithreading. Bagian kode yang akan dijalankan secara parallel ditandai sesuai dengan Preprocessor directif sehingga akan membuat thread-thread sebelum dijalnkan. Setiap thread memiliki id yang di buat mengunakan fungsi ( omp_get_thread_num() pada C/C++ dan OMP_GET_THREAD_NUM() pada Fortran). Secara default, setiap thread mengeksekusi kode secara parallel dan independent. "Work-sharing constructs" dapat dapat digunakan untuk membagi tugas antar thread sehingga setiap thread menjalankan sesuai bagian alokasi kodenya. Fungsi OpenMP berada pada file header yang berlabel “omp.h” di C / C++.
Kata kunci : Open MP, CUDA, Persamaan Linier, Matriks.
Unsur inti OpenMP adalah pembuatan konstruksi thread, distribusi beban kerja (pembagian kerja), pengelolaan data-environment, thread sinkronisasi, bagian user-level runtime dan variabel environment.
1.
1.2
1.1
STUDI PUSTAKA
OPEN MP (OPEN MULTI PROCESSING)
OpenMP adalah sebuah antarmuka pemrograman aplikasi (API) yang mendukung multi processing shared memory pemrograman di C, C++ dan Fortran pada berbagai arsitektur, termasuk Unix dan Microsoft Windows platform. OpenMP Terdiri dari satu set perintah kompiler,perpustakaan rutinitas, dan variabel lingkungan yang mempengaruhi run-time. Banyak Aplikasi dibangun dengan model hibrida pemrograman paralel dapat dijalankan pada komputer cluster dengan menggunakan OpenMP dan Message Passing Interface (MPI), atau lebih transparan dengan menggunakan ekstensi OpenMP non-shared memory systems.
CUDA (COMPUTE UNIFIED DEVICE ARCHITECTURE)
Secara sederhana, CUDA adalah kumpulan program-program yang menerjemahkan teks dalam bentuk bahasa komputer (computer language) berupa source language/source code, ke dalam bentuk bahasa komputer yang lain (target language/object code). NVIDIA CUDA technology merupakan suatu lingkup bahasa pemrograman “C” yang membuka akses kekuatan prosesing dari GPU, untuk memecahkan hampir seluruh tantangan intensif dari komputasi / perhitungan yang kompleks dari proses GPU tersebut. Diawali dari seri Geforce 8000 series merupakan GPU yang sudah suport arsitektur CUDA. Arsitektur CUDA memungkinkan GPU (yang telah support CUDA) menjadi arsitektur terbuka seperti layaknya CPU (Central Processing Unit a.k.a Processor). Hanya, tidak seperti CPU, GPU
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
1
memiliki arsitektur banyak-inti yang pararel. Setiap inti memiliki kemampuan untuk menjalankan ribuan “thread” secara simultan. Jika aplikasi yang dijalankan sesuai dengan arsitektur ini, GPU dapat menyediakan keuntungan yang lebih besar dari segi performa proses aplikasi tersebut.
1.3
1.4.2.1
MINOR DAN KOFAKTOR MATRIKS
Yang dimaksud dengan MINOR unsur aij adalah determinan yang berasal dari determinan orde ken tadi dikurangi dengan baris ke-i dan kolom ke-j yang dinotasikan dengan Mij. Contoh Minor dari elemen a₁₁
PERKALIAN MATRIKS
Jika matriks Am x n dan matriks Bp x q dikalikan, maka Banyaknya kolom matriks A harus sama dengan banyaknya kolom matriks B, sehingga n = p
Minor-minor dari Matrik A (ordo 3x3) antara lain
matriks dengan ordo m x q hasil kali setiap elemen baris matriks A dengan setiap elemen kolom matriks B yang sesuai
1.4
Kofaktor dan minor hanya berbeda tanda. kofaktor dari baris ke-i dan kolom ke-j dituliskan dengan
INVERS MATRIKS
Dapat ditentukan menggunakan rumus
Contoh
1.4.1
DETERMINAN MATRIKS
Untuk matriks berukuran 3x3, maka determinan matriks dapat dicari dengan aturan Sarrus sebagai berikut
1.4.2.2
TRANSPOSE MATRIKS
Matriks transpose adalah matriks yang mengalami pertukaran elemen dari baris menjadi kolom dan sebaliknya
1.4.2
ADJOIN MATRIKS
Adjoin Matriks A adalah transpose dari kofaktorkofaktor matriks tersebut
1.5
IDENTIFIKASI VARIABEL SISTEM PERSAMAAN LINIER
Misal menentukan nilai p, q, dan r dari persamaan linier berikut :
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
2
2p +2q -3r = -25 4p +5q -6r = -37 2p -3q +4r = 33
lebih praktis jika di bandingkan menggunakan command prompt
dengan
Sistim persamaan linier 3 variabel di atas, dapat dituliskan dalam bentuk matriks berikut:
Bentuk matriks di atas, terlebih dahulu dianalogikan dengan sebuah persamaan, maka diperoleh persamaan yang baru yaitu : A*X = B. Untuk mendapatkan nilai X, bentuk persamaan harus dirubah menjadi :
1.6
MICROSOFT VISUAL STUDIO
Microsoft Visual Studio merupakan environment dari microsoft yang dapat digunakan untuk membantu pemrograman berbagai bahasa, dalam percobaan ini digunakan C/C++ dengan implementasi CUDA dengan menggunakan CUDA Runtime 5.5.
2.
Pada step ini di gunakan #include untuk memasukkan library cuda dan #include.h digunakan untuk library openmp.
HASIL DAN ANALISIS
Pada bagian inti program, matriks harus memiliki orde 3. Dengan Matriks A yang berisi koefisien dari variabel persamaan linier. Pengisian nilai Matriks diimplementasikan pada iterasi (i=0; i
View more...
Comments