PERANCANGAN DAN ANALISIS JUMLAH PROSESOR MENGGUNAKAN MODEL CUBE-CONNECTED DAN TREE-CONNECTED DALAM ALGORITMA PARALEL Mike Susmikanti * ABSTRAK PERANCANGAN DAN ANALISIS JUMLAH PROSESOR MENGGUNAKAN MODEL CUBE-CONNECTED DAN TREE-CONNECTED DALAM ALGORITMA PARALEL. Komputasi paralel dirancang untuk menurunkan biaya, mengefisienkan ruang memori dan mempecepat perhitungan. Arsitektur sistem paralel diklasifikasikan dalam beberapa bentuk diantaranya multi-processor. Multiprocessor mengijinkan pemrosesan dengan alur instruksi yang terpisah. Algoritma paralel merupakan suatu metode solusi bagi permasalahan tertentu yang dirancang untuk komputer paralel. Dalam hal ini akan dibahas rancangan dan analisis jumlah prosesor yang digunakan serta alur instruksi dan data yang diproses oleh masing-masing prosesor. Simulasi diaplikasikan dalam operasi perkalian matriks dengan matriks dan matriks dengan vektor dalam algoritma paralel dan prosedur PASCAL. Model yang dipilih adalah komputer SIMD cube-connected dan tree-connected. Sistem komputer yang digunakan saat ini masih satu personil komputer dengan asumsi memori yang dipakai adalah virtual memory dengan beberapa address. Kata-kata kunci: Pemrosesan Paralel, Multiprocessor ABSTRACT THE DESIGN AND ANALYSIS OF THE NUMBER PROCESSOR USED THE CUBE- CONNECTED AND TREE-CONNECTED MODEL IN PARALLEL ALGORITHMS. Parallel computing has been made breakthroughs that have decreased costs and increased memory space and computing power. The parallel architectures are classified into some system. The one is multiprocessor. Multiprocessors allow processing elements to execute separate instruction streams. A parallel algorithm is a solution method for a given problem destined to be performed on a parallel computer. The number of processor is design to process the data. The simulation is applied to matrix-by-matrix and matrix-byvector multiplication in the algorithms parallel and procedure PASCAL. The model are used is the SIMD computer Cube-Connected and Tree-Connected. The computer system now is still used one the personnel computer with assumption the memory are used is the virtual memory with some address. Keywords: Parallel Processing, Multiprocessor * Pusat Pengembangan Informatika Nuklir - BATAN 7
PENDAHULUAN Beraneka ragam persoalan teknik dan ilmu pengetahuan berskala besar memerlukan sejumlah besar perhitungan. Persoalan yang dihadapi umumnya berkaitan dengan perkiraan pengaruh perubahan parameter pada energi. Sebagai contoh dalam perhitungan dinamik fluida yaitu rancangan reaktor nuklir dan dinamik plasma untuk aplikasi energi fusi nuklir. Data dan perhitungan perkiraan parameter membentuk sistem persamaan yang dinyatakan dalam bentuk matriks berikut operasinya. Pemrosesan paralel merupakan cara untuk mencapai kecepatan komputasi yang diinginkan dengan meningkatkan atau mengefisienkan ruang memori serta dirancang dengan tujuan melakukan penurunan biaya. Algoritma paralel merupakan suatu metode penyelesaian bagi permasalahan tertentu yang dirancang untuk komputer paralel []. Pembahasan meliputi rancangan dan analisis jumlah prosesor yang digunakan serta alur instruksi dan data yang diproses oleh masing-masing prosesor. Simulasi diaplikasikan dalam operasi perkalian matriks dengan matriks dan matriks dengan vektor dalam algoritma dan prosedur PASCAL. Algoritma paralel ini dirancang untuk diproses pada komputer SM SIMD (Shared Memory, Single Instruction stream - Single Data stream) dengan model kubus-terhubung dan pohon-terhubung. Difokuskan sistem komputer yang digunakan saat ini masih satu personil komputer dengan asumsi memori yang dipakai adalah virtual memory dengan beberapa address. KOMPUTER SIMD Salah satu model komputasi paralel pada komputer adalah model dengan instruksi yang sama dapat memproses data yang berbeda (SIMD) []. Pada model komputer paralel terdiri dari N prosesor yang sama (gambar-). Masing-masing N prosesor mempunyai memori lokal yang dapat menyimpan data maupun program. Semua prosesor beroperasi berdasarkan kontrol sebuah aliran perintah tunggal yang dikeluarkan oleh sebuah unit kontrol pusat. Sejumlah N prosesor diasumsikan menyimpan hal yang sama dari sebuah program, masing-masing nilai prosesor disimpan di dalam memori lokal. Terdapat sejumlah aliran data yang dibagi per prosesor. Dalam penyelesaian beberapa masalah pada komputer SIMD, dimungkinkan prosesor mampu berkomunikasi guna melakukan pertukaran data atau hasil. Hal ini dapat dilakukan dengan dua cara yaitu dengan komunikasi melalui memori bersama dan jaringan interkoneksi. 8
Memori Bersama/ Jaringan Interkoneksi Aliran data Aliran data 2 Aliran data n Prosesor Prosesor 2. Prosesor n Aliran intruksi Kontrol Gambar- : Model Komputer SIMD Komputer SIMD Memori Bersama (Shared Memory) Jenis komputer ini dikenal sebagai model Parallel Random Access Memory (PRAM) [5]. Dalam hal ini, N prosesor berbagi memori bersama. Selama pelaksanaan algoritma parallel, N prosesor mengakses memori bersama untuk membaca input data, membaca atau menulis hasil-hasil antara dan menulis hasil akhir. Model dasar ini memungkinkan semua prosesor untuk mengakses ke memori bersama secara simultan apabila lokasi memori yang ingin dibaca atau ditulis adalah berbeda. Model memori bersama meliputi memori bersama secara fisik ( physical) dan bayangan (virtual) []. Dalam hal ini digunakan model memori bersama secara virtual. Komputer SIMD Jaringan-Terhubung (Interconection Network) Model SIMD SM dapat dibuat menjadi layak dengan membagi memori menjadi blok-blok dan menjadikannya akses ke blok-blok ini secara eksklusif (dua prosesor tidak mungkin secara simultan membaca dari/atau menulis ke lokasi memori). Pada jaringan-interkoneksi, M lokasi dari memori bersama didistribusikan diantara N prosesor, masing-masing menerima M/N lokasi memori. Disamping itu setiap pasang prosesor dihubungkan oleh sebuah jalur dua arah. Algoritma pada jaringaninterkoneksi dapat disimulasikan pada model memori bersama dengan langkah antara 9
lain jajaran satu dimensi (linear), jajaran dua dimensi (Mesh), hubungan-pohon (Tree- Connection), hubungan-kubus (Cube Connection) dan hubungan-campuran (Perfect Shuffle Connection) [,]. Dalam hal ini akan disimulasikan langkah-langkah dalam pohon-terhubung (gambar-2) dan kubus-terhubung (gambar-) pada operasi matriks khususnya perkalian matriks dengan vektor dan perkalian matriks dengan matriks, yang berperan salah satunya pada penyelesaian sistim persamaan serta permasalahan graf. Akan dianalisis jumlah prosesor yang diperlukan atau dirancang, waktu yang diperlukan dan biaya yang mempunyai keterkaitan dengan jumlah prosesor. Akar P 7 Tingkat- P 5 P 6 Tingkat-2 Tingkat- Daun P P 2 P P Gambar-2 : Pohon-terhubung dengan tujuh prosesor P P 9 P 5 P P P P 7 P 5 P 6 P 2 P P P 0 P 2 P 8 P 6 Gambar- : Kubus-terhubung dengan enam belas prosesor 20
RANCANGAN DAN ANALISIS ALGORITMA PARALEL Sejumlah teknik rancangan algoritma digambarkan dalam hubungan berbagai model komputasi paralel yang dibahas sebelumnya diatas. Contoh kasus yang dibahas berhubungan dengan permasalahan analisis algoritma yaitu waktu yang diperlukan, biaya untuk memproses dan efisiensi penggunaan sumber daya. Suatu algoritma yang dirancang, dievaluasi menggunakan beberapa kriteria antara lain waktu yang diperlukan untuk menjalankannya (running time), jumlah prosesor yang digunakan dan biaya []. Disamping itu perlu dipertimbangkan sejumlah ukuran yang berkaitan dengan teknologi tertentu misalnya komputer yang digunakan ataupun penggunaan sistem jaringan. Alasan utama terhadap pembuatan komputer paralel adalah mempercepat komputasi. Sehingga ukuran yang terpenting didalam mengevaluasi algoritma paralel adalah running time-nya serta kebenaran program juga harus dipertahankan. Running time didefinisikan sebagai waktu yang diperlukan mulai dari awal algoritma dilaksanakan sampai saat berakhir. Apabila berbagai prosesor tidak memulai dan mengakhiri komputasinya secara bersama, maka running timenya adalah sama dengan waktu antara saat prosesor pertama mulai melakukan komputasi dan saat prosesor terakhir mengakhiri komputasi. Misalnya suatu permasalahan yang besarnya n, running time pada kasus terburuk dari suatu algoritma adalah suatu fungsi n yang disimbolkan dengan t(n) [6]. Kriteria kedua yang paling penting didalam mengevaluasi algoritma paralel adalah jumlah prosesor yang diperlukan untuk memecahkan permasalahan dan komunikasi antar prosesor. Disisi lain perlu dipertimbangkan permasalahan faktor perawatan khususnya yang akan meningkat, dan harga yang harus dibayar untuk menjamin tingkat kehandalannya yang tinggi. Semakin besar jumlah prosesor yang digunakan oleh algoritma untuk memecahkan permasalahan, semakin mahal pula biayanya yang harus dikeluarkan. Untuk permasalahan yang berukuran n, maka jumlah prosesor yang diperlukan oleh suatu algoritma, sebagai fungsi n yang ditunjukkan dengan p(n). Kriteria berikutnya adalah biaya dari suatu algoritma paralel yang didefinisikan sebagai hasil kali dua ukuran sebelumnya, dinyatakan sebagai: Biaya = running time paralel x jumlah prosesor yang digunakan Biaya sama dengan jumlah langkah yang dilaksanakan secara bersama oleh semua prosesor dalam memecahkan masalah dengan kasus terburuk (worst case) pada algoritma. Diasumsikan sejumlah prosesor melaksanakan sejumlah langkah yang sama. Apabila tidak demikian, maka biayanya adalah batas atas jumlah langkah yang dilaksanakan. Untuk permasalahan berukuran n prosesor maka biaya diperkirakan sebagai fungsi dari n yaitu c(n) = p(n) x t(n), walaupun demikian tergantung pula dari masing-masing persoalan yang dibahas. 2
PERKALIAN MATRIKS DAN VEKTOR DENGAN POHON-TERHUBUNG Perkalian matriks dan vektor dengan pohon-terhubung diperoleh m-+log(n) langkah atau tahap. Langkah tersebut terlihat pada gambar-, yaitu sejumlah tiga tahap untuk m = dan n =. Secara umum diagram pohon mempunyai n buah prosesor daun P, P 2,..., P n, dan n-2 prosesor menengah P n+, P n+2,..., P 2n-2, serta prosesor akar P 2n-. Algoritma dari proses diatas [], dinyatakan dalam prosedur MVTREE (lampiran-), khusus untuk matriks order m x 2 dan vektor order 2 x : (i) Prosesor daun P i menyimpan u i selama pelaksanaan algoritma. (ii) Matriks A dimasukkan ke dalam diagram pohon baris demi baris, satu unsur per daun. Prosesor P i menerima a ji, maka akan dihitung u i x a ji dan mengirimkan hasil perkalian ke induknya. (iii) Proses menengah atau prosesor akar P k akan menerima dua masukan dari anakanaknya, menambahkan dan mengirimkan hasilnya kepada induknya. Akhirnya v j akan muncul dari prosesor akar. 500 200 50 60 50 60 0 0 (a) 20 0 0 0 (b) 700 700 900 500 200 50 60 50 60 (c) (d) Gambar-. Perkalian matriks dan vektor menggunakan prosedur MVTREE untuk n = 2 22
Berikut hasil program untuk perkalian matriks khusus order 2 x 2 dengan vektor order 2 x untuk persoalan tersebut diatas; Output program: order of Matrix & Vector 2 2 Matrix Input 0 20 0 0 Vector Input 50 60 Process Tree Multiplication of Matrix & Vector : P() : 500 P(2) : 200 P() : 500 P(2) : 200 Processor() :700 Root() :700 Processor() :900 Root(2) :900 Output Matrix 700 900 Prosedur matriks order m x n dan vektor order n x untuk perkalian matriks khususnya n > 2 ditunjukkan dalam prosedur MULTITREE (Lampiran-2). Berikut ini hasil program untuk perkalian matriks order x dengan vektor x. Output Program: order of Matrix & Vector Matrix Input 2 2 2 Vector Input 0 20 0 0 2
Process Tree Multiplication of Matrix & Vector : Processor() : 0 Processor(2) : 0 Processor() : 90 Processor() : 60 Processor() : 0 Processor(2) : 0 Processor() : 90 Processor() : 60 Processor() : 0 Processor(2) : 0 Processor() : 90 Processor() : 60 Processor(5) :50 Processor(6) :250 Root() :00 Processor(5) :50 Processor(6) :250 Root(2) :00 Processor(5) :50 Processor(6) :250 Root() :00 Output Matrix V() : 00 V(2) : 00 V() : 00 2
Diagram pohon untuk proses diatas dapat digambarkan sebagai berikut : V V 2 V P 7 P 5 P 6 P 0 P 2 20 P 0 P 0 2 2 2 Gambar-5 : Perkalian matriks dan vektor untuk order n > 2 ANALISIS Diperlukan log n langkah setelah baris pertama matriks A dimasukkan pada prosesor daun agar v muncul dari prosesor akar. Kemudian diperlukan m- langkah hingga v m muncul dari akar. Berarti prosedur MVTREE/ MULTITREE membutuhkan m +log(n) langkah. Karena digunakan 2n- prosesor, maka akan berjalan dalam waktu t(n) = O(n) ketika m n dan prosedur akan memiliki biaya O(n 2 ). Dalam hal ini biaya adalah optimal jika dibandingkan dengan Ω ( n 2 ) yaitu waktu yang dibutuhkan jika diproses secara berurutan [6]. 25
PERKALIAN MATRIKS DENGAN MATRIKS MENGGUNAKAN KUBUS-TERHUBUNG Kubus didefinisikan sebagai kumpulan n prosesor, dimana n = 2 q. Algoritma dirancang mengikuti arsitektur kubus-biner. Masing-masing n simpul mempunyai log n hubungan dengan simpul tetangganya [2]. Algoritma meliputi tiga tahap :. Unsur-unsur matriks A dan B didistribusikan ke seluruh n prosesor. Dilakukan penyimpanan elemen a dan b yang menghasilkan, A(i,j,k) = a ji dan B(i,j,k) = b ik 2. Hasil dari C(i,j,k) = A(i,j,k) x B(i,j,k) dihitung n. Jumlah C( i, j, k) dihitung i= Algoritma diatas dinyatakan dalam prosedur PRODCUB (Lampiran-). Berikut hasil program dari prosedur PRODCUB Output Program : Matrix Order x x Matrik Input I 7 2 27 9 6 26 22 8 5 0 29 Matrix Input II -7-25 -9-5 -8-0 -28-2 - -2 - -2-20 -2-6 -2 The content of Proccessor for elemen A & B P()7 & -7 P(2)7 & -25 P()7 & -9 P()7 & -5 P(5)9 & -7 P(6)9 & -25 P(7)9 & -9 P(8)9 & -5 P(9) & -7 26
P(0) & -25 P() & -9 P(2) & -5 P()5 & -7 P()5 & -25 P(5)5 & -9 P(6)5 & -5 P(7)2 & -8 P(8)2 & -0 P(9)2 & -28 P(20)2 & -2 P(2) & -8 P(22) & -0 P(2) & -28 P(2) & -2 P(25)26 & -8 P(26)26 & -0 P(27)26 & -28 P(28)26 & -2 P(29) & -8 P(0) & -0 P() & -28 P(2) & -2 P()27 & - P()27 & -2 P(5)27 & - P(6)27 & -2 P(7) & - P(8) & -2 P(9) & - P(0) & -2 P()22 & - P(2)22 & -2 P()22 & - P()22 & -2 P(5)0 & - P(6)0 & -2 P(7)0 & - P(8)0 & -2 P(9) & -20 P(50) & -2 27
P(5) & -6 P(52) & -2 P(5)6 & -20 P(5)6 & -2 P(55)6 & -6 P(56)6 & -2 P(57)8 & -20 P(58)8 & -2 P(59)8 & -6 P(60)8 & -2 P(6)29 & -20 P(62)29 & -2 P(6)29 & -6 P(6)29 & -2 Matrix or Processor Ouput -9-688 -282-297 -58-58 -9-889 - -20-607 -6-887 -76-68 -9 Terdapat N = n = 6 prosesor yang tersedia pada komputer SIMD kubus-terhubung, dinyatakan dalam tabel -a berikut, sesuai algoritma tahap diatas. Pada tahap 2 diperoleh tabel -b. Tabel -c adalah hasil tahap sekaligus hasil perkalian matriks. 28
Tabel -a 7-7 2-25 27-9 -5 7-7 2-25 27-9 -5 7-7 2-25 27-9 -5 7-7 2-25 27-9 -5 9-8 -0-28 6-2 9-8 -0-28 6-2 9-8 -0-28 6-2 9-8 -0-28 6-2 - 26-2 22-8 -2-26 -2 22-8 -2-26 -2 22-8 -2-26 -2 22-8 -2 5-20 -2 0-6 29-2 5-20 -2 0-6 29-2 5-20 -2 0-6 29-2 5-20 -2 0-6 29-2 Tabel -b 7-7 7-25 7-9 7-5 2-8 2-0 2-28 2-2 27-27 -2 27-27 -2-20 -2-6 -2 9-8 9-0 9-28 9-2 -8-0 -28-2 - -2 - -2 6-20 6-2 6-6 6-2 - -2 - -2 26-8 26-0 26-28 26-2 22-22 -2 22-22 -2 8-20 8-2 8-6 8-2 5-20 5-2 5-6 5-2 -8-0 -28 2-2 0-0 -2 0-0 -2 29-20 29-2 29-6 29-2 Tabel -c -9-688 -282-297 -58-58 -9-889 - -20-607 -6-887 -76-68 -9
ANALISIS Pada tahap dan terdiri dari q iterasi dengan waktu konstan, sementara tahap 2 mengambil waktu konstan. Setiap nilai c(i,j) adalah jumlah dari n elemen. Prosedur perkalian matriks kubus-terhubung berjalan dalam waktu t(n) = O(log n). Pada prosedur perkalian matriks dengan kubus-terhubung terdiri dari n prosesor, sehingga biaya yang dimiliki c(n) = O(n log(n)). Waktu pelaksanaan prosedur perkalian matriks secara berurutan adalah Ω ( n ) = n [6], dengan biaya c(n) = O(n ). Berarti waktu pelaksanaan, prosedur perkalian matriks kubus-terhubung lebih cepat dibandingkan secara berurutan, namun dari segi biaya lebih tinggi. KESIMPULAN Algoritma paralel merupakan salah satu metode penyelesaian bagi suatu permasalahan tertentu yang dirancang untuk komputer paralel. Dengan algoritma paralel, jumlah prosesor dapat dirancang sesuai dengan kebutuhan ditinjau dari faktor biaya. Alur instruksi dan data yang diproses dapat didistribusikan ke masing-masing prosesor. Simulasi operasi perkalian matriks dengan matriks dan matriks dengan vektor merupakan salah satu cara penerapan dalam algoritma paralel. Algoritma pada jaringan-interkoneksi dapat disimulasikan dalam model memori bersama dengan salah satu langkah antara lain Tree-Connection dan Cube- Connection. Waktu yang diperlukan pada pohon-terhubung jika dibandingkan dengan secara berurutan lebih singkat dan biaya lebih kecil atau sama. Pada kubus-terhubung, waktu pelaksanaan, lebih cepat dibandingkan secara berurutan, namun demikian dari segi biaya lebih tinggi. DAFTAR PUSTAKA. AKL, SELIM G., The Design and Analysis of Parallel Algorithms, Prentice Hall, Inc., New Jersey, 989. 2. DESROCHERS, GEORGE R., Principles of Parallel and Multiprocessing, McGraw-Hill Book Co., Singapore, 988. 0
. GRAMMATIKAKIS, MILTOS D.; FRANK HSU, D. AND KRAETZL, MIRO, Parallel System Interconnections and Communications, CRC Press LLC, New York, 200.. LEWIS, TED G.; EL-REWINI, HISHAM, Introduction to Parallel Computing, Prentice Hall Int. Editions, 992. 5. QUINN, MICHAEL J., Parallel Computing, Theory and Practice, Mc Graw-Hill Inc, Second Editions, 99. 6. SURYADI, M.T., Pengantar Analisis Algoritma, penerbit Gunadarma, Jakarta, 996. DAFTAR RIWAYAT HIDUP. Nama : Dra. Mike Susmikanti, MM 2. Tempat/Tanggal Lahir : Jakarta, 2 November 956. Instansi : BATAN. Pekerjaan / Jabatan : Staf PPIN-BATAN 5. Riwayat Pendidikan : SMatematika Statistik FIPIA UI S2 Magister Manajemen 6. Pengalaman Kerja : 980-sekarang, BATAN
Lampiran- : Prosedur perkalian matriks m x n dengan vektor n x khusus n = 2. Procedure MVTREE (A,U); var A,TEMP : array[..20,..20] of Integer; P,V,U : array[..20] of Integer; I,J,K,L,M,N,IT,Root : Integer; FVar : Text; FName : String; Writeln(FVar,'Process Tree Multiplication of Matrix & Vector :'); for I := to M do for J := to N do TEMP[I,J] := A[I,J]*U[J]; P[J] := TEMP[I,J]; writeln(fvar,'p(',j,') : ',P[J]); for I := to M do IT := 0; Root :=0; for J := N+ to 2*N- do P[J] := TEMP[I,(J-N)+IT] + TEMP[I,(J-N)+IT+]; WriteLn(FVar,'Processor(',J,') :',P[J]); IT := IT + ; Root := P[J]; WriteLn(FVar,'Root(',I,') :',Root); V[I]:= Root; end 2
Lampiran-2 : Prosedur perkalian matriks m x n dengan vektor n x untuk n > 2. Procedure MULTITREE (A, U) ; var A,TEMP : array[..0,..0] of Integer; P,V,U : array[..0] of Integer; I,J,K,L,M,N,IT,Root : Integer; FVar : Text; FName : String; Writeln(Fvar,'Process Tree Multiplication of Matrix & Vector :'); for I := to M do for J := to N do TEMP[I,J] := A[I,J]*U[J]; P[J] := TEMP[I,J]; writeln('processor(',j,') : ',P[J]); writeln(fvar,'processor(',j,') : ',P[J]); for I := to M do IT := 0; Root := 0; for J := N+ to 2*N- do IF J < 2*N- then P[J] := TEMP[I,(J-N)+IT] + TEMP[I,(J-N)+IT+]; WriteLn('Processor(',J,') :',P[J]); WriteLn(FVar,'Processor(',J,') :',P[J]); IT := IT + ; Root := Root + P[J]; WriteLn('Root(',I,') :',Root); WriteLn(FVar,'Root(',I,') :',Root); V[I]:= Root;
Lampiran- : Prosedur perkalian matriks dengan matriks Procedure PRODCUB; var A,B,C : array[..0,..0,..0] of integer; TOT : array[..0,..0] of integer; i,j,k,n,idx : Integer; FVar : Text; FName : String; for i := to n do for j := to n do for k := to n do A[i,j,k] := A[,j,k]; B[i,j,k] := B[,j,k]; WriteLn(FVar,'The content of Proccessor for elemen A & B'); idx := ; for i := to n do for j := to n do for k := to n do A[i,j,k] := A[i,j,i]; B[i,j,k] := B[i,i,k]; WriteLn(FVar,'P(',idx,')',A[i,j,k],' & ',B[i,j,k]); idx := idx + ; for i := to n do for j := to n do for k := to n do C[i,j,k] := A[i,j,k]*B[i,j,k]; Writeln(FVar,'Matrix or Processor Ouput'); for j := to n do for k := to n do TOT[j,k] := 0; for i := to n do TOT[j,k] := TOT[j,k] + C[i,j,k]; WriteLn(FVar,TOT[j,k]);