P. 1
Operasi Matriks 1

Operasi Matriks 1

|Views: 18|Likes:

More info:

Published by: Alif Rinaldy Fajargis on Jul 23, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/29/2013

pdf

text

original

Algoritma dan Pemrograman Parallel by Dr.

Asep Juarna

VI. OPERASI MATRIKS (Part 1)
Oleh Dr. Asep Juarna

1. Transposisi Matriks (Matrix Transpose)
Diberikan matriks A berukuran m × n (yaitu m baris dan n kolom) berikut:
 a1,1 a  2,1 A=  M  a m −1,1  a m,1  a1, 2 a 2, 2 M am,2 L L O L a1,n −1 a 2,n −1 M a m ,n −1 a1,n  a 2,n   M   a m −1,n  a m ,n  

a m −1, 2 L a m −1,n −1

Transposisi matriks A, dinotasikan dengan AT, adalah pertukaran posisi elemen-elemen matriks sedemikian rupa sehingga setiap elemen yang menempati baris ke-i kolom ke-j di A (yaitu ai,j) menjadi menempati baris ke-j kolom ke-i di AT (yaitu a T,i = ai,j). j Dengan kata lain, setiap baris di A menjadi kolom di AT. Jelaslah elemen-elemen matriks ai,i tidak bertransposisi sehingga susunan elemen-elemen matriks AT adalah: a 2,1 L a m −1,1 a m ,1   a1,1 a a 2, 2 L a m −1, 2 a m,2    1, 2 M O M M  AT =  M   a1,n −1 a 2,n −1 L a m −1,n −1 a m ,n −1   a1,n a 2,n L a m −1,n a m,n    Contoh: Berikut ini adalah transposisinya. 1 1 2 3  A=  , B = 2  4 5 6   3  dua buah matriks A dan B dengan masing-masing
4 7 5 8 ,  6 9  1 4 A = 2 5 ,   3 6  
T

1 2 3  B =  4 5 6   7 8 9   
T

Algoritma transposisi matriks berikut dirancang untuk matriks bujur sangkar (square matrix) n × n, yaitu matriks dengan jumlah baris sama dengan jumlah kolom.

1.1.

Algoritma Sekuensial

Algoritma sekuensial transposisi matriks adalah sangat sederhana, yaitu: procedure seq_transpose (A) (1) for i = 1 to n do (2) for j = 1 to i - 1 do (3) ai,j ↔ aj,i (4) end for (5) end for Dalam algoritma di atas, ai,j ↔ aj,i adalah procedure swap berikut: vi-1

j dari matriks A dipegang oleh prosesor Pk. Elemen matriks a23 dipegang oleh prosesor Pk dengan k = 22(2 . elemen matriks a32 dipegang oleh prosesor Pk dengan k = 22(3 . Asep Juarna procedure swap (x. karena ada n2 Contoh: Untuk q = 2.1) = (n . yaitu P0. P15. P0011. nilai running time ini optimal. . indeks-indeks prosesor dinyatakan dalam biner. 2.2. P0001..1) = 15 yaitu P15.n)/2 Sementara itu running time procedure swap adalah konstan. + (n . . dengan n = 2q. IN (Interconnection Network) Perfect Shuffle Dalam algoritma ini. banyaknya iterasi akibat kedua loop tersebut adalah: 0 + 1 + 2 + 3 + . .1) + (4 . P1.1) = 9 yaitu P9. dengan k dan m adalah representasi biner. dengan k = 2q(i . adalah n2 -1 atau 22q . jika m diperoleh dengan menggeser satu posisi ke kiri secara siklus (cyclic left shifting). Dengan demikian running time procedure seq_transpose adalah O(n2).1) + (3 . maka n = 22 = 4. Algoritma Paralel prosesor.1) × n/2 = (n2 . 3.Algoritma dan Pemrograman Parallel by Dr. P0001 = P1 terhubung ke P0010 = P2. n = 2q.. yaitu sebanyak elemen matriks yang akan dicari transpose-nya..1) + (j . yaitu P22 q −1 )... P0100 = P4 terhubung ke P1000 = P8. P1111. y) (1) temp ← x (2) x ← y (3) y ← temp Pada procedure seq_transpose. dengan demikian matriks A berukuran 4 × 4.. dan P1000 = P4 terhubung ke P0001 = P8. elemen a44 dipegang oleh prosesor Pk dengan k = 22(4 . IN Perfect Shuffle yang akan digunakan terdiri dari n2 prosesor.1.. Untuk q = 2 kita mempunya prosesor-prosesor beserta indeknya sebagai berikut: P0000.. Elemen ai.1) = 6 yaitu P6.. .2.1).}. P0010. Prosesor Pk terhubung ke prosesor Pm. maka indeks prosesor terakhir.}. P2.1.. Untuk melihat koneksi antar prosesor. P22 q −1 (ingat. 1. a11 P0 a12 P1 a13 P2 a14 P3 a21 P4 a22 P5 a23 P6 a24 P7 a31 P8 a32 P9 a33 P10 a34 P11 a41 P12 a41 P13 a43 P14 a44 P15 Gambar 6.. Dengan aturan ini P0000 = P0 terhubung ke dirinya sendiri. n = 2q dengan q ∈ {1. q ∈ {1. Perfect Shuffle 16 prosesor vi-2 . P2. P0010 = P2 terhubung ke P0100 = P4. Lihat Gambar 6. atau ke-n2.1. 1..1.. dan prosesor IN Perfect Shuffle adalah P0. 2. P1.. banyaknya iterasi pada loop (2) bergantung pada nilai i yang diberikan pada loop (1). . indeks prosesor pertama adalah 0. 3. yaitu: P0..1) + (2 .

memperlihatkan peristiwa transpose matriks? 2q P0 P1 P2 M P15 Elemen yang dipegang Awal q = 1 q = 2 a11 a11 a11 a12 a31 a21 a13 a44 vi-3 .2) memerlukan waktu konstan. Lengkapi tabel tersebut berdasarkan Gambar 6. Perhatikan bahwa setelah 2 pergeseran ini P0 dan P15 sama sekali tidak memindahkan elemen matriks yang dipegangnya sedangkan elemen yang dipegang P5 dan P10 kembali kepada keadaan semula setelah dua pergeseran ini. Latihan: (Kerjakan dan kirim hasilnya ke ajuarna@staff.2) Pk mengirimkan elemen yang dipegangnya ke Pr (4) end for (5) end for Langkah (3.id) 1. seperti terlihat pada Gambar 6. dan q = 2. sekarang dipegang oleh Pr.1 dan tunjukkan dalam tabel bahwa memang benar prosesor Pk terhubung ke prosesor Pm.1) + (j . 2. elemen aij dari matriks A yang semula dipegang prosesor Pk.ac.1). Di lain pihak. dengan r = 2q(j . Dengan demikian. Contoh: Kembali.1).gunadarma. Pada pergeseran pertama elemen a12 ini berpindah ke P2 = P0010. Periksa Gambar 6.1) + (i . jika m diperoleh dengan menggeser satu posisi ke kiri secara siklus (cyclic left shifting). dengan k dan m adalah representasi biner. yaitu O(n2). setelah q pergeseran siklus bit-bit indeks prosesor. yaitu prosesor yang semula memegang elemen aji dari matriks A.2 do in parallel {'-2' karena P0 dan P2 2 q tidak diikutsertakan} (3.Algoritma dan Pemrograman Parallel by Dr. apakah kondisi akhir (q = 2). Asep Juarna Dengan n = 2q. jika dibandingkan dengan kondisi awal.1. Pada gambar tersebut mula-mula P1 = P0001 memegang elemen a12. IN Perfect Shuffle terkait seperti gambar di atas.1. Periksa.1) r ← 2 k mod( 2 −1) (3.1) dan (3. dengan k = 2q(i . Jumlah prosesor yang digunakan adalah p(n) = n2 sehingga cost procedure ini adalah c(n) = O(n2 log n) yang tidak optimal karena running time procedure sekuensial adalah lebih kecil. misalkan q = 2. Dengan demikian running time procedure par_shuffle_transpose di atas adalah t(n) = O(log n). q = 1. dan pada pergeseran kedua elemen a21 ini akhirnya berpindah ke P1 = P0001 yang mula-mula memegang a12. pada pergeseran pertama elemen a21 yang mula-mula dipegang oleh prosesor P4 = P0100 berpindah ke P8 = P1000. yaitu prosesor yang semula memegang a21. Pada pergeseran kedua elemen a12 ini akhirnya berpindah ke P4 = P0100. Tabel di samping menyatakan elemen matriks A yang dipegang oleh masingmasing dari 16 prosesor IN perfect shuffle pada kondisi. sedangkan iterasi (1) terdiri dari q langkah atau log n langkah mengingat n = 2q. procedure transpose matriks A menggunakan IN Perfect Shuffle adalah sebagai berikut: procedure par_shuffle_transpose (A) (1) for i = 1 to q do (2) for k = 1 to 22q .

a32 dengan a23. Dalam gambar tersebut prosesor-prosesor P21. i).2. Dengan demikian.j ↔ aj. dan P31 berturutturut bertugas menukarkan elemen-elemen matriks a21 dengan a12. j) dengan elemen matriks berindeks (j. sehingga cost procedure ini adalah c(n) = p(n) × t(n) = O(n2) yang berarti procedure par_SIMDEREW transpose adalah cost optimal. P21 a11 a12 a13 a21 a22 a23 a31 a32 a33 P32 P31 Gambar 6. Asep Juarna 1.i) adalah konstan sehingga running time procedure par_SIMD-EREW transpose adalah konstan. SIMD-EREW Pada awalnya seluruh elemen matriks A berukuran n × n tersimpan di dalam shared memory bersama dengan informasi posisi baris dan kolomnya (indeks) (i. dan a31 dengan a13.i (3) (4) end for (5) end for Running time procedure swap (yaitu ai. Tugas setiap prosesor SIMD-EREW adalah menukarkan elemen matriks berindeks (i.2. procedure transpose matriks A menggunakan SIMD-EREW adalah sebagai berikut: procedure par_SIMD-EREW_transpose (A) (1) for i = 2 to n do in parralel (2) for j = 1 to i .n)/2. Selanjutnya adalah fakta bahwa dalam transposisi matriks A semua elemen matriks A berindeks (i. vi-4 .2. P32.j ↔ aj.Algoritma dan Pemrograman Parallel by Dr. proses transposisi ini diperlihatkan pada Gambar 6.2. Untuk n = 3. j). Dengan tugas dan fakta ini maka jumlah prosesor SIMD-EREW yang diperlukan adalah p(n) = (n2 . atau t(n) = O(1).1 do in parallel ai. Transposisi matriks A berukuran 3 × 3 dengan 3 prosesor. i) tidak mengalami transposisi.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->