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

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

Dengan demikian running time procedure par_shuffle_transpose di atas adalah t(n) = O(log n).1.ac. Lengkapi tabel tersebut berdasarkan Gambar 6. sedangkan iterasi (1) terdiri dari q langkah atau log n langkah mengingat n = 2q.2) Pk mengirimkan elemen yang dipegangnya ke Pr (4) end for (5) end for Langkah (3. setelah q pergeseran siklus bit-bit indeks prosesor.2 do in parallel {'-2' karena P0 dan P2 2 q tidak diikutsertakan} (3. Latihan: (Kerjakan dan kirim hasilnya ke ajuarna@staff.1). Periksa Gambar 6. Pada pergeseran pertama elemen a12 ini berpindah ke P2 = P0010. jika m diperoleh dengan menggeser satu posisi ke kiri secara siklus (cyclic left shifting). Pada gambar tersebut mula-mula P1 = P0001 memegang elemen a12. 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.1). dengan r = 2q(j . apakah kondisi akhir (q = 2).id) 1. 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. misalkan q = 2.1) + (i . Asep Juarna Dengan n = 2q. jika dibandingkan dengan kondisi awal.1) + (j .1. 2. Contoh: Kembali. Tabel di samping menyatakan elemen matriks A yang dipegang oleh masingmasing dari 16 prosesor IN perfect shuffle pada kondisi.1 dan tunjukkan dalam tabel bahwa memang benar prosesor Pk terhubung ke prosesor Pm. dan q = 2. sekarang dipegang oleh Pr. Di lain pihak. dan pada pergeseran kedua elemen a21 ini akhirnya berpindah ke P1 = P0001 yang mula-mula memegang a12. yaitu O(n2). IN Perfect Shuffle terkait seperti gambar di atas. Periksa.gunadarma.1) r ← 2 k mod( 2 −1) (3. Dengan demikian.Algoritma dan Pemrograman Parallel by Dr. yaitu prosesor yang semula memegang elemen aji dari matriks A. dengan k = 2q(i .1) dan (3. dengan k dan m adalah representasi biner. 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. seperti terlihat pada Gambar 6.2) memerlukan waktu konstan. q = 1. 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 . 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 . elemen aij dari matriks A yang semula dipegang prosesor Pk.

Untuk n = 3.2. Transposisi matriks A berukuran 3 × 3 dengan 3 prosesor. dan a31 dengan a13. dan P31 berturutturut bertugas menukarkan elemen-elemen matriks a21 dengan a12. i).2. sehingga cost procedure ini adalah c(n) = p(n) × t(n) = O(n2) yang berarti procedure par_SIMDEREW transpose adalah cost optimal.n)/2. Dalam gambar tersebut prosesor-prosesor P21. Dengan demikian. Asep Juarna 1. proses transposisi ini diperlihatkan pada Gambar 6. Tugas setiap prosesor SIMD-EREW adalah menukarkan elemen matriks berindeks (i. j) dengan elemen matriks berindeks (j. 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 . P21 a11 a12 a13 a21 a22 a23 a31 a32 a33 P32 P31 Gambar 6. i) tidak mengalami transposisi. j). vi-4 .1 do in parallel ai.j ↔ aj.2.i (3) (4) end for (5) end for Running time procedure swap (yaitu ai. Selanjutnya adalah fakta bahwa dalam transposisi matriks A semua elemen matriks A berindeks (i.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. Dengan tugas dan fakta ini maka jumlah prosesor SIMD-EREW yang diperlukan adalah p(n) = (n2 .Algoritma dan Pemrograman Parallel by Dr.2. P32. atau t(n) = O(1).j ↔ aj. a32 dengan a23.

Sign up to vote on this title
UsefulNot useful