ANALISIS DAN IMPLEMENTASI MODEL PARALEL HYBRID DENGAN MPI DAN OPENMP PADA METODE CONJUGATE GRADIENT ANGGI HARYO SAKSONO

Ukuran: px
Mulai penontonan dengan halaman:

Download "ANALISIS DAN IMPLEMENTASI MODEL PARALEL HYBRID DENGAN MPI DAN OPENMP PADA METODE CONJUGATE GRADIENT ANGGI HARYO SAKSONO"

Transkripsi

1 ANALISIS DAN IMPLEMENTASI MODEL PARALEL HYBRID DENGAN MPI DAN OPENMP PADA METODE CONJUGATE GRADIENT ANGGI HARYO SAKSONO DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2010

2 ANALISIS DAN IMPLEMENTASI MODEL PARALEL HYBRID DENGAN MPI DAN OPENMP PADA METODE CONJUGATE GRADIENT ANGGI HARYO SAKSONO Skripsi Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2010

3 ABSTRACT ANGGI HARYO SAKSONO. The Analysis and Implementation of Parallel Hybrid Model with MPI and OpenMP on Conjugate Gradient Method. Supervised by HENDRA RAHMAWAN. Conjugate Gradient method is one of the iterative methods to solve linear equation system. The method consumes much time to get the solution. Therefore to reduce its execution time, parallel processing is implemented on this method. There was a research related to this topic by Hoefler et al (2007). On their research, they were optimizing a pure MPI implementation by modifying collective functions into a non-blocking collective communication. This research used parallel hybrid model by combining MPI and OpenMP. The aim of this research is to analyze and implement the complexity and the performance of sequential, MPI and hybrid conjugate gradient algorithm. The analysis performed in this research includes the analysis of performance metrics and the experimental results of every implementation. This research uses 8 computers for running MPI processes and for hybrid experiment added 4 threads for running OpenMP on every computer. There are five matrices uses in this research obtained from matrices collection of University of Florida. The results of this research show that the execution time of all implementation for matrices with greater sizes give longer time. For example, on sequential implementation a matrice size of 2548 x 2548 takes seconds and a matrice size of 4884 x 4884 takes seconds. The execution time of MPI conjugate gradient is less than its sequential implementation, and the execution time of hybrid conjugate gradient is less than its MPI conjugate gradient. The speedup of MPI and hybrid conjugate gradient grows but not proportionally with the increasing size of matrices used. The overall result of hybrid implementation is quite good when the number of thread used is the same as the number of processor available on the computer. Keywords : parallel processing, parallel hybrid model, mixed mode MPI/OpenMP programming, conjugate gradient, parallel conjugate gradient.

4 Penguji: 1. Endang Purnama Giri. S.Kom., M.Kom 2. Dr. Ir. Sri Nurdiati., M.Sc

5 Judul Skripsi Nama NIM : Analisis dan Implementasi Model Paralel Hybrid dengan MPI dan OpenMP pada Metode Conjugate Gradient : Anggi Haryo Saksono : G Menyetujui: Pembimbing Hendra Rahmawan, S.Kom, M.T Mengetahui : Ketua Departemen Ilmu Komputer, Dr. Ir. Sri Nurdiati, M.Sc NIP Tanggal Lulus :

6 PRAKATA Alhamdulillahi Rabbil 'alamin, puji dan syukur penulis panjatkan kepada Allah SWT atas segala limpahan rahmat, hidayah, serta karunia-nya sehingga skripsi ini berhasil diselesaikan. Shalawat dan salam tidak lupa saya tujukan kepada baginda Nabi Muhammad SAW, sebab karena beliaulah penulis bisa merasakan nikmat iman dan islam. Tema yang dipilih pada penelitian yang dilaksanakan sejak bulan September 2009 ini adalah pemrosesan paralel, dengan judul Analisis dan Implementasi Model Paralel Hybrid dengan MPI dan OpenMP Pada Metode Conjugate Gradient. Terima kasih penulis ucapkan kepada pihak-pihak yang telah membantu penyelesaian tugas akhir ini, diantaranya: 1. Kedua orang tua dan seluruh keluarga yang selalu memberi dukungan dan doa kepada penulis. 2. Bapak Hendra Rahmawan selaku dosen pembimbing yang telah banyak membantu, memberi saran dan membimbing penulisi selama melakukan penelitian. 3. Bapak Endang Purnama Giri dan Ibu Sri Nurdiati yang telah menguji penulis dengan materimateri yang masih dapat ditangani oleh penulis. 4. Teman sejawat Purwa Purdiawan, R. A Fakih Basyarudin, Iqbal Nurdiansyah, Dimas Cahyo P, dan Indra Rusdiansyah atas segala kerja sama dan bantuan selama penelitian maupun saat seminar dan ujian sidang. 5. Seluruh teman-teman penghuni kos Pak Timo yang memberikan dukungan moril dan materi serta canda-tawa penghilang penat selama penelitian ini. 6. Kepada para penunggu laboratorium komputer yaitu pak Edi, Aput, Dayat, Toni, dan Yudha yang telah membantu dan menemani penulis selama percobaan. 7. Semua teman-teman Ilmu Komputer Ekstensi Angkatan Dua atas persahabatan, kebersamaan, semangat dan segala bantuannya. Kritik dan saran yang membangun sangat penulisi harapkan untuk kemajuan di masa depan. Semoga tulisan ini dapat bermanfaat bagi akademisi Ilmu Komputer. Bogor, April 2010 Anggi Haryo Saksono

7 RIWAYAT HIDUP Penulis dilahirkan di Jakarta pada tanggal 28 Januari 1987 sebagai anak keempat dari lima bersaudara dari pasangan Suwardoyo dan Sumeni. Tahun 2004 penulis berhasil menamatkan pendidikan di SMA Negeri 91, Pondok Kelapa, Jakarta dan pada tahun yang sama penulis lulus seleksi masuk Program Diploma IPB melalui jalur reguler. Penulis memilih Program Studi Teknik Informatika, Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam. Pada tahun 2007 penulis berhasil lulus dari Program Diploma IPB dan langsung diterima bekerja sebagai staf di KPSI IPB. Pada tahun yang sama pula penulis melanjutkan pendidikan ke jenjang Strata 1 di IPB pada Jurusan Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam.

8 DAFTAR ISI Halaman DAFTAR GAMBAR...viii DAFTAR LAMPIRAN...ix PENDAHULUAN...1 Latar Belakang...1 Tujuan...1 Ruang Lingkup...1 Manfaat...2 TINJAUAN PUSTAKA...2 Disain Algoritme Paralel...2 Model Pemrograman Paralel...2 Speedup...3 Efisiensi...4 Cost...4 Total Parallel Overhead...4 Isoefisiensi...4 Matriks Simetri...4 Matriks Definit Positif...4 Conjugate...4 Conjugate Gradient (CG)...4 METODE PENELITIAN...4 Tahapan Penelitian...4 Studi Pustaka...5 Analisis Algoritme CG...5 Implementasi CG Sekuensial...5 Penerapan Metode Foster...5 Analisis dan Implementasi MPI Algoritme CG...5 Identifikasi, Analisis dan Implementasi Hybrid...6 Perancangan Percobaan...6 Percobaan...6 Analisis Hasil Percobaan...7 HASIL DAN PEMBAHASAN...7 Analisis dan Implementasi Algoritme CG Sekuensial...7 Penerapan Metode Foster...7 Analisis dan Implementasi Algoritme CG MPI...9 Penerapan Model Hybrid...11 Analisis dan Implementasi Algoritme CG Hybrid...12 Analisis Hasil Waktu Eksekusi...14 Analisis Hasil Speedup...16 Analisis Hasil Efisiensi...17 Analisis Cost...18 Analisis Total Parallel Overhead...18 KESIMPULAN DAN SARAN...19 Kesimpulan...19 Saran...20 DAFTAR PUSTAKA...20 LAMPIRAN...21 vii

9 DAFTAR GAMBAR Halaman 1 Metode Conjugate Gradient Skema tahapan penelitian Skema jaringan yang digunakan pada percobaan Kompleksitas tahapan pada fungsi CG sekuensial Grafik perhitungan kompleksitas CG sekuensial Skema keterkaitan fungsi pada iterasi CG Struktur algoritme CG MPI pada bagian iterasi Struktur algoritme dan kompleksitas fungsi CG MPI Grafik perhitungan kompleksitas CG MPI Grafik perhitungan speedup CG MPI Grafik perhitungan efisiensi CG MPI Struktur algoritme CG hybrid pada bagian iterasi Struktur algoritme dan kompleksitas fungsi CG hybrid Grafik perhitungan kompleksitas untuk tiap jumlah thread dengan ukuran matriks 2548 x Grafik perhitungan kompleksitas untuk tiap ukuran matriks dengan 2 thread Grafik perhitungan speedup untuk tiap jumlah thread dengan ukuran matriks 2548 x Grafik perhitungan speedup untuk tiap ukuran matriks dengan 2 thread Grafik perhitungan efisiensi untuk tiap jumlah thread dengan ukuran matriks 2548 x Grafik perhitungan efisiensi untuk tiap ukuran matriks dengan 2 thread Grafik waktu eksekusi implementasi CG sekuensial Grafik waktu eksekusi implementasi MPI Grafik waktu eksekusi untuk setiap implementasi dengan ukuran matriks 2548 x Grafik waktu eksekusi untuk setiap implementasi dengan ukuran matriks 4884 x Grafik waktu eksekusi implementasi hybrid untuk tiap ukuran matriks dengan 2 thread Grafik waktu eksekusi dan waktu iterasi implementasi MPI dan hybrid 2 thread untuk ukuran matriks 2548 x Grafik speedup hasil percobaan implementasi MPI Grafik speedup hasil percobaan hybrid untuk setiap ukuran matriks dengan 2 thread Grafik speedup hasil percobaan untuk setiap implementasi dengan ukuran matriks 2548 x Grafik efisiensi hasil percobaan implementasi MPI Grafik efisiensi hasil percobaan hybrid untuk setiap ukuran matriks dengan 2 thread Grafik efisiensi hasil percobaan untuk setiap implementasi dengan ukuran matriks 2548 x Grafik cost hasil percobaan implementasi MPI Grafik cost hasil percobaan untuk setiap implementasi dengan ukuran matriks 2548 x Grafik overhead hasil percobaan implementasi MPI Grafik overhead hasil percobaan untuk setiap implementasi dengan ukuran matriks 2548 x viii

10 DAFTAR LAMPIRAN Halaman 1 Grafik waktu eksekusi implementasi MPI dan hybrid pada untuk setiap kombinasi Grafik speedup implementasi MPI dan hybrid pada untuk setiap kombinasi Grafik efisiensi implementasi MPI dan hybrid pada untuk setiap kombinasi Grafik cost implementasi MPI dan hybrid pada untuk setiap kombinasi Grafik overhead implementasi MPI dan hybrid pada untuk setiap kombinasi...26 ix

11 Latar Belakang PENDAHULUAN Model pemrograman paralel dibutuhkan dalam implementasi pemrograman paralel pada suatu sistem paralel. Sistem distributed memory dapat menggunakan model pemrograman message-passing. Implementasi dari model message-passing yang banyak digunakan adalah Message Passing Interface (MPI). Pada sistem shared memory dapat menggunakan model pemrograman shared-memory dan implementasi yang biasa digunakan adalah Open Multi- Processing (OpenMP). Sistem distributedshared memory merupakan hasil kombinasi dua sistem paralel. Model pemrograman sistem ini harus mampu memanfaatkan kemampuan kedua sistem penyusunnya, sehingga model ini haruslah model kombinasi juga, yaitu model hybrid. Model hybrid adalah hasil kombinasi dua atau lebih model pemrograman paralel (Smith, 2000; Dongara et al. 2003). Pada penelitian ini, model hybrid akan diimplementasikan pada metode Conjugate Gradient (CG). CG adalah metode yang paling terkenal yang digunakan dalam penyelesaian sistem persamaan linear (SPL) yang besar dengan matriks simetris dan definit positif (Schewchuk, 1994). Metode ini bersifat iteratif, sehingga dapat diaplikasikan pada SPL yang mana akan sulit jika diselesaikan dengan metode secara langsung. Dipilihnya metode CG dalam penelitian ini karena metode ini membutuhkan waktu komputasi yang lama dalam penyelesaiannya, sehingga baik jika dioptimasi secara paralel. Penelitian yang terkait dengan hal ini telah dilakukan oleh Hoefler et al. (2007), dengan judul Optimizing a Conjugate Gradient Solver with Non-Blocking Collective Operations. Penelitian tersebut menggunakan library MPI yang sudah dimodifikasi pada bagian fungsi kolektif, yakni dimodikasi secara non-blocking. Pada penelitian tersebut diperoleh kesimpulan bahwa peningkatan waktu eksekusi sampai dengan 34% dari pada sekedar fungsi kolektif yang standar. Berdasarkan hasil penelitian tersebut, maka pada penelitian ini digunakan cara lain untuk mengoptimasi paralel CG MPI, yaitu dengan mengimplementasikan model hybrid. Pada penelitian ini untuk model messagepassing digunakan library MPI, sedangkan untuk model shared-memory digunakan library OpenMP. Penggunaan kedua library ini karena berdasarkan fakta bahwa keduanya paling banyak digunakan secara luas pada model hybrid, dikarenakan keunggulan keduanya berdasarkan tingkat portability. Kedua library ini juga dianggap mewakili standar industri untuk sistem distributed memory dan shared memory (Smith, 2000). Tujuan Tujuan dari penelitian ini adalah: 1. Mengimplementasikan konsep pemrosesan paralel dengan model pemrograman paralel hybrid secara bertahap pada metode CG. 2. Menganalisis kinerja algoritme CG sekuensial, CG MPI, dan CG hybrid dari performance metric. 3. Menganalisis kinerja algoritme CG sekuensial, CG MPI, dan CG hybrid dari hasil percobaan yang diperoleh. Ruang Lingkup Ruang lingkup dan batasan yang digunakan pada penelitian ini yaitu: 1. Seluruh tahapan penelitian dilakukan pada sistem operasi Linux. 2. Implementasi model hybrid menggunakan library MPI untuk mewakili model message-passing dan library OpenMP untuk mewakili model shared-memory. Bahasa pemrograman yang digunakan adalah C dengan kompilator GNU C. 3. Penelitian ini menggunakan delapan buah komputer untuk eksekusi implementasi MPI dan untuk implementasi hybrid menggunakan maksimal 4 thread. 4. Matriks koefisien SPL yang digunakan adalah model dense. Ada 5 buah matriks yang digunakan dan diperoleh dari koleksi matriks University of Florida. 5. Percobaan yang dilakukan hanya mengukur tingkat performance berdasarkan waktu eksekusi, speedup, efisiensi, cost, total parallel overhead, dan isoefisiensi. 6. Pada percobaan yang dilakukan, eksekusi program dari metode CG tidak sampai terpenuhinya toleransi residu yang diinginkan. Banyaknya iterasi dibatasi hanya sampai 1000 iterasi, karena pada penelitian ini ingin melihat pengaruh ukuran data, bukan dari banyaknya iterasi. Selain itu 1

12 dengan 1000 iterasi sudah cukup untuk melihat performance dari hasil implementasi. Manfaat Dengan dilakukannya implementasi permrosesan paralel pada metode CG, kecepatannya dalam menyelesaikan sistem persamaan linear akan meningkat, sehingga akan mengurangi waktu komputasi. Lebih jauh lagi implementasi model hybrid pada penelitian ini dapat lebih meningkatkan performance komputasi paralel dibandingkan dengan implementasi MPI murni, dan akan menghasilkan strategi paralel yang lebih efisien. TINJAUAN PUSTAKA Disain Algoritme Paralel Dalam mendisain suatu algoritme paralel, menurut Foster (1995), ada beberapa langkah yang harus dilakukan, yaitu partitioning, communication, agglomeration, dan mapping. 1. Partitioning Ada dua pendekatan pada tahap partitioning, yaitu domain decomposition dan functional decomposition. Pada pendekatan domain decomposition, hal yang pertama dilakukan adalah memisahkan data dan jika mungkin membaginya menjadi bagian-bagian yang sama besar, kemudian mengasosiasikan komputasi pada data tersebut. Pendekatan yang kedua adalah functional decomposition, yaitu membagi komputasi terlebih dahulu, kemudian menentukan data yang dibutuhkan oleh komputasi tersebut. 2. Communication Pada tahap ini diatur bagaimana bentuk komunikasi yang digunakan untuk mengirim data antar task. Ada dua pola komunikasi yang digunakan, yaitu local communication dan global communication. Pada local communication tiap task berkomunikasi dengan sekumpulan kecil task-task tetangga, sedangkan pada global communication tiap task berkomunikasi dengan banyak task. 3. Agglomeration Pada tahap agglomeration beberapa task dikombinasi menjadi task-task yang lebih besar untuk meningkatkan performance dan meminimumkan global communication. 4. Mapping Pada tahap ini diatur bagaimana tiap task dipetakan ke suatu processor. Mapping digunakan untuk memaksimalkan penggunaan processor dan meminimalkan biaya komunikasi. Model Pemrograman Paralel Model pemrograman paralel hadir sebagai abstraksi di atas arsitektur hardware dan memory, jadi seorang programmer harus berhadapan dengan model pemrograman ini untuk membuat suatu program paralel. Ada tiga model pemrograman yang banyak digunakan, yaitu message-passing, shared-memory, dan hybrid. 1. Message-passing Message-passing telah digunakan secara luas sebagai pendekatan untuk mencapai komputasi paralel. Pada model ini suatu komputasi terdiri dari satu atau lebih proses yang saling berkomunikasi dengan mengirim dan menerima messages. Komunikasi dilakukan dengan memanggil fungsi-fungsi yang telah didefinisikan pada library yang digunakan (Dongara et al. 2003). Menurut Dongara et al (2003) salah satu implementasi message-passing yang banyak digunakan adalah Message Passing Interface (MPI). MPI bukanlah suatu bahasa pemrograman, melainkan suatu library yang menyediakan banyak fungsi yang dapat dipanggil oleh program. MPI dapat digunakan pada beberapa bahasa pemrograman, di antaranya C/C++ dan Fortran. Menurut Barney (2009) ada dua tipe komunikasi yang digunakan pada MPI, yaitu point-to-point dan kolektif. Point-to-point Tipe komunikasi point-to-point merupakan komunikasi yang melibatkan hanya dua proses pada grup yang sama. Salah satu proses melakukan operasi send, dan proses lainnya melakukan operasi receive pasangannya. Kolektif Komunikasi kolektif harus melibatkan keseluruhan proses yang ada pada suatu grup. Ada tiga tipe operasi dari komunikasi ini, pertama sinkronisasi, semua proses pada operasi ini akan menunggu sampai keseluruhan proses pada grup yang sama mencapai titik sinkronisasi yang sudah 2

13 ditentukan. Tipe kedua adalah perpindahan data, tipe operasi ini digunakan untuk mengirim atau menerima data dari dan ke semua proses pada grup yang sama. Ketiga adalah komputasi kolektif, salah satu proses akan mengumpulkan data dari seluruh proses pada grup yang sama, selanjutnya dilakukan suatu operasi pada data tersebut, seperti penjumlahan atau pengurangan. 2. Shared-memory Menurut El-Rewini et al (2005) model pemrograman shared-memory barangkali menjadi model yang paling mudah untuk dimengerti karena memiliki kesamaan dengan pemrograman pada sistem operasi. Pada model ini semua proses berbagi alamat memory yang sama, dan melakukan operasi baca dan tulis secara asynchronous, sehingga mekanisme seperti semaphores dapat digunakan untuk mengontrol akses ke memory tersebut. Pada model pemrograman shared-memory harus ada tiga konstruksi utama pada program, yaitu task creation, komunikasi, dan sinkronisasi. Task creation Sekumpulan proses dibentuk melalui perintah fork, exec, dan perintah lainnya yang terkait. Secara keseluruhan suatu aplikasi merupakan kumpulan konstruksi fork-join. Komunikasi Komunikasi di antara proses paralel dapat dilakukan dengan menulis dan membaca shared variable pada segmen data shared yang ada pada proses paralel. Sinkronisasi Sinkronisasi dibutuhkan untuk melindungi shared variable dengan meyakinkan bahwa variabel tersebut hanya diakses oleh satu proses pada waktu yang sama. Implementasi model shared-memory salah satunya adalah Open Multi-Processing (OpenMP). OpenMP diimplementasikan sebagai suatu kombinasi dari penggunaan library, sekumpulan compiler directive atau pragma dan environment variable. OpenMP menggunakan model fork-join dalam eksekusi secara paralel. Program OpenMP dimulai dengan sebuah proses, yaitu master thread. Master thread melakukan eksekusi secara sekuensial sampai daerah paralel pertama yang dijumpai. Master thread kemudian memulai operasi Fork, yaitu membuat sekumpulan thread paralel. Perintah-perintah yang ada pada daerah yang diparalelkan dieksekusi secara paralel oleh thread-thread tersebut. Setelah semua thread selesai melakukan eksekusi dan mencapai akhir bagian paralel, kemudian dilakukan operasi Join, yaitu semua thread melakukan sinkronisasi dan mengakhiri thread masing-masing, dan hanya menyisakan master thread (Barney 2009). 3. Hybrid Menurut Smith (2000) model pemrograman hybrid adalah model pemrograman yang mengombinasikan dua atau lebih model pemrograman paralel. Dengan digunakannya model pemrograman ini, maka seharusnya keunggulan-keunggulan dari model pemrograman penyusunnya dapat diperoleh. Sistem ini akan menggunakan model pemrograman message-passing untuk mengakomodir komunikasi antar komputer, dan model shared-shared memory untuk mengakomodir komunikasi antar processor pada komputer yang sama. Kombinasi MPI dengan OpenMP biasanya banyak digunakan pada sistem hybrid distributed-memory. Secara teori, kombinasi tersebut akan menghasilkan strategi paralel yang lebih efisien dan optimal dibandingkan dengan penggunaan murni MPI. Ada beberapa keuntungan dari penggunaan model pemrograman hybrid, di antaranya: Program yang memiliki skalabilitas proses MPI yang buruk, dapat dioptimasi dengan model ini. Program yang memiliki skalabilitas OpenMP yang buruk, dapat dioptimasi dengan model ini. Program yang memiliki masalah kekurangan memory lokal dapat teratasi karena penggunaan MPI. Lebih mudah dalam implementasi dibandingkan dengan MPI. Speedup Speedup S didefinisikan sebagai rasio dari waktu yang digunakan untuk menyelesaikan masalah dalam sekuensial T s terhadap waktu yang diperlukan untuk menyelesaikan masalah yang sama dalam paralel T p, dirumuskan pada Persamaan 1 (Grama et al. 2003). 3

14 S = T s T p. [1] Efisiensi Efisiensi E adalah rasio antara speedup dengan banyaknya processor p. Efisiensi didefinisikan sebagai berikut berikut (Grama et al. 2003) yang dirumuskan pada Persamaan 2. E= S p = T s p T p. [2] Cost Cost C untuk menyelesaikan masalah dalam sistem paralel didefinisikan sebagai hasil perkalian waktu pelaksanaan dengan jumlah processor yang digunakan. Fungsi biaya paralel dirumuskan pada Persamaan 3 (Grama et al. 2003). C= pt p. [3] Total Parallel Overhead Overhead biasanya disebabkan oleh faktor idle, waktu komunikasi dan komputasi. Fungsi overhead dinotasikan dengan simbol T o. Fungsi overhead dirumuskan pada Persamaan 4 (Grama et al. 2003). T o = pt p T s. [4] Isoefisiensi Menurut Grama et al. (2003) efisiensi akan menurun jika jumlah processor meningkat dan efisiensi akan meningkat jika ukuran data juga ditingkatkan. Jadi efisiensi dapat dibuat konstan jika jumlah processor dan ukuran data sama-sama ditingkatkan. Efisiensi yang konstan ini disebut sebagai isoefisiensi. Fungsi Isoefisiensi dirumuskan pada Persamaan 5, dimana K=E / E 1. W =K T o W, p. [5] Matriks Simetri Menurut Schewchuk (1994) sebuah matriks A disebut simetri jika A T =A. [6] Matriks Definit Positif Menurut Schewchuk (1994) sebuah matriks A disebut definit positif jika untuk semua vektor x 0, x T Ax 0. [7] Conjugate Menurut Schewchuk (1994), jika ada sebuath matriks A, dua vektor x dan y disebut conjugate jika x T Ay=0, x y. [8] Conjugate Gradient (CG) Metode Conjugate Gradient (CG) adalah sebuah algoritme untuk mencari solusi numerik dari suatu sistem persamaan linear tertentu, yaitu yang dengan matriks simetri dan definit positif. Metode ini bersifat iteratif, sehingga dapat diaplikasikan pada SPL yang berukuran besar dan akan sangat sulit jikalau diselesaikan dengan metode langsung, seperti eliminasi Gauss. Disamping itu, metode CG juga dapat diterapkan untuk menyelesaikan masalah optimasi tak berkendala. Secara umum, metode ini membangkitkan vektor-vektor yang saling berkonjugasi dan juga merupakan gradient dari fungsi kuadrat. Metode ini menyelesaikan sistem persamaan linear dengan cara menemukan titik minimum dari fungsi kuadrat (Schewchuk, 1994). Secara lengkapnya metode CG disajikan pada Gambar 1. 1 Diberikan SPL Ax=b 2 Pilih x 0 awal, x 0 =0 3 r 0 =b Ax 0 4 d 0 =r 0 5 i=0 T 6 rr =r i r i 7 While i max and r i tol 8 q= A d i T 9 dq=d i q 10 i =rr / dq 11 x i 1 =x i i d i 12 r i 1 =r i i q i 13 T rr2=r i 1 r i 1 14 i =rr2 / rr 15 d i 1 =r i 1 i d i 16 i=i 1 Gambar 1 Metode Conjugate Gradient. Tahapan Penelitian METODE PENELITIAN Untuk menunjang keberhasilan suatu penelitian, maka dibuatlah tahapan-tahapan penelitian yang terstruktur. Pada penelitian ini ada beberapa tahapan yang dilakukan. Adapun tahapan tersebut disajikan pada Gambar 2. 4

15 Gambar 2 Studi Pustaka Skema tahapan penelitian. Pada tahap ini dikumpulkan informasi mengenai algoritme CG dan metode yang biasanya digunakan dalam pengembangan aplikasi paralel hybrid. Pustaka-pustaka yang digunakan diperoleh dari beberapa buku cetak dan elektronik, dan juga dari beberapa halaman internet. Analisis Algoritme CG Hal yang pertama dilakukan pada penelitian ini yaitu mempelajari dan memahami langkahlangkah yang ada pada algoritme CG. Dengan memahaminya, maka dapat dengan mudah dibuat implementasi programnya. Pada tahap ini dilakukan analisis dari algoritme CG sekuensial yaitu meliputi cara kerja dan perhitungan tingkat kompleksitas dari algoritme. Implementasi CG Sekuensial Pada tahap ini dibuat implementasi sekuensial dari algoritme CG berdasarkan cara kerja yang telah dipelajari ditahap sebelumnya. Kode program sekuensial yang dibuat terdiri dari fungsi-fungsi yang mewakili proses-proses pada algoritme CG. Penggunaan fungsi ini dilakukan agar mempermudah dalam tahaptahap pengembangan selanjutnya. Program yang dibuat membutuhkan argumen input yang harus dimasukkan pada saat program dijalankan, yaitu berupa ukuran matriks, nama file matriks, nama file vektor, dan banyaknya iterasi CG. Pada kode program juga ditambahkan fungsi pencatat waktu yang digunakan untuk menghitung waktu eksekusi. Fungsi pencatat waktu yang digunakan harus mampu mencatat waktu sampai dengan tingkat akurasi mili detik, agar memiliki tingkat presisi yang tinggi. Waktu eksekusi kemudian dicetak pada bagian akhir program sebagai log dari program. Penerapan Metode Foster Setelah implementasi sekuensial dibuat, langkah selanjutnya algoritme sekuensial diubah agar dapat dieksekusi secara paralel, yaitu dengan menerapkan metode Foster. Berdasarkan algoritme dan kode program CG sekuensial yang telah dibuat, kemudian dipelajari bagian atau fungsi mana saja yang dapat diparalelkan. Output dari tahap ini adalah seperti apa algoritme dan strategi paralel yang akan digunakan, meliputi konsep dekomposisi komputasi dan data, konsep komunikasi yang digunakan, dan bagaimana komputasi yang ada dijalankan secara paralel. Analisis dan Implementasi MPI Algoritme CG Selanjutnya pada tahap ini dilakukan analisis dan implementasi terhadap algoritme dan strategi yang telah dibuat pada tahap sebelumnya. Analisis yang dilakukan meliputi perhitungan kompleksitas komputasi dan komunikasi dari algoritme paralel, serta perhitungan tingkat performance paralelnya. Menurut Smith (2000) tahapan pertama dalam mengembangkan program paralel model hybrid adalah melakukan implementasi paralel secara message-passing terlebih dulu. Implementasi message-passing dibuat dengan bahasa pemrograman C dan menggunakan library MPI. Penggunaan fungsi-fungsi MPI baik dalam dekomposisi data maupun dalam komunikasi antar proses dipilih yang paling sesuai dengan strategi paralel yang telah ditentukan. Argumen program MPI juga tidak berbeda dengan argumen program sekuensial. Begitupun dengan perhitungan waktu eksekusi program, cara yang digunakan juga sama dengan program sekuensial. 5

16 Identifikasi, Analisis dan Implementasi Hybrid Tahap selanjutnya dalam pengembangan model hybrid adalah identifikasi algoritme MPI. Identifikasi dilakukan untuk mencari tahu fungsi-fungsi mana saja pada program yang dapat diparalelkan secara shared-memory yaitu dengan OpenMP. Menurut Chapman et al. (2008) paralel OpenMP dapat dilakukan salah satunya dengan cara membagi beban komputasi. Beban komputasi pada suatu algoritme biasanya terdapat pada pada konstruksi loop, atau dapat juga diketahui dengan membuat skema keterkaitan input dan output pada fungsi-fungsi yang digunakan, kemudian dicari tahu fungsifungsi yang tidak saling terkait. Kedua hal inilah yang kemudian diparalelkan secara OpenMP, sehingga algoritme CG MPI bisa menjadi algoritme CG hybrid. Setelah melakukan identifikasi, selanjutnya dilakukan analisis terhadap algoritme CG hybrid yang telah dibuat. Analisis yang dilakukan yaitu hasil analisis pada algoritme CG MPI ditambah dengan pengubahan hybrid. Implementasi pada kode program dilakukan sebagai tahap akhir dalam pengembangan model hybrid. Implementasi ini diterapkan pada fungsi-fungsi yang telah teridentifikasi dapat diparalelkan secara shared-memory. Pada kode program, ditambahkan baris-baris perintah dan directive OpenMP. Argumen input dari program juga ditambah satu lagi, yaitu argumen jumlah thread, sehingga jumlah thread yang diciptakan saat eksekusi program bisa dikontrol. Perancangan Percobaan Pada tahap ini ditentukan rancangan dari percobaan yang akan dilakukan, termasuk di dalamnya metode percobaan dan data matriks yang digunakan. Ada lima buah matriks yang digunakan pada percobaan, matriks-matriks tersebut dapat dilihat pada Tabel 1. Percobaan implementasi MPI dan hybrid dilakukan dengan mengombinasikan argumenargumen input program. Untuk implementasi MPI, skema percobaan yang dilakukan yaitu mengombinasikan argumen matriks dan jumlah komputer, sedangkan untuk implementasi hybrid, skema percobaan yang dilakukan yaitu mengombinasikan argumen matriks, jumlah komputer dan jumlah thread. Tabel 1 Matriks yang digunakan pada percobaan Nama Matriks Percobaan Dimensi 662_bus 662 x 662 sherman x 1000 ex10hs 2548 x 2548 bcsstk x 4884 bloweybq x Semua percobaan yang dilakukan pada tiap implementasi dilakukan dengan tiga kali perulangan atau iterasi, kemudian diambil ratarata waktu komputasinya. Percobaan implementasi MPI dan hybrid dilakukan dengan 1-8 buah komputer untuk komputasi, tetapi pada implementasi hybrid ditambahkan kombinasi jumlah 1-4 thread pada tiap penggunaan kombinasi komputer, sehingga ada 32 kombinasi untuk implementasi hybrid. Semua tahapan percobaan tersebut dilakukan pada lingkungan sistem operasi Linux. Pada saat percobaan dilakukan, komputer-komputer yang digunakan sudah dalam keadaan dikondisikan, maksudnya yaitu kondisi processor dalam keadaan idle. Output waktu yang keluar pada setiap eksekusi program dicatat dalam bentuk tabel yang selanjutnya akan digunakan dalam tahap analisis. Gambar 3 Skema jaringan yang digunakan pada percobaan. Pada saat percobaan digunakan tambahan dua komputer lagi yang salah satu digunakan sebagai file server untuk menyimpan kode program dan programnya, file matriks, dan file vektor, serta satu buah komputer lagi untuk running MPI. Skema jaringan yang digunakan dalam percobaan disajikan pada Gambar 3. 6

17 Spesifikasi dari masing-masing komputer yang digunakan adalah: 1. Intel Pentium Core 2 Duo ( 2,20 GHz). 2. DDR2 RAM 1024 MB. 3. Hard disk 80 GB. 4. Mouse dan Keyboard. 5. LAN 100 Mbps. 6. Sistem operasi Linux (opensuse 11.2). 7. Library MPI ( OpenMPI 1.4.7). 8. OpenMP runtime library (libgomp44). Analisis Hasil Percobaan Pada tahap ini akan dianalisis dengan menghitung performance metric berdasarkan waktu eksekusi dari hasil percobaan yang diperoleh. Analisis dilakukan terhadap hasil percobaan implementasi sekuensial, MPI, dan hybrid. HASIL DAN PEMBAHASAN Analisis dan Implementasi Algoritme CG Sekuensial Analisis algoritme CG sekuensial hanya diukur berdasarkan persamaan kompleksitas, namun karena pembahasan meliputi keseluruhan waktu eksekusi, maka tiap-tiap tahap akan dihitung, termasuk dalam pembacaan file matriks berukuran n x n maupun file vektor berukuran n. Adapun keseluruhan tahap dalam algoritme sekuensial adalah: 1. Membaca file matriks ( n x n blok) sebagai koefisien SPL. 2. Membaca file vektor ( n blok) sebagai nilai target dari SPL. 3. Fungsi CG sekuensial untuk menghasilkan solusi SPL. Kompleksitas fungsi CG sekuensial berdasarkan Gambar 1 untuk tiap tahap disajikan pada Gambar 4. Untuk N kali iterasi pada CG, maka total kompleksitas pada keseluruhan tahap yaitu: t sekuensial =N n 2 5n. [9] Dari Persamaan 10 dapat diketahui bahwa kompleksitas sangat tergantung dari ukuran matriks/vektor n dan banyaknya iterasi CG N. Waktu eksekusi dari implementasi sekuensial dapat direpresentasikan oleh Persamaan 9. Grafik hasil perhitungan Persamaan 9 disajikan pada Gambar 5. Implementasi atau kode program yang dibuat terdiri atas fungsi-fungsi yang mewakili proses-proses yang ada pada algoritme CG sekuensial, seperti fungsi untuk membaca file matriks, membaca file vektor, dan fungsi CG. Di dalam fungsi CG terdapat beberapa fungsi lagi, seperti fungsi perkalian matriks vektor, fungsi perkalian dua vektor, dan fungsi saxpy. Fungsi pencatat waktu diletakkan di bagian awal sebelum proses membaca file matriks dan sesudah fungsi CG. 1 Diberikan SPL Ax=b 2 Pilih x 0 awal, x 0 =0 3 r 0 =b Ax 0 4 d 0 =r 0 5 i=0 T 6 rr =r i r i 7 While i max and r i tol 8 q=a d i n 2 T 9 dq=d i q 10 i =rr / dq 11 x i 1 =x i i d i n 12 r i 1 =r i i q i n 13 T rr2=r i 1 14 i =rr2 / rr r i 1 15 d i 1 =r i 1 i d i n 16 i=i 1 Gambar 4 Kompleksitas tahapan pada fungsi CG sekuensial. Gambar 5 Grafik perhitungan kompleksitas CG sekuensial. Penerapan Metode Foster Algoritme CG paralel didisain berdasarkan metode Foster, namun penggunaan metode Foster ini hanya digunakan untuk membuat algoritme CG MPI. Berikut ini adalah penjelasan dari tahapan-tahapannya. 1. Partitioning Dalam menentukan strategi dekomposisi yang digunakan, pertama-tama harus diketahui n n 7

18 dulu komputasi yang ada. Komputasi yang ada dapat terlihat dari stuktur atau alur algoritme dan dari skema keterkaitan antar fungsi yang ada pada algoritme yang akan diparalelkan. Berdasarkan Gambar 1, skema keterkaitan antar fungsi di dalam iterasi CG disajikan pada Gambar 6. Gambar 6 Skema keterkaitan fungsi pada iterasi CG. Dari gambar tersebut dapat dilihat bahwa tiap tahap pada algoritme CG saling memiliki keterkaitan, sehingga sulit jika diterapkan teknik pipeline. Untuk penerapan functional decomposition sebenarnya dapat dilakukan pada bagian komputasi saxpy (no 4, dan 5), hanya saja kurang tepat untuk diterapkan pada paralel MPI, karena biaya komunikasi yang dibutuhkan lebih besar dari pada beban komputasi yang ada. Oleh karena itu dekomposisi yang paling mungkin dan mudah dilakukan adalah domain decomposition. Domain decomposition yang dilakukan tidak pada semua tahapan algoritme CG, hanya pada perkalian matriks vektor saja. Pada perkalian dua vektor dan saxpy sebenarnya dapat diterapkan domain decomposition, hanya saja kurang tepat untuk paralel MPI, karena beban komputasinya terlalu kecil, sehingga jika dipaksakan untuk diparalelkan hanya akan menambah besar biaya komunikasi. Dalam melakukan domain decomposition, file matriks dengan ukuran n 2 akan dibaca oleh node root, kemudian didistribusikan kepada seluruh node p. Tiap node akan mendapatkan matriks sebesar n 2 / p. Matriks akan didekomposisi secara row-wised bukan secara column-wised, karena kompleksitas komunikasi secara row-wised lebih kecil. Pada distribusi vektor, file vektor dengan ukuran n akan dibaca oleh node root, kemudian didistribusikan kepada seluruh node. Tiap node akan mendapatkan vektor yang sama dengan ukuran n pula. Di dalam fungsi CG, komputasi perkalian matriks vektor dilakukan oleh tiap node. Komputasi ini dilakukan sesuai dengan matriks yang didapatkan masing-masing node. Hasil yang diperoleh masing-masing node n / p didistribusikan kepada keseluruhan node untuk digunakan pada tahapan komputasi berikutnya. Jadi seluruh tahapan yang ada pada Gambar 6 akan dikerjakan oleh seluruh node yang terlibat saat eksekusi. Untuk perkalian matriks vektor (no 1), masing-masing node akan melakukan komputasi dengan data matriks yang berbeda, sedangkan untuk komputasi no 2-8 masing-masing node akan mengerjakannya dengan data vektor yang sama. 2. Communication Berdasarkan tahap partitioning, proses komunikasi yang diterapkan yaitu secara global communication. Proses komunikasi ini dibutuhkan pada setiap tahap. Komunikasi pertama terjadi pada saat pendistribusian matriks oleh node root yang dilakukan dengan fungsi MPI_Scatterv. Proses komunikasi yang kedua pada saat pendistribusian vektor oleh node root dengan menggunakan fungsi MPI_Bcast. Komunikasi ketiga yaitu di dalam fungsi CG, pada saat tiap-tiap node mendistribusikan hasil perkalian matriks vektor ke seluruh node dan ini dilakukan pada setiap iterasi. Fungsi yang digunakan pada komunikasi ini adalah MPI_Allgatherv. 3. Agglomeration Berdasarkan pengertian dari agglomeration, maka tidak terdapat proses agglomeration secara eksplisit pada disain algoritme CG paralel. Hal ini dikarenakan memang tidak ada pengombinasian task-task yang saling terkait, namun secara implisit terdapat pada fungsifungsi MPI yang digunakan, seperti MPI_Gatherv, MPI_Bcast, dan MPI_Allgatherv. 4. Mapping Komputasi yang diparalelkan secara MPI hanyalah pada bagian perkalian matriks vektor, jadi mapping yang dilakukan yaitu menugaskan seluruh node yang tersedia untuk melakukan komputasi tersebut sesuai komputasi yang didapat masing-masing node. Berdasarkan strategi paralel yang telah dirancang dengan metode Foster, maka struktur algoritme CG pada bagian iterasinya disajikan pada Gambar 7. 8

19 Komputasi q local = A local d i q=allgather q local T dq=d i q i =rr / dq x i 1 = x i i d i r i 1 =r i i q i T rr2=r i 1 i =rr2 / rr r i 1 d i 1 =r i 1 i d i i=i 1 Gambar 7 Keterangan Perkalian MatVec, tiap node memiliki matriks berbeda A local, dan memiliki vektor d i yang sama, dihasilkan vektor q local berukuran n/ p yang berbeda pada tiap node. Semua node melakukan allgather, sehingga tiap node memiliki vektor q yang berukuran n secara utuh. Semua node akan melakukan komputasi pada bagian ini dan akan menghasilkan data vektor yang sama. Struktur algoritme CG MPI pada bagian iterasi. Analisis dan Implementasi Algoritme CG MPI Algoritme paralel MPI yang dibuat terdiri dari tiga bagian, pertama bagian distribusi matriks, kedua distribusi vektor dan ketiga bagian iterasi fungsi CG. Dalam menganalisis kompleksitas algoritme MPI yang telah dibuat, ketiga bagian tersebut diikutsertakan seluruhnya dalam perhitungan. Berikut ini adalah kompleksitas dari masing-masing bagian tersebut: 1. Distribusi matriks Dalam mendistribusikan file matriks berukuran n 2, masing-masing node mendapatkan bagian matriks sebesar n 2 / p. Dalam mendistribusikan file matriks tersebut, implementasi MPI yang dibuat yaitu menggunakan fungsi MPI_Scatterv. Menurut Grama et al (2003), kompleksitas MPI_Scatter / MPI_Scatterv dan MPI_Gather dengan mengabaikan startup time t s yaitu: t w m p 1. [10] t w : waktu dibutuhkan untuk mentransfer message per word. m : ukuran message yang akan dikirim. p : banyaknya node yang menerima message. Ukuran message yang akan dikirim m adalah n 2 / p, sehingga berdasarkan kompleksitas MPI_Scatterv, maka kompleksitas dalam mendistribusikan file matriks t matriks yaitu: t matriks = t wn 2 p 1. [11] p 2. Distribusi vektor Dalam mendistribusikan vektor, ukuran vektor yang didapatkan oleh seluruh node adalah sama besar, yaitu n. Fungsi MPI_Bcast digunakan dalam pendistribusian vektor ke seluruh node. Menurut Grama et al (2003), kompleksitas MPI_Bcast dengan mengabaikan startup time t s yaitu: t w m log p. [12] sehingga kompleksitas mendistribusikan file vektor t vektor adalah: t vektor =t w n log p. [13] 3. Iterasi fungsi CG Berdasarkan partitioning yang telah ditentukan, maka pada bagian iterasi fungsi CG bagian yang diparalelkan secara MPI adalah pada perkalian matriks vektor. Hasil perkalian ini kemudian didistribusikan ke seluruh node. Pada implementasinya, fungsi-fungsi sekuensial yang digunakan tidak mengalami perubahan, namun hanya dilakukan penambahan fungsi dalam pendistribusian hasil perkalian matriks vektor saja. Fungsi yang digunakan dalam hal ini adalah MPI_Allgatherv. Pada dasarnya fungsi MPI_Allgatherv hampir sama dengan MPI_Gatherv, hanya saja pada MPI_Allgatherv seluruh node melakukan pengiriman data, sehingga kompleksitasnya pun sama. Dengan demikian kompleksitas pada bagian iterasi ini t iterasi adalah: t iterasi = N n n p t w p p 1 5. [14] Struktur algoritme MPI dan kompleksitasnya tiap tahap pada bagian iterasi CG disajikan pada Gambar 8. Berdasarkan Gambar 8, maka total kompleksitas algoritme CG MPI t mpi pada tiga bagian yang telah dijelaskan diatas adalah: 9

20 t mpi =t matriks t vektor t iterasi. [15] t mpi =n t w p 1 N n t p w log p N n p 5. [16] 1 Diberikan SPL Ax=b 2 Pilih x 0 awal, x 0 =0 3 r 0 =b Ax 0 4 d 0 =r 0 5 i=0 T 6 rr =r i r i 7 While i max and r i tol 8 q local = A local d i n 2 / p 9 q=allgather q local t w n/ p p 1 T 10 dq=d i q 11 i =rr / dq 12 x i 1 =x i i d i n 13 r i 1 =r i i q i n T 14 rr2=r i 1 15 i =rr2 / rr r i 1 16 d i 1 =r i 1 i d i n 17 i=i 1 Gambar 8 Struktur algoritme dan kompleksitas fungsi CG MPI. Dalam perhitungan kompleksitas pada penelitian ini, kecepatan jaringan (LAN) yang digunakan adalah 100 Mbps dan tipe data yang digunakan adalah double. Karena tipe data double, maka ukuran message per word adalah 8 byte, sehingga nilai t w adalah 0.64 x Gambar 9 Grafik perhitungan kompleksitas CG MPI. Grafik hasil perhitungan kompleksitas berdasarkan Persamaan 16 terhadap lima ukuran matriks yang digunakan disajikan pada Gambar 9. n n Setelah diketahui kompleksitas total dari implementasi yang telah dibuat, selanjutnya dilakukan analisis performance-nya. 1. Speedup Berdasarkan Persamaan 1, 9, dan 16 maka speedup dapat dihitung menggunakan Persamaan 17. S = N n 5 t w p 1 N n t p w log p N n p 5. [17] Pada Gambar 10 disajikan grafik hasil perhitungan speedup berdasarkan Persamaan 17 terhadap lima ukuran matriks yang digunakan. Gambar 10 Grafik perhitungan speedup CG MPI. Dari Gambar 10, dapat diketahui bahwa: Nilai speedup yang diperoleh hampir mendekati dengan nilai ideal dari speedup untuk setiap jumlah node yang digunakan, yaitu mendekati linear. Untuk setiap ukuran matriks yang diinputkan, semakin tinggi jumlah node yang digunakan, semakin tinggi speedup yang diperoleh. Semakin tinggi jumlah node yang digunakan, untuk ukuran matriks yang semakin kecil, maka nilai speedup yang diperoleh semakin menurun dan menjauhi nilai ideal. 2. Efisiensi Nilai efisiensi didapatkan dengan menggunakan Persamaan 18. N n 5 E= t w p 1 N n t w p log p N n 5 p. [18] Pada Gambar 11, disajikan grafik hasil perhitungan efisiensi berdasarkan Persamaan 18 terhadap lima ukuran matriks yang digunakan. 10

21 Gambar 11 Grafik perhitungan efisiensi CG MPI. Dari Gambar 11, dapat diketahui bahwa: Efisiensi yang diperoleh hampir mendekati nilai ideal dari efisiensi, yaitu 1. Semakin tinggi jumlah node yang digunakan, nilai efisiensinya mengalami penurunan, namun tingkat penurunannya kecil. Semakin tinggi jumlah node yang digunakan, untuk ukuran matriks yang semakin kecil, maka nilai efisiensi yang diperoleh semakin menurun dan menjauhi nilai ideal. 3. Cost Untuk nilai cost didapatkan dengan Persamaan 19. C=n t w p 1 N n t w p log p N n 5 p. [19] 4. Total Parallel Overhead Untuk nilai overhead didapatkan dengan Persamaan 20. T o =n t w p 1 N n t w plog p 5 N p 1. [20] 5. Isoefisiensi Dari Persamaan overhead yang diperoleh, maka dapat diketahui isoefisiensi dari algoritme yang dibuat. Untuk setiap peningkatan jumlah node, seberapa besar problem size W yang harus menjadi input untuk mempertahankan nilai efisiensi yang ingin diperoleh. W = E n t p 1 N n t w w p log p 5 N p 1. E 1 [21] Jadi jika ingin diperoleh nilai efisiensi sebesar E untuk setiap peningkatan jumlah node, maka ukuran problem size yang harus digunakan dapat diketahui dengan persamaan 21. Penerapan Model Hybrid Dalam penerapan model paralel hybrid dari model paralel message-passing atau MPI, hal pertama yang dilakukan adalah identifikasi bagian-bagian yang dapat diparalelkan secara shared-memory atau OpenMP. Berdasarkan struktur algoritme CG MPI yang telah dibuat, terdapat tiga bagian utama, yaitu distribusi matriks, distribusi vektor, dan iterasi fungsi CG. Dari kompleksitas tiga bagian tersebut, kompleksitas tertinggi ada pada bagian iterasi dikarenakan pada bagian ini terjadi komputasi, sehingga pada bagian inilah yang lebih tepat diparalelkan secara OpenMP. Sebenarnya pada bagian distribusi matriks dan distribusi vektor dapat diparalelkan secara OpenMP, namun pada kedua bagian ini komputasi yang terjadi hanyalah baca file dan distribusi data lewat jaringan. Oleh karena itu lamanya waktu komputasi pada bagian ini lebih ditentukan oleh kecepatan hardware, sehingga tidak tepat diparalelkan secara OpenMP. Pada bagian Penerapan Metode Foster pada tahap partitioning, disebutkan bahwa ada beberapa komputasi yang tidak tepat bila dipararelkan secara MPI. Bagian-bagian inilah yang akan dipararelkan secara OpenMP. Berdasarkan Gambar 8, komputasi-komputasi yang ada adalah perkalian matriks vektor, perkalian dua vektor, dan saxpy. Pada ketiga komputasi ini terdapat konstruksi-konstruksi loop yang dapat diparalelkan, jadi pada komputasi-komputasi inilah dilakukan pararel OpenMP. Cara seperti ini sama saja dengan melakukan domain decomposition, karena pada hakikatnya yang dipararelkan adalah data. Selain dengan melakukan pararel pada kontruksi loop, bila dilihat Gambar 6 pada no 4 dan 5, bagian ini dapat dilakukan partitioning secara functional decomposition. Bagian ini tidak tepat jika dipararelkan secara MPI, namun lebih tepat dipararelkan secara OpenMP. Dengan dilakukannya functional decomposition, maka pada bagian ini terjadi dua pararelisasi, yaitu pararelisasi fungsi secara struktural dan paralelisasi data didalamnya. Berdasarkan strategi paralel hybrid yang telah dirancang, maka struktur algoritme CG hybrid pada bagian iterasinya disajikan pada Gambar

22 Komputasi q local =A local d i q=allgather q local T dq=d i q i =rr / dq Keterangan Perkalian MatVec akan dilakukan oleh semua node secara MPI, dan dilakukan oleh semua thread secara OpenMP pada tiap node. Semua node melakukan allgather, sehingga tiap node memiliki vektor q yang berukuran n secara utuh. Semua node akan melakukan komputasi secara paralel OpenMP. Semua node akan x i 1 = x i i d i melakukan komputasi secara paralel OpenMP dan kedua operasi saxpy ini r i 1 =r i i q i diparalel secara data dan fungsi T rr2=r i 1 i =rr2 / rr r i 1 Semua node akan melakukan komputasi secara paralel OpenMP. d i 1 =r i 1 i d i Semua node akan melakukan komputasi secara paralel OpenMP. i=i 1 Gambar 12 Struktur algoritme CG hybrid pada bagian iterasi. Analisis dan Implementasi Algoritme CG Hybrid Dalam eksekusi bagian loop yang diparalelkan secara OpenMP, sejumlah thread akan dibangkitkan untuk mengeksekusi bagian loop tersebut secara bersamaan. Jika suatu konstruksi loop memiliki kompleksitas n dieksekusi oleh t thread, maka kompleksitasnya menjadi n/t. Dengan demikian kompleksitas algoritme CG hybrid akan ditentukan oleh banyaknya node p, banyaknya thread t, ukuran matriks dan vektor n, serta banyaknya iterasi CG N. Agar suatu loop dieksekusi secara paralel OpenMP, maka digunakanlah compiler directive atau pragma. Berikut ini adalah kode program pada bagian perkalian matriks vektor yang sudah ditambahkan pragma. #pragma omp parallel for default(none) shared(rowsize, colsize, q, A, x) private(i, j) for(i=0;i<rowsize;i++) //outer loop { q[i] = 0; for(j=0;j<colsize;j++) //inner loop q[i]+= A[i*colSize+j]*x[j]; } Pada kode program tersebut, matriks A akan dipartisi secara row-wised, karena yang diparalelkan adalah outer loop. Jika dieksekusi oleh t thread, maka masing-masing thread akan melakukan outer loop sebanyak rowsize /t dan melakukan inner loop sebanyak colsize. Berdasarkan strategi paralel hybrid yang telah ditentukan, maka struktur dan kompleksitas dari algoritme CG hybrid disajikan pada Gambar Diberikan SPL Ax=b 2 Pilih x 0 awal, x 0 =0 3 r 0 =b Ax 0 4 d 0 =r 0 5 i=0 T 6 rr =r i r i 7 While i max and r i tol 8 q local =A local d i n 2 / pt 9 q= Allgather q local t w n / p p 1 10 T dq=d i q 11 i =rr / dq n/ t 12 x i 1 = x i i d i n/ t 13 r i 1 =r i i q i 14 T rr2=r i 1 15 i =rr2 / rr r i 1 n/ t 16 d i 1 =r i 1 i d i n/ t 17 i=i 1 Gambar 13 Struktur algoritme dan kompleksitas fungsi CG hybrid. Berdasarkan Gambar 13, maka kompleksitas pada bagian fungsi CG hybrid adalah: t iterasi = N n n pt t w p p 1 4 t. [22] Dengan demikian kompleksitas total algoritme CG t hybrid hybrid menjadi: t hybrid =n t p 1 w N n t p w log p N t n p 4. [23] Pada Gambar 14 disajikan hasil perhitungan kompleksitas berdasarkan Persamaan 23 untuk 12

23 setiap jumlah thread dengan ukuran matriks tetap. Sedangkan pada Gambar 15 ditampilkan hasil perhitungan terhadap lima ukuran matriks yang digunakan dengan jumlah thread tetap. Speedup yang diperoleh hampir mendekati nilai ideal pada tiap-tiap kombinasi node dan thread. Untuk setiap ukuran matriks yang diinputkan, semakin tinggi jumlah node dan thread yang digunakan, semakin tinggi speedup yang diperoleh. Semakin tinggi jumlah node yang digunakan dengan jumlah thread tetap, untuk ukuran matriks yang semakin kecil, maka nilai speedup yang diperoleh semakin menurun dan menjauhi nilai ideal. Gambar 14 Grafik perhitungan kompleksitas untuk tiap jumlah thread dengan ukuran matriks 2548 x Gambar 16 Grafik perhitungan speedup untuk tiap jumlah thread dengan ukuran matriks 2548 x Gambar 15 Grafik perhitungan kompleksitas untuk tiap ukuran matriks dengan 2 thread. Setelah diketahui kompleksitas total dari implementasi hybrid yang telah dibuat, selanjutnya dilakukan analisis performance-nya. 1. Speedup Berdasarkan Persamaan 23, maka speedup dari implementasi hybrid dihitung dengan Persamaan 24. S = N n 5 t w p 1 N n t p w log p N t n p 4. [24] Berdasarkan Persamaan 24, pada Gambar 16 disajikan grafik hasil perhitungan speedup hybrid dengan jumlah thread 1, 2, 3, dan 4 pada salah satu ukuran matriks yang digunakan. Kemudian pada Gambar 17 disajikan grafik speedup hybrid untuk setiap ukuran matriks yang digunakan dengan dua thread. Dari Gambar 16 dan Gambar 17 dapat diketahui bahwa: Gambar 17 Grafik perhitungan speedup untuk tiap ukuran matriks dengan 2 thread. 2. Efisiensi Untuk nilai efisiensi, maka dapat dihitung dengan persamaan 25. N n 5 E= t w p 1 N n t w plog p N. n 4 p t [25] Grafik hasil perhitungan dari Persamaan 25, disajikan pada Gambar 18 dan Gambar 19. Grafik untuk salah satu matriks yang digunakan disajikan pada Gambar 18, sedangkan pada Gambar 19 disajikan grafik untuk setiap ukuran 13

24 matriks yang digunakan dengan dua thread. Dari kedua Gambar 18 dan Gambar 19 dapat diketahui bahwa: Efisiensi yang diperoleh hampir mendekati nilai ideal dari efisiensi, yaitu 1 pada tiaptiap kombinasi node dan thread. Semakin tinggi jumlah node yang digunakan dengan jumlah thread tetap, semakin kecil ukuran matriks, maka nilai efisiensinya semakin menurun. Semakin tinggi jumlah node dan jumlah thread yang digunakan, untuk ukuran matriks yang semakin kecil, nilai efisiensi yang diperoleh mengalami penurunan dan menjauhi nilai ideal, namun tingkat penurunannya kecil. Gambar 18 Grafik perhitungan efisiensi untuk tiap jumlah thread dengan ukuran matriks 2548 x Total Parallel Overhead Untuk nilai overhead didapatkan dengan Persamaan 27. T o =n t p 1 N n t plog w w p N t n 4 p n t 5 t. [27] 5. Isoefisiensi Kemudian untuk memperoleh efisiensi yang tetap E, maka untuk setiap peningkatan jumlah node dan jumlah thread, problem size W yang harus digunakan dihitung dengan Persamaan 28. W = E E 1 T o. [28] Analisis Hasil Waktu Eksekusi Untuk menganalisis hasil waktu eksekusi, dilakukan perbandingan hasil perhitungan kompleksitas dengan hasil waktu percobaan yang diperoleh. Waktu eksekusi hasil percobaan implementasi CG sekuensial dibandingkan dengan hasil kompleksitas yang telah dihitung pada Persamaan 9. Grafik waktu eksekusi implementasi CG sekuensial disajikan pada Gambar 20. Setelah dibandingkan dengan seksama antara Gambar 5 dan Gambar 20, terlihat bahwa keduanya memiliki kesamaan bentuk, berarti hal ini menunjukkan hasil perhitungan kompleksitas dan hasil percobaan memiliki kesesuaian. Semakin besar ukuran matriks semakin tinggi waktu eksekusinya, jadi waktu eksekusi sekuensial benar dipengaruhi oleh ukuran matriks/vektor. Gambar 19 Grafik perhitungan efisiensi untuk tiap ukuran matriks dengan 2 thread. 3. Cost Untuk nilai cost didapatkan dengan Persamaan 26.. C=n t w p 1 N n t w plog p N t n 4 p. [26] Gambar 20 Grafik waktu eksekusi implementasi CG sekuensial. Pada implementasi MPI, grafik waktu eksekusi percobaan pada tiap ukuran matriks disajikan pada Gambar 21. Jika Gambar 9 dibandingkan dengan Gambar 21, maka akan 14

25 terlihat memiliki kesesuaian bentuk walaupun tidak terlalu sama persis. Hal ini menunjukkan bahwa hasil perhitungan kompleksitas CG MPI bersesuaian dengan hasil percobaan implementasi MPI. memiliki 2 core. Sehingga penggunaan jumlah thread lebih dari jumlah core processor menjadi penyebab waktu eksekusi lebih lambat atau paling tidak hampir menyamai waktu eksekusi 2 thread. Gambar 21 Grafik waktu eksekusi implementasi MPI. Dari Gambar 21 juga dapat diketahui bahwa waktu eksekusi dipengaruhi oleh jumlah node yang digunakan, namun bukan berarti semakin banyak node yang digunakan waktu eksekusi akan menurun signifikan. Grafik tersebut menunjukkan untuk jumlah node mendekati 8, maka semakin landai bentuk garisnya. Hal ini berarti menunjukkan pengaruh jumlah node semakin berkurang terhadap menurunnya waktu eksekusi. Selanjutnya disajikan grafik perbandingan waktu eksekusi untuk implementasi MPI dan hybrid untuk ukuran matriks 2548 x 2548 dan 4884 x 4884 pada Gambar 22 dan Gambar 23. Sedangkan pada Gambar 24, disajikan grafik waktu eksekusi pada tiap matriks dengan menggunakan 2 thread. Jika dibandingkan Gambar 22 dan Gambar 23 dengan Gambar 14, maka ada kesesuaian bentuk yakni menurun pada setiap thread yang digunakan, namun tingkat penurunannya lebih rendah dibandingkan Gambar 14. Selain itu pada Gambar 22 dan Gambar 23, urutan waktu eksekusi hybrid pada penggunaan 1 thread sampai 4 thread tidak sesuai dengan hasil perhitungan kompleksitas seperti pada Gambar 8. Seharusnya semakin tinggi jumlah thread yang digunakan, semakin rendah waktu eksekusi, namun tidak demikian adanya. Waktu eksekusi dengan 3 thread lebih rendah dari pada waktu eksekusi 2 thread, dan waktu eksekusi 4 thread hampir menyamai waktu eksekusi 2 thread walaupun masih lebih rendah sedikit pada 2 thread. Anomali ini terjadi karena processor pada komputer yang digunakan hanya Gambar 22 Grafik waktu eksekusi untuk setiap implementasi dengan ukuran matriks 2548 x Gambar 23 Grafik waktu eksekusi untuk setiap implementasi dengan ukuran matriks 4884 x Gambar 24 Grafik waktu eksekusi implementasi hybrid untuk tiap ukuran matriks dengan 2 thread. Berdasarkan hasil perhitungan kompleksitas, untuk perbandingan waktu eksekusi hybrid 1 thread dengan MPI, seharusnya nilai kompleksitas implementasi MPI lebih tinggi sedikit dari hybrid 1, akan tetapi pada hasil waktu eksekusi memperlihatkan sebaliknya. 15

26 Kemudian dilakukan pengamatan processor usage pada saat eksekusi program berlangsung. Saat eksekusi hybrid 1 thread, pada masingmasing komputer hanya 1 core processor yang melakukan komputasi dengan nilai usage hampir 100%. Sedangkan pada saat eksekusi MPI, 2 core processor yang tersedia pada masing-masing komputer melakukan eksekusi dengan nilai usage sekitar 50%. Jadi pada eksekusi MPI, komputasi didistribusikan pada seluruh core processor yang tersedia. Hal inilah yang menyebabkan waktu eksekusi implementasi MPI lebih rendah dibandingkan dengan hybrid 1 thread. Pada Gambar 24, grafik yang dihasilkan sedikit berbeda dengan hasil perhitungan kompleksitas pada Gambar 15. Garis-garis pada Gambar 24 terlihat lebih landai, namun secara keseluruhan masih menurun seiring semakin tinggi jumlah node yang digunakan. Grafik untuk setiap kombinasi matriks, jumlah node, dan jumlah thread yang digunakan lebih lengkapnya disajikan pada Lampiran 1. Dari Gambar 22, Gambar 23, dan Gambar 24, dapat diketahui bahwa waktu eksekusi implementasi hybrid memang sangat dipengaruhi oleh ukuran matriks/vektor, jumlah node, dan jumlah thread yang digunakan. Waktu eksekusi tercepat diperoleh oleh hybrid 2 thread dengan 8 node. Secara umum pada grafik-grafik waktu eksekusi hasil percobaan MPI dan hybrid, seharusnya waktu eksekusi semakin menurun drastis untuk setiap peningkatan jumlah node pada ukuran matriks Akan tetapi tidak demikian adanya, penurunan waktu eksekusi tidak terlampau tinggi sebagaimana mestinya. Kemudian dilakukan analisis lebih lanjut, yaitu dengan dilakukan pemisahan waktu komputasi yang ada, seperti waktu distribusi matriks/vektor dan waktu iterasi CG. Grafik hasil pemisahan disajikan pada Gambar 25. Dari pemisahan tersebut dapat diketahui bahwa waktu iterasi CG pada kedua implementasi jauh lebih kecil dari pada total waktu eksekusi. Berarti lamanya waktu eksekusi pada ukuran matriks disebabkan oleh lamanya waktu distribusi matriks/vektor. Lebih tepatnya waktu distribusi matriks yang menjadi penyebab lamanya waktu eksekusi. Lamanya waktu ini lebih disebabkan oleh proses I/O. Pada masing-masing komputer, hanya terdapat main memory (RAM) sebesar 1 GB, sehingga swap memory yang terdapat di hard disk dilibatkan dalam proses pembacaan matriks yang berukuran besar. Jadi lamanya waktu distribusi matriks dikarenakan saat eksekusi berlangsung terdapat proses baca tulis ke hard disk. Gambar 25 Grafik waktu eksekusi dan waktu iterasi implementasi MPI dan hybrid 2 thread untuk ukuran matriks x Analisis Hasil Speedup Berdasarkan hasil waktu eksekusi, kemudian dihitung nilai speedup dari tiap-tiap implementasi dan tiap-tiap kombinasi. Grafik speedup untuk implementasi MPI disajikan pada Gambar 26. Gambar 26 Grafik speedup hasil percobaan implementasi MPI. Jika dilakukan perbandingan antara Gambar 26 dengan Gambar 16, maka akan tampak sangat berbeda. Pada Gambar 16 nilai speedup hampir mendekati nilai idealnya pada tiap jumlah node, namun pada Gambar 26 nilai speedup tertinggi tidak sampai 4. Hal ini diakibatkan dari waktu eksekusi yang dihasilkan implementasi MPI tidak sesuai dengan hasil perhitungan kompleksitas. Pada Gambar 21 semakin tinggi jumlah node, maka semakin landai grafiknya, sehingga pada Gambar 26 semakin tinggi jumlah node, maka speedup yang diperoleh semakin menjauhi nilai ideal. 16

27 Kemudian untuk grafik speedup implementasi hybrid disajikan pada Gambar 27 dan Gambar 28. Grafik speedup untuk setiap kombinasi matriks, jumlah node, dan jumlah thread yang digunakan lebih lengkapnya disajikan pada Lampiran 2. penurunan efisiensi tidak sampai 0.9, namun pada Gambar 29 penurunan efisiensi sampai pada 0.2. Dari grafik ini dapat diketahui bahwa nilai efisiensi semakin menurun seiring bertambahnya jumlah node yang digunakan. Gambar 27 Grafik speedup hasil percobaan hybrid untuk setiap ukuran matriks dengan 2 thread. Gambar 29 Grafik efisiensi hasil percobaan implementasi MPI. Kemudian untuk efisiensi hasil percobaan hybrid disajikan pada Gambar 30 dan Gambar 31. Jika kedua gambar ini dibandingkan dengan Gambar 18 dan Gambar 19, maka efisiensi yang diperoleh juga terlihat menurun drastis sesuai dengan speedup yang diperoleh. Gambar 28 Grafik speedup hasil percobaan untuk setiap implementasi dengan ukuran matriks 2548 x Jika Gambar 27 dan Gambar 28 dibandingkan dengan Gambar 16 dan Gambar 17, maka terlihat perbedaannya. Seharusnya speedup tertinggi diperoleh dengan penggunaan 4 thread, namun tidak demikian pada hasil percobaan. Pada hybrid 4 thread, speedup yang diperoleh hampir sama dengan hybrid 2 thread, sesuai dengan waktu komputasi yang diperoleh. Namun begitu secara keseluruhan speedup yang diperoleh semakin tinggi seiring dengan bertambahnya jumlah node. Speedup implementasi hybrid tertinggi diperoleh pada penggunaan 8 node dengan 2 thread. Analisis Hasil Efisiensi Selanjutnya setelah dilakukan analisis speedup, berikut ini pada Gambar 29 disajikan grafik efisiensi dari hasil percobaan implementasi MPI. Jika Gambar 29 dibandingkan dengan Gambar 17, maka jelas sangat terlihat berbeda. Pada Gambar 17 Gambar 30 Grafik efisiensi hasil percobaan hybrid untuk setiap ukuran matriks dengan 2 thread. Gambar 31 Grafik efisiensi hasil percobaan untuk setiap implementasi dengan ukuran matriks 2548 x Seharusnya semakin tinggi ukuran matriks, semakin tinggi pula efisiensinya. Namun jika dilihat dari waktu komputasi, memang terdapat 17

28 anomali seperti dijelaskan pada Gambar 25, sehingga efisiensi tertinggi ada pada ukuran matriks Grafik efisiensi dari implementasi hybrid lebih lengkapnya disajikan pada Lampiran 3. Secara keseluruhan efisiensi yang diperoleh implementasi MPI dan hybrid, nilai tertinggi diperoleh oleh implementasi MPI. Hal ini dikarenakan speedup yang diperoleh tidak sesuai seperti yang diharapkan. Efisiensi adalah nilai speedup dibagi dengan jumlah processor. Pada hakikatnya total seluruh processor yang digunakan untuk implementasi hybrid adalah jumlah node dikali jumlah thread p x t. Semakin besar kombinasi yang digunakan, semakin besar pembagi speedup untuk menghasilkan nilai efisiensi, sehingga nilai efisiensi semakin kecil. Seharusnya bila diimbangi dengan peningkatan nilai speedup, maka nilai efisiensi akan stabil, namun tidak demikian, sehingga nilai efisiensi semakin kecil. Analisis Cost Pada hasil percobaan implementasi MPI, nilai cost terbesar ada pada ukuran matriks Grafiknya cost implementasi MPI disajikan pada Gambar 32. Pada hasil percobaan hybrid, nilai cost terbesar diperoleh pada implementasi hybrid 3 thread pada setiap ukuran matriks dan pada setiap jumlah node yang digunakan. Hal ini memang wajar adanya karena waktu eksekusi yang diperoleh pada hybrid 3 thread tidak lebih cepat dari pada hybrid 2 thread dan hybrid 4 thread. Berdasarkan Gambar 33, dengan mengabaikan nilai cost pada hybrid 3 thread, dapat diketahui bahwa semakin besar kombinasi node dan thread, semakin besar nilai cost yang dihasilkan. Grafik cost untuk implementasi hybrid dengan kombinasi node dan thread lainnya disajikan pada Lampiran 4. Berdasarkan Persamaan 19 dan Persamaan 26, seharusnya nilai cost untuk setiap jumlah node yang digunakan dengan ukuran matriks tetap, idealnya nilainya hampir tetap atau meningkat namun kecil, tetapi tidak demikian dengan nilai cost hasil percobaan. Hal ini terjadi karena tingkat penurunan waktu eksekusi seiring dengan semakin besar jumlah node yang digunakan yang sangat dipengaruhi oleh waktu distribusi matriks. Analisis Total Parallel Overhead Gambar 32 Grafik cost hasil percobaan implementasi MPI. Gambar 34 Grafik overhead hasil percobaan implementasi MPI. Gambar 33 Grafik cost hasil percobaan untuk setiap implementasi dengan ukuran matriks 2548 x Gambar 35 Grafik overhead hasil percobaan untuk setiap implementasi dengan ukuran matriks 2548 x

29 Pada Gambar 34 dan Gambar 35 disajikan grafik overhead untuk implementasi MPI dan hybrid. Dari Gambar 34 dapat diketahui bahwa untuk implementasi MPI, nilai overhead pada semua matriks semakin besar seiring bertambahnya jumlah node dan nilai overhead tertinggi ada pada ukuran matriks Sedangkan pada Gambar 35 dapat diketahui bahwa nilai overhead semakin tinggi seiring dengan semakin tingginya kombinasi jumlah node dan thread yang digunakan dengan pengecualian pada hybrid 3 thread. Berdasarkan hasil perhitungan Persamaan 20 dan Persamaan 27, seharusnya nilai overhead memang mengalami kenaikan, namun tidak sebesar seperti yang terlihat pada Gambar 34 dan Gambar 35. Hal ini sesuai dengan yang terjadi pada nilai cost, karena memang nilai cost dan overhead saling berkaitan. Grafik overhead implementasi hybrid lebih lengkapnya disajikan pada Lampiran 5. Kesimpulan KESIMPULAN DAN SARAN Dari hasil pembahasan dapat disimpulkan bahwa: 1. Waktu eksekusi metode CG untuk semua implementasi semakin meningkat seiring dengan semakin besarnya ukuran matriks yang digunakan. Sebagai contoh: Implementasi sekuensial secara berturutturut untuk ukuran matriks 1000, 2548, dan 4884 dibutuhkan waktu sebesar 4.47, dan detik. Implementasi MPI dengan 4 node secara berturut-turut untuk ukuran matriks 1000, 2548, dan 4884 dibutuhkan waktu sebesar 2.52, 12.57, dan detik. Implementasi hybrid 2 thread dengan 4 node secara berturut-turut untuk ukuran matriks 1000, 2548, dan 4884 dibutuhkan waktu sebesar 2.12, 9.87 dan detik. 2. Waktu eksekusi metode CG pada implementasi MPI menurun dibandingkan dengan waktu eksekusi implementasi sekuensial. Waktu implementasi MPI juga semakin menurun seiring dengan semakin besar jumlah node yang digunakan. Sebagai contoh untuk ukuran matriks 2548, secara berturut-turut pada implementasi sekuensial, MPI dengan 1, 2, 3, 4 node dibutuhkan waktu 28.94,28.44,17.79,14.40,12.57 detik. 3. Waktu eksekusi metode CG pada implementasi hybrid menurun dibandingkan dengan waktu eksekusi implementasi MPI. Waktu eksekusi implementasi hybrid juga semakin menurun seiring dengan semakin besarnya kombinasi node dan thread yang digunakan. Sebagai contoh: Untuk ukuran matriks 2548, secara berturut-turut pada implementasi MPI dengan 2 node, hybrid 1 thread, 2 thread dengan 2 node dibutuhkan waktu 17.79, 19.07, Untuk ukuran matriks 4884, secara berturut-turut pada implementasi MPI dengan 4 node, MPI dengan 5 node, hybrid 2 thread 4 node, hybrid 2 thread 5 node dibutuhkan waktu 29.37, 24.32, 18.95, Pengaruh bertambahnya jumlah node dan jumlah thread yang digunakan terhadap penurunan waktu eksekusi pada implementasi CG MPI dan CG hybrid secara keseluruhan semakin berkurang. 5. Nilai speedup tertinggi didapatkan pada implementasi hybrid 2 thread, karena sesuai dengan jumlah core processor pada komputer yang digunakan. Nilai speedup semakin bertambah seiring dengan bertambahnya jumlah node dan thread yang digunakan, namun nilai speedup yang diperoleh baik pada implementasi MPI maupun hybrid dapat dikatakan jauh dari nilai ideal yaitu sebesar p. 6. Nilai efisiensi tertinggi didapatkan pada implementasi MPI. Nilai efisiensi semakin menurun seiring dengan bertambahnya jumlah node dan thread yang digunakan, namun masih jauh berbeda dari nilai efisiensi yang didapat dari hasil perhitungan yaitu antara Nilai cost tertinggi didapatkan pada implementasi hybrid 3 thread. Nilai cost yang didapat semakin besar seiring dengan bertambahnya jumlah node dan thread yang digunakan. Seharusnya nilai cost yang diperoleh berdasarkan hasil perhitungan nilainya cenderung tetap pada setiap jumlah node dan jumlah thread. Hal ini disebabkan oleh waktu eksekusi yang tidak sesuai sebagaimana mestinya berdasarkan hasil perhitungan kompleksitas. 19

30 8. Karena nilai cost semakin besar, maka nilai overhead juga semakin besar seiring bertambahnya jumlah node dan thread yang digunakan. 9. Jika dibandingkan dengan penelitian yang dilakukan oleh Hoefler et al. (2007), maka pada penelitian ini peningkatan waktu eksekusi tertinggi ada pada penggunaan hybrid 2 thread. Nilai peningkatan tertinggi adalah sebesar 34% pada penggunaan 2 node dan terendah sebesar 9% pada penggunaan 8 node. 10. Secara keseluruhan implementasi model hybrid pada metode CG menghasilkan waktu eksekusi yang lebih cepat dibandingkan dengan implementasi MPI murni. Namun bisa dikatakan baik jika jumlah thread yang digunakan pada setiap node sama dengan banyaknya jumlah core processor yang tersedia pada tiap node. Saran Berikut ini adalah beberapa saran untuk penelitian lebih lanjut: 1. Percobaan pada penelitian ini dilakukan pada jaringan dengan kecepatan 100 Mbps, pada penelitian selanjutnya diharapkan dapat menggunakan jaringan dengan kecepatan yang lebih tinggi lagi, seperti gigabit ethernet, atau fiber optic. 2. Pada penelitian berikutnya diharapkan algoritme CG tidak dibatasi pada jumlah iterasi, tetapi oleh akurasi solusi SPL yang ingin diperoleh. 3. Penelitian berikutnya bisa menambahkan Preconditioned pada metode CG untuk mempercepat diperolehnya solusi SPL, sehingga iterasi CG yang diperlukan berkurang. DAFTAR PUSTAKA Barney, Blaise Introduction to Paralel Computing, Lawrence Livermore National Laboratory. Chapman, Barbara, G. Jost, R.V.D Pas Source Book of Parallel Computing. Massachusetts: The MIT Press. Dongara, Jack et al Source Book of Parallel Computing. San Francisco: Morgan Kaufmann Publishers. El-Rewini, Hesham., Mostafa. A Advance Computer Architecture and Parallel Processing. New Jersey: John Wiley & Sons, Inc Publication. Foster, Ian Designing and Building Parallel Programs : Concepts and Tools for Parallel Software Engineering. Addison- Wesley Pub Co. Grama A, A.L Gupta, G. Karypis, V. Kumar Introduction to Parallel Computing, Second Edition. England: Addison-Wesley Publishing Company. Hoefler, Torsten et al Optimizing a Conjugate Gradient Solver with Non- Blocking Collective Operations. Bloomington: Indiana University. Schewchuk, J.R An Introduction to the Conjugate Gradient Method Without the Agonizing Pain. Pittsburgh: School of Computer Science Carnegie Mellon University. Smith, L.A Mixed Mode MPI / OpenMP Programming. Edinburgh: Edinburgh Parallel Computing Center. 20

31 LAMPIRAN

32 Lampiran 1 Grafik waktu eksekusi implementasi MPI dan hybrid pada untuk setiap kombinasi

AES pipeline yang diharapkan. Implementasinya akan menggunakan prosedur komunikasi MPI point-to-point send-receive untuk aliran proses penyandian.

AES pipeline yang diharapkan. Implementasinya akan menggunakan prosedur komunikasi MPI point-to-point send-receive untuk aliran proses penyandian. 7 Studi Pustaka Kegiatan yang dilakukan pada tahap ini adalah mengumpulkan semua informasi atau literatur yang terkait dengan penelitian. Informasi tersebut didapat dari buku, internet, dan artikel yang

Lebih terperinci

Kompleksitas Algoritma Rank Sort dan Implementasi pada Parallel Programming Dengan Menggunakan OpenMP

Kompleksitas Algoritma Rank Sort dan Implementasi pada Parallel Programming Dengan Menggunakan OpenMP Kompleksitas Algoritma Rank Sort dan Implementasi pada Parallel Programming Dengan Menggunakan OpenMP Muhammad Indra NS - 23515019 1 Program Magister Informatika Sekolah Teknik Elektro dan Informatika

Lebih terperinci

Gambar 4 Kompleksitas tahapan pada fungsi CG sekuensial.

Gambar 4 Kompleksitas tahapan pada fungsi CG sekuensial. Spesifikasi dari masig-masig komputer yag diguaka adalah: 1. Itel Petium Core 2 Duo ( 2,20 GHz). 2. DDR2 RAM 1024 MB. 3. Hard disk 80 GB. 4. Mouse da Keyboard. 5. LAN 100 Mbps. 6. Sistem operasi Liux (opesuse

Lebih terperinci

BAB III METODE PENELITIAN

BAB III METODE PENELITIAN BAB III METODE PENELITIAN Penelitian implementasi pemrograman paralel dalam deteksi tepi menggunakan metode operator Sobel dibuat dengan menggunakan bahasa pemrograman C++. Metode penelitian yang digunakan

Lebih terperinci

BAB I PENDAHULUAN. seiring perkembangan teknologi mikroprosesor, proses komputasi kini dapat

BAB I PENDAHULUAN. seiring perkembangan teknologi mikroprosesor, proses komputasi kini dapat BAB I PENDAHULUAN I.1 Latar Belakang Proses komputasi yang dapat dilakukan oleh komputer telah berkembang dengan pesat. Pada awalnya proses komputasi hanya dapat dilakukan secara sekuensial saja. Sebuah

Lebih terperinci

ANALISIS DAN IMPLEMENTASI ALGORITME ADVANCED ENCRYPTION STANDARD (AES) SECARA PARALEL SAYED ZULFIKAR

ANALISIS DAN IMPLEMENTASI ALGORITME ADVANCED ENCRYPTION STANDARD (AES) SECARA PARALEL SAYED ZULFIKAR ANALISIS DAN IMPLEMENTASI ALGORITME ADVANCED ENCRYPTION STANDARD (AES) SECARA PARALEL SAYED ZULFIKAR DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA II.1 Arsitektur Komputer dengan Memori Terdistribusi Cluster yang dibangun di dalam penelitian ini termasuk dalam sistem komputer dengan arsitektur memori terdistribusi. Komputer-komputer

Lebih terperinci

ANALISIS GRAFOLOGI BERDASARKAN HURUF a DAN t MENGGUNAKAN ALGORITME K-NEAREST NEIGHBOR AMANDA KARATIKA HUBEIS

ANALISIS GRAFOLOGI BERDASARKAN HURUF a DAN t MENGGUNAKAN ALGORITME K-NEAREST NEIGHBOR AMANDA KARATIKA HUBEIS ANALISIS GRAFOLOGI BERDASARKAN HURUF a DAN t MENGGUNAKAN ALGORITME K-NEAREST NEIGHBOR AMANDA KARATIKA HUBEIS DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR

Lebih terperinci

ANALISIS ALGORITME FAKTORISASI PENYARING KUADRIK BESERTA IMPLEMENTASINYA SECARA PARALEL RADEN BAGUS DIMAS PUTRA

ANALISIS ALGORITME FAKTORISASI PENYARING KUADRIK BESERTA IMPLEMENTASINYA SECARA PARALEL RADEN BAGUS DIMAS PUTRA ANALISIS ALGORITME FAKTORISASI PENYARING KUADRIK BESERTA IMPLEMENTASINYA SECARA PARALEL RADEN BAGUS DIMAS PUTRA DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN

Lebih terperinci

4 HASIL DAN PEMBAHASAN

4 HASIL DAN PEMBAHASAN 27 4 HASIL DAN PEMBAHASAN 4. Rancangan Arsitektur Sistem Arsitektur sistem yang akan dikembangkan dari penelitian ini terdiri dari 2 Komponen, yaitu: Komponen pertama adalah Komponen web, yaitu bagian

Lebih terperinci

KONTRAK PEMBELAJARAN (KP) MATA KULIAH

KONTRAK PEMBELAJARAN (KP) MATA KULIAH KONTRAK PEMBELAJARAN (KP) MATA KULIAH Kode MK: TSK-617 Program Studi Sistem Komputer Fakultas Teknik Universitas Diponegoro Pengajar : Eko Didik Widianto, ST, MT Semester : 6 KONTRAK PEMBELAJARAN Nama

Lebih terperinci

Kuliah#7 TSK617 Pengolahan Paralel - TA 2011/2012. Eko Didik Widianto

Kuliah#7 TSK617 Pengolahan Paralel - TA 2011/2012. Eko Didik Widianto Kuliah#7 TSK617 Pengolahan Paralel - TA 2011/2012 Eko Didik Teknik Sistem Komputer - Universitas Diponegoro Review Kuliah Sebelumnya dibahas tentang: pustaka Posix Thread dan aplikasinya Pustaka Pthread

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Penelitian yang dilakukan Ebner et al. (2014) menyatakan bahwa perkembangan bisnis saat ini dapat menimbulkan masalah yaitu bagaimana sebuah korporasi akan mengatur

Lebih terperinci

SINKRONISASI DATA DENGAN PEMROSESAN PARALEL MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE

SINKRONISASI DATA DENGAN PEMROSESAN PARALEL MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE SINKRONISASI DATA DENGAN PEMROSESAN PARALEL MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE Murti Retnowo Jurusan Manajemen Informatika, UTY, Yogyakarta e-mail: nowo.yogya@gmail.com ABSTRAK Penelitian dalam pemrosesan

Lebih terperinci

Implementasi Hypergraph Partitioning pada Paralelisasi Perkalian Matriks-Vektor

Implementasi Hypergraph Partitioning pada Paralelisasi Perkalian Matriks-Vektor Implementasi Hypergraph Partitioning pada Paralelisasi Perkalian Matriks-Vektor Murni dan Tri Handhika Pusat Studi Komputasi Matematika Universitas Gunadarma, Depok {murnipskm, trihandika}@staff.gunadarma.ac.id

Lebih terperinci

IMPLEMENTASI HYBRID PARALLELIZATION PADA ALGORITME GLOBAL PAIRWISE ALIGNMENT ERWANSYAH ADRIANTAMA

IMPLEMENTASI HYBRID PARALLELIZATION PADA ALGORITME GLOBAL PAIRWISE ALIGNMENT ERWANSYAH ADRIANTAMA IMPLEMENTASI HYBRID PARALLELIZATION PADA ALGORITME GLOBAL PAIRWISE ALIGNMENT ERWANSYAH ADRIANTAMA DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2015

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI 7 BAB II LANDASAN TEORI II.1 Konsep Jaringan Komputer Jaringan komputer adalah sekelompok komputer yang dihubungkan dengan yang lainnnya menggunakan protokol komnuikasi melalui media transmisi atau media

Lebih terperinci

Model Pemrograman Paralel

Model Pemrograman Paralel Model Pemrograman Paralel Eko Didik Widianto (didik@undip.ac.id) Lab Embedded, Siskom - Undip @2011 eko didik widianto (siskom undip) SK617 Pengolahan Paralel 1 / 22 Pengolahan Paralel Pokok Bahasan Konsep

Lebih terperinci

PROSEDUR PARALELISASI PERKALIAN MATRIKS PADA GRAPHICS PROCESSING UNIT (GPU)

PROSEDUR PARALELISASI PERKALIAN MATRIKS PADA GRAPHICS PROCESSING UNIT (GPU) PROSEDUR PARALELISASI PERKALIAN MATRIKS PADA GRAPHICS PROCESSING UNIT (GPU) Murni Pusat Studi Komputasi Matematika, Universitas Gunadarma Jl. Margonda Raya no. 100, Depok 16424, Jawa Barat murnipskm@staff.gunadarma.ac.id

Lebih terperinci

MULTITASKING DENGAN MENGGUNAKAN NVIDIA CUDA. oleh Agustinus Ardiyan Abi Ravinda NIM :

MULTITASKING DENGAN MENGGUNAKAN NVIDIA CUDA. oleh Agustinus Ardiyan Abi Ravinda NIM : MULTITASKING DENGAN MENGGUNAKAN NVIDIA CUDA oleh Agustinus Ardiyan Abi Ravinda NIM : 622009010 Skripsi Untuk melengkapi salah satu syarat memperoleh Gelar Sarjana Teknik Program Studi Sistem Komputer Fakultas

Lebih terperinci

Multithreading untuk Algoritma Divide and Conquer

Multithreading untuk Algoritma Divide and Conquer Multithreading untuk Algoritma Divide and Conquer Novan Parmonangan Simanjuntak(13509034) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha

Lebih terperinci

Implementasi Hypergraph Partitioning pada Paralelisasi Perkalian Matriks-Vektor

Implementasi Hypergraph Partitioning pada Paralelisasi Perkalian Matriks-Vektor Implementasi Hypergraph Partitioning pada Paralelisasi Perkalian Matriks-Vektor 1 Murni dan 2 Tri Handhika 1,2 Pusat Studi Komputasi Matematika Universitas Gunadarma, Depok 1 murnipskm@sta.gunadarma.ac.id,

Lebih terperinci

ANALISIS DAN PERANCANGAN ALGORITMA ARITHMETIC CODING DALAM KOMPRESI FILE AUDIO SKRIPSI DEBI MAULINA SIREGAR

ANALISIS DAN PERANCANGAN ALGORITMA ARITHMETIC CODING DALAM KOMPRESI FILE AUDIO SKRIPSI DEBI MAULINA SIREGAR ANALISIS DAN PERANCANGAN ALGORITMA ARITHMETIC CODING DALAM KOMPRESI FILE AUDIO SKRIPSI DEBI MAULINA SIREGAR 091421018 PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA

Lebih terperinci

BAB IV IMPLEMENTASI DAN PENGUJIAN SERVER MMOG

BAB IV IMPLEMENTASI DAN PENGUJIAN SERVER MMOG BAB IV IMPLEMENTASI DAN PENGUJIAN SERVER MMOG 4.1 Implementasi Server MMOG Aplikasi server MMOG ini dibuat menggunakan software Microsoft Visual C++.NET 2003 yang berjalan pada sistem operasi Microsoft

Lebih terperinci

Pembersihan Data Lingkungan Pengembangan Sistem HASIL DAN PEMBAHASAN

Pembersihan Data Lingkungan Pengembangan Sistem HASIL DAN PEMBAHASAN 3 Nilai fuzzy support bagi frequent sequence dengan ukuran k diperoleh dengan mengkombinasikan frequent sequence dengan ukuran k-1. Proses ini akan berhenti jika tidak memungkinkan lagi untuk membangkitkan

Lebih terperinci

PERANCANGAN ARSITEKTUR PEMARALELAN UNTUK MENCARI SHORTEST PATH DENGAN ALGORITMA DIJKSTRA

PERANCANGAN ARSITEKTUR PEMARALELAN UNTUK MENCARI SHORTEST PATH DENGAN ALGORITMA DIJKSTRA PERANCANGAN ARSITEKTUR PEMARALELAN UNTUK MENCARI SHORTEST PATH DENGAN ALGORITMA DIJKSTRA Eko Adi Sarwoko Jurusan Matematika FMIPA UNDIP Abstrak Perancangan arsitektur pemaralelan merupakan salah satu tahap

Lebih terperinci

NOTASI UNTUK ALGORITMA PARALEL

NOTASI UNTUK ALGORITMA PARALEL NOTASI UNTUK ALGORITMA PARALEL Untuk Shared-Memory Model Global Local Untuk Distributed Memory Machine Parameter suatu konstanta yang sudah dikomunikasikan antar prosesor. Umum +, x, if else endif ; while

Lebih terperinci

BAB I PENDAHULUAN. Merancang aplikasi Paralel Processing yang diimplementasikan dengan penggunaan Computer-Unified-Device-Architecture (CUDA).

BAB I PENDAHULUAN. Merancang aplikasi Paralel Processing yang diimplementasikan dengan penggunaan Computer-Unified-Device-Architecture (CUDA). BAB I PENDAHULUAN 1.1. Tujuan Merancang aplikasi Paralel Processing yang diimplementasikan dengan penggunaan Computer-Unified-Device-Architecture (CUDA). 1.2. Latar Belakang Banyak Central Processing Unit

Lebih terperinci

VIRTUAL PARALLEL ENVIRONMENT USING PVM CASE STUDY BUBBLE SORT ALGORITHM

VIRTUAL PARALLEL ENVIRONMENT USING PVM CASE STUDY BUBBLE SORT ALGORITHM VIRTUAL PARALLEL ENVIRONMENT USING PVM CASE STUDY BUBBLE SORT ALGORITHM Iwan Pratama Program Studi Teknik Informatika, Unika Soegijapranata Semarang Ignatius.iwan93@gmail.com Abstract Parallel computing

Lebih terperinci

Astika Ayuningtyas Sekolah Tinggi Teknologi Adisutjipto Yogyakarta, Jl Janti Blok R Lanud Adisutipto, Yogyakarta

Astika Ayuningtyas Sekolah Tinggi Teknologi Adisutjipto Yogyakarta, Jl Janti Blok R Lanud Adisutipto, Yogyakarta Seminar SENATIK Nasional Vol. II, 26 Teknologi November Informasi 2016, ISSN: dan 2528-1666 Kedirgantaraan (SENATIK) Vol. II, 26 November 2016, ISSN: 2528-1666 PeP- 115 Pemrosesan Paralel pada Menggunakan

Lebih terperinci

PENYELESAIAN MAGIC SQUARE SEBAGAI PERMASALAHAN SISTEM PERSAMAAN LINEAR (SPL) RISMANTO FERNANDUS SIRINGO-RINGO

PENYELESAIAN MAGIC SQUARE SEBAGAI PERMASALAHAN SISTEM PERSAMAAN LINEAR (SPL) RISMANTO FERNANDUS SIRINGO-RINGO PENYELESAIAN MAGIC SQUARE SEBAGAI PERMASALAHAN SISTEM PERSAMAAN LINEAR (SPL) RISMANTO FERNANDUS SIRINGO-RINGO DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR

Lebih terperinci

KRIPTOGRAFI KUNCI PUBLIK ALGORITMA ELGAMAL DENGAN METODE THE SIEVE OF ERATOSTHENES UNTUK PEMBANGKITAN BILANGAN PRIMA SKRIPSI SYAUVIKA LUBIS

KRIPTOGRAFI KUNCI PUBLIK ALGORITMA ELGAMAL DENGAN METODE THE SIEVE OF ERATOSTHENES UNTUK PEMBANGKITAN BILANGAN PRIMA SKRIPSI SYAUVIKA LUBIS KRIPTOGRAFI KUNCI PUBLIK ALGORITMA ELGAMAL DENGAN METODE THE SIEVE OF ERATOSTHENES UNTUK PEMBANGKITAN BILANGAN PRIMA SKRIPSI SYAUVIKA LUBIS 061401001 PROGRAM STUDI S-1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER

Lebih terperinci

SIMULASI PERAMBATAN GELOMBANG SUARA DENGAN METODE STAGGERED GRID FINITE DIFFERENCE TIME DOMAIN MENGGUNAKAN ARSITEKTUR CUDA GPU

SIMULASI PERAMBATAN GELOMBANG SUARA DENGAN METODE STAGGERED GRID FINITE DIFFERENCE TIME DOMAIN MENGGUNAKAN ARSITEKTUR CUDA GPU TESIS SIMULASI PERAMBATAN GELOMBANG SUARA DENGAN METODE STAGGERED GRID FINITE DIFFERENCE TIME DOMAIN MENGGUNAKAN ARSITEKTUR CUDA GPU ARIEF BUDIMAN No. Mhs. : 105301460/PS/MTF PROGRAM STUDI MAGISTER TEKNIK

Lebih terperinci

SKRIPSI BILQIS

SKRIPSI BILQIS ANALISIS DAN PERANCANGAN APLIKASI PESAN RAHASIA MENGGUNAKAN ALGORITMA ONE TIME PAD (OTP) DENGAN PEMBANGKIT BILANGAN ACAK LINEAR CONGRUENTIAL GENERATOR (LCG) SKRIPSI BILQIS 081401072 PROGRAM STUDI S1 ILMU

Lebih terperinci

BAB 4 IMPLEMENTASI DAN EVALUASI

BAB 4 IMPLEMENTASI DAN EVALUASI 38 BAB 4 IMPLEMENTASI DAN EVALUASI 4.1 Spesifikasi Sistem Untuk menjalankan program aplikasi ini, diperlukan beberapa komponen pendukung. Yang pertama adalah konfigurasi dari perangkat keras dan yang kedua

Lebih terperinci

BAB 4 IMPLEMENTASI DAN EVALUASI

BAB 4 IMPLEMENTASI DAN EVALUASI BAB 4 IMPLEMENTASI DAN EVALUASI 4.1 Spesifikasi Kebutuhan Program Untuk menjalankan aplikasi ini ada beberapa kebutuhan yang harus dipenuhi oleh pengguna. Spesifikasi kebutuhan berikut ini merupakan spesifikasi

Lebih terperinci

Deskripsi. Buku Ajar 3/1/2010. Pengajar. Materi Kuliah. Materi Kuliah #2. Komputasi Paralel. Kuliah 01: Pendahuluan

Deskripsi. Buku Ajar 3/1/2010. Pengajar. Materi Kuliah. Materi Kuliah #2. Komputasi Paralel. Kuliah 01: Pendahuluan // Komputasi Paralel Kuliah : Pendahuluan Yeni Herdiyeni http://www.cs.ipb.ac.id/~yeni/paralel Departemen Ilmu Komputer IPB Semester Genap Deskripsi Membahas kebutuhan dan klasifikasi mesin paralel (SISD,

Lebih terperinci

REGRESI KEKAR SIMPANGAN MUTLAK TERKECIL DENGAN MODIFIKASI SIMPLEKS MUHAMMAD YUSUF DWIHARJANGGI

REGRESI KEKAR SIMPANGAN MUTLAK TERKECIL DENGAN MODIFIKASI SIMPLEKS MUHAMMAD YUSUF DWIHARJANGGI REGRESI KEKAR SIMPANGAN MUTLAK TERKECIL DENGAN MODIFIKASI SIMPLEKS MUHAMMAD YUSUF DWIHARJANGGI DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2011 ABSTRAK

Lebih terperinci

IMPLEMENTASI GRID COMPUTING DENGAN MENGGUNAKAN PENGALAMATAN IPv6

IMPLEMENTASI GRID COMPUTING DENGAN MENGGUNAKAN PENGALAMATAN IPv6 IMPLEMENTASI GRID COMPUTING DENGAN MENGGUNAKAN PENGALAMATAN IPv6 Ahmad Makhsun¹, Idris Winarno, SST, M.Kom.² ¹Mahasiswa Jurusan Teknik Informatika, ²Dosen Jurusan Teknik Informatika Jurusan Teknik Informatika

Lebih terperinci

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM BAB III PERANCANGAN SISTEM 3.1 Konfigurasi Cluster PC Multicore Penelitian ini bertujuan untuk mengetahui pengaruh algortima paralel pada kinerja komputasi paralel. Untuk itu konfigurasi hardware disusun

Lebih terperinci

ANALISIS KINERJA DAN IMPLEMENTASI ALGORITMA KOMPRESI ARITHMETIC CODING PADA FILE TEKS DAN CITRA DIGITAL SKRIPSI SARIFAH

ANALISIS KINERJA DAN IMPLEMENTASI ALGORITMA KOMPRESI ARITHMETIC CODING PADA FILE TEKS DAN CITRA DIGITAL SKRIPSI SARIFAH ANALISIS KINERJA DAN IMPLEMENTASI ALGORITMA KOMPRESI ARITHMETIC CODING PADA FILE TEKS DAN CITRA DIGITAL SKRIPSI SARIFAH 061401090 PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA

Lebih terperinci

PENGEMBANGAN MODEL SINGLE SIGN-ON UNTUK LAYANAN INTERNET DAN PROXY IPB PRIYO PUJI NUGROHO

PENGEMBANGAN MODEL SINGLE SIGN-ON UNTUK LAYANAN INTERNET DAN PROXY IPB PRIYO PUJI NUGROHO PENGEMBANGAN MODEL SINGLE SIGN-ON UNTUK LAYANAN INTERNET DAN PROXY IPB PRIYO PUJI NUGROHO DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2012 PENGEMBANGAN

Lebih terperinci

ANALISIS DAN IMPLEMENTASI I/O PARALEL PADA ALGORITME ENKRIPSI ADVANCED ENCRYPTION STANDARD (AES) MUHAMMAD ZULFIKAR HANDANA

ANALISIS DAN IMPLEMENTASI I/O PARALEL PADA ALGORITME ENKRIPSI ADVANCED ENCRYPTION STANDARD (AES) MUHAMMAD ZULFIKAR HANDANA ANALISIS DAN IMPLEMENTASI I/O PARALEL PADA ALGORITME ENKRIPSI ADVANCED ENCRYPTION STANDARD (AES) MUHAMMAD ZULFIKAR HANDANA DEPARTEMEN ILMU KOMPUTER FAKLTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT

Lebih terperinci

ANALISIS BIPLOT UNTUK MEMETAKAN MUTU SEKOLAH YANG SESUAI DENGAN NILAI UJIAN NASIONAL SUJITA

ANALISIS BIPLOT UNTUK MEMETAKAN MUTU SEKOLAH YANG SESUAI DENGAN NILAI UJIAN NASIONAL SUJITA ANALISIS BIPLOT UNTUK MEMETAKAN MUTU SEKOLAH YANG SESUAI DENGAN NILAI UJIAN NASIONAL SUJITA SEKOLAH PASCASARJANA INSTITUT PERTANIAN BOGOR BOGOR 2009 PERNYATAAN MENGENAI TESIS DAN SUMBER INFORMASI Dengan

Lebih terperinci

3. METODE PENELITIAN

3. METODE PENELITIAN 19 3. METODE PENELITIAN 3.1 Diagram Alir Penelitian Kerangka pemikiran pada penelitian ini dapat digambarkan dalam suatu bagan alir seperti pada Gambar 8. Gambar 8 Diagram Alir Penelitian Pengumpulan Data

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Perkembangan yang pesat di bidang ilmu dan teknologi dewasa ini menuntut adanya kemampuan manusia dalam mempertimbangkan segala kemungkinan sebelum mengambil keputusan

Lebih terperinci

Implementasi Komputasi Paralel. Mohammad Zarkasi Dosen Pembimbing: Waskitho Wibisono, S.Kom., M.Eng., Ph.D. Ir. FX. Arunanto, M.

Implementasi Komputasi Paralel. Mohammad Zarkasi Dosen Pembimbing: Waskitho Wibisono, S.Kom., M.Eng., Ph.D. Ir. FX. Arunanto, M. Implementasi Komputasi Paralel untuk Enkripsi Citra berbasis AES menggunakan JPPF Mohammad Zarkasi 5109100155 Dosen Pembimbing: Waskitho Wibisono, S.Kom., M.Eng., Ph.D. Ir. FX. Arunanto, M.Sc 1 Latar Belakang

Lebih terperinci

BAB IV PENGUJIAN DAN ANALISIS

BAB IV PENGUJIAN DAN ANALISIS BAB IV PENGUJIAN DAN ANALISIS Pada bab ini akan dijelaskan tentang pengujian dari masing masing metode computing dan juga analisa dari hasil pengujian tersebut. Pengujian dilakukan pada waktu proses dengan

Lebih terperinci

PENGEMBANGAN ALGORITMA ITERATIF UNTUK MINIMISASI FUNGSI NONLINEAR

PENGEMBANGAN ALGORITMA ITERATIF UNTUK MINIMISASI FUNGSI NONLINEAR PENGEMBANGAN ALGORITMA ITERATIF UNTUK MINIMISASI FUNGSI NONLINEAR TESIS Oleh FADHILAH JULI YANTI HARAHAP 127021019/MT FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2014

Lebih terperinci

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Bilangan prima merupakan suatu hal yang mendasar dan sangat penting dalam bidang matematika secara umum dan teori bilangan secara khusus (Agrawal et al, 2002). Sejak

Lebih terperinci

OPTIMALISASI ALGORITMA DAN QUERY DENGAN MENGEKSPLOITASI KEMAMPUAN PROSESOR MULTI-CORE STUDI KASUS: PENGEMBANGAN SISTEM PENGOLAHAN DATA PERPAJAKAN PNS

OPTIMALISASI ALGORITMA DAN QUERY DENGAN MENGEKSPLOITASI KEMAMPUAN PROSESOR MULTI-CORE STUDI KASUS: PENGEMBANGAN SISTEM PENGOLAHAN DATA PERPAJAKAN PNS i Tesis OPTIMALISASI ALGORITMA DAN QUERY DENGAN MENGEKSPLOITASI KEMAMPUAN PROSESOR MULTI-CORE STUDI KASUS: PENGEMBANGAN SISTEM PENGOLAHAN DATA PERPAJAKAN PNS ANTONIUS BIMA MURTI WIJAYA No. Mhs.: 115301622/PS/MTF

Lebih terperinci

Tahun Akademik 2014/2015 Semester II. DIG1I3 - Instalasi dan Penggunaan Sistem Operasi. System Calls dan Thread

Tahun Akademik 2014/2015 Semester II. DIG1I3 - Instalasi dan Penggunaan Sistem Operasi. System Calls dan Thread Tahun Akademik 2014/2015 Semester II DIG1I3 - Instalasi dan Penggunaan Sistem Operasi System Calls dan Thread Mohamad Dani (MHM) Alamat E-mail: mohamad.dani@gmail.com Hanya dipergunakan untuk kepentingan

Lebih terperinci

1. PENDAHULUAN 1.1. LATAR BELAKANG MASALAH

1. PENDAHULUAN 1.1. LATAR BELAKANG MASALAH 1. PENDAHULUAN 1.1. LATAR BELAKANG MASALAH Pada saat ini, teknologi mengalami kemajuan yang sangat pesat, khususnya pada perkembangan komputer. Adapun salah satu teknologi yang mendukung cepatnya perhitungan

Lebih terperinci

Penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Tujuan Utama Untuk meningkatkan performa komputasi.

Penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Tujuan Utama Untuk meningkatkan performa komputasi. PARALLEL PROCESSING Penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Tujuan Utama Untuk meningkatkan performa komputasi. Komputasi Parallel Salah satu teknik melakukan

Lebih terperinci

MANAJEMEN MEMORI SISTEM OPERASI

MANAJEMEN MEMORI SISTEM OPERASI MANAJEMEN MEMORI SISTEM OPERASI Manajemen Memori Memori adalah pusat dari operasi pada sistem komputer modern, berfungsi sebagai tempat penyimpanan informasi yang harus diatur dan dijaga sebaik baiknya.

Lebih terperinci

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Saat ini berbagai komunitas di antaranya akademik, peneliti, bisnis dan industri dihadapkan pada pertambahan kebutuhan komputasi yang semakin besar dan komplek. Kebutuhan

Lebih terperinci

NOTASI UNTUK ALGORITMA PARALEL

NOTASI UNTUK ALGORITMA PARALEL NOTASI UNTUK ALGORITMA PARALEL Untuk Shared-Memory Model Global Local Untuk Distributed Memory Machine Parameter Æ suatu konstanta yang sudah dikomunikasikan antar prosesor. Umum +, x, Å if else endif

Lebih terperinci

IMPLEMENTASI ALGORITMA PALGUNADI UNTUK MENYELESAIKAN SINGLE DAN MULTI PRODUCT VEHICLE ROUTING PROBLEM

IMPLEMENTASI ALGORITMA PALGUNADI UNTUK MENYELESAIKAN SINGLE DAN MULTI PRODUCT VEHICLE ROUTING PROBLEM IMPLEMENTASI ALGORITMA PALGUNADI UNTUK MENYELESAIKAN SINGLE DAN MULTI PRODUCT VEHICLE ROUTING PROBLEM SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Mencapai Gelar Strata Satu Jurusan Informatika HALAMAN

Lebih terperinci

Pendeteksian Kemacetan Lalu Lintas dengan Compute Unified Device Architecture (CUDA)

Pendeteksian Kemacetan Lalu Lintas dengan Compute Unified Device Architecture (CUDA) Pendeteksian Kemacetan Lalu Lintas dengan Compute Unified Device Architecture (CUDA) LAPORAN TUGAS AKHIR Disusun sebagai syarat kelulusan tingkat sarjana oleh: Muhammad Ismail Faruqi / 13503045 PROGRAM

Lebih terperinci

BAB III METODE PENELITIAN

BAB III METODE PENELITIAN BAB III METODE PENELITIAN Pada penelitian ini, dilakukan analisis pendahuluan dari waktu eksekusi algoritma Shell sort dan Quick sort untuk mengetahui titik perpotongan data antara kedua algoritma. Setelah

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI A II LANDASAN TEORI 2.1 Komputasi Paralel Teknologi komputasi paralel sudah berkembang lebih dari dua dekade, penggunaannya semakin beragam mulai dari kebutuhan perhitungan di laboratorium fisika nuklir,

Lebih terperinci

UKURAN DAN BENTUK SERTA PENDUGAAN BOBOT BADAN BERDASARKAN UKURAN TUBUH DOMBA SILANGAN LOKAL GARUT JANTAN DI KABUPATEN TASIKMALAYA

UKURAN DAN BENTUK SERTA PENDUGAAN BOBOT BADAN BERDASARKAN UKURAN TUBUH DOMBA SILANGAN LOKAL GARUT JANTAN DI KABUPATEN TASIKMALAYA UKURAN DAN BENTUK SERTA PENDUGAAN BOBOT BADAN BERDASARKAN UKURAN TUBUH DOMBA SILANGAN LOKAL GARUT JANTAN DI KABUPATEN TASIKMALAYA SKRIPSI MUHAMMAD VAMY HANIBAL PROGRAM STUDI TEKNOLOGI PRODUKSI TERNAK FAKULTAS

Lebih terperinci

Konsep Organisasi dan Arsitektur Komputer (Pertemuan ke-2)

Konsep Organisasi dan Arsitektur Komputer (Pertemuan ke-2) Konsep Organisasi dan Arsitektur Komputer (Pertemuan ke-2) Diedit ulang oleh: Endro Ariyanto Prodi S1 Teknik Informatika Fakultas Informatika Universitas Telkom Januari 2016 Pokok Bahasan Pendahuluan Arsitektur

Lebih terperinci

ABSTRAK. Kata kunci: Big Data, Hadoop, Karakteristik, Kecepatan Transfer, Stabilitas. v Universitas Kristen Maranatha

ABSTRAK. Kata kunci: Big Data, Hadoop, Karakteristik, Kecepatan Transfer, Stabilitas. v Universitas Kristen Maranatha ABSTRAK Big Data dianggap sebagai solusi untuk pertumbuhan data yang sangat pesat, salah satu aplikasi yang menerapkan hal ini adalah Hadoop. Maka akan dilakukan pengujian terhadap Hadoop untuk membuktikan

Lebih terperinci

KOMPUTASI PARALEL UNTUK SISTEM IDENTIFIKASI TUMBUHAN OBAT MENGGUNAKAN FUZZY LOCAL BINARY PATTERN NGAKAN NYOMAN KUTHA KRISNAWIJAYA

KOMPUTASI PARALEL UNTUK SISTEM IDENTIFIKASI TUMBUHAN OBAT MENGGUNAKAN FUZZY LOCAL BINARY PATTERN NGAKAN NYOMAN KUTHA KRISNAWIJAYA KOMPUTASI PARALEL UNTUK SISTEM IDENTIFIKASI TUMBUHAN OBAT MENGGUNAKAN FUZZY LOCAL BINARY PATTERN NGAKAN NYOMAN KUTHA KRISNAWIJAYA SEKOLAH PASCASARJANA INSTITUT PERTANIAN BOGOR BOGOR 2013 PERNYATAAN MENGENAI

Lebih terperinci

TEMPORAL QUESTION ANSWERING SYSTEM BAHASA INDONESIA ADI DARLIANSYAH

TEMPORAL QUESTION ANSWERING SYSTEM BAHASA INDONESIA ADI DARLIANSYAH TEMPORAL QUESTION ANSWERING SYSTEM BAHASA INDONESIA ADI DARLIANSYAH DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2012 TEMPORAL QUESTION ANSWERING

Lebih terperinci

BAB III METODOLOGI PENELITIAN

BAB III METODOLOGI PENELITIAN BAB III METODOLOGI PENELITIAN Simulasi pemrograman paralel pada medan elektromagnetik berdimensi satu dengan metode Finite Difference Time Domain (FDTD) dilakukan untuk menampilkan secara grafis medan

Lebih terperinci

PARALELISASI PERKALIAN MATRIKS SPARSE VEKTOR DENGAN CUBLAS

PARALELISASI PERKALIAN MATRIKS SPARSE VEKTOR DENGAN CUBLAS PARALELISASI PERKALIAN MATRIKS SPARSE VEKTOR DENGAN CUBLAS Murni Pusat Studi Komputasi Matematika, Universitas Gunadarma Jl. Margonda Raya no. 100, Depok 16424, Jawa Barat murnipskm@staff.gunadarma.ac.id

Lebih terperinci

BAB IV IMPLEMENTASI DAN EVALUASI

BAB IV IMPLEMENTASI DAN EVALUASI BAB IV IMPLEMENTASI DAN EVALUASI Pada bab ini akan dijelaskan mengenai implementasi dan evaluasi pada saat melakukan perancangan Standalone AVR Programmer. Berikut ini adalah beberapa cara implementasi

Lebih terperinci

Paralelisasi Transformasi Fourier pada Arsitektur General Purpose Graphic Processing Unit Untuk Klasifikasi Alat Musik Dengan Instrumen Solo

Paralelisasi Transformasi Fourier pada Arsitektur General Purpose Graphic Processing Unit Untuk Klasifikasi Alat Musik Dengan Instrumen Solo Paralelisasi Transformasi Fourier pada Arsitektur General Purpose Graphic Processing Unit Untuk Klasifikasi Alat Musik Dengan Instrumen Solo Ridwan Rismanto 5109201049 DOSEN PEMBIMBING Dr. Nanik Suciati,

Lebih terperinci

Analisis Kinerja Matrix Multiplication Pada Lingkungan Komputasi Berkemampuan Tinggi (Cuda Gpu)

Analisis Kinerja Matrix Multiplication Pada Lingkungan Komputasi Berkemampuan Tinggi (Cuda Gpu) Analisis Kinerja Matrix Multiplication Pada Lingkungan Komputasi Berkemampuan Tinggi (Cuda Gpu) 1 Machudor Yusman, 2 Anie Rose Irawati, 3 Achmad Yusuf Vidyawan 1 Jurusan Ilmu Komputer FMIPA Unila 2 Jurusan

Lebih terperinci

10. PARALLEL PROCESSING

10. PARALLEL PROCESSING 10. PARALLEL PROCESSING Parallel Processing Penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Tujuan Utama Untuk meningkatkan performa komputasi. Komputasi Parallel Salah

Lebih terperinci

UNIVERSITAS BINA NUSANTARA ABSTRAK

UNIVERSITAS BINA NUSANTARA ABSTRAK UNIVERSITAS BINA NUSANTARA Program Ganda Teknik Informatika Matematika Skripsi Sarjana Program Ganda Semester Ganjil 2007/2008 SKRIPSI PROGRAM GANDA UNIVERSITAS BINA NUSANTARA Gramita 0700722876 ABSTRAK

Lebih terperinci

IMPLEMENTASI PEMROGRAMAN PARALEL DALAM DETEKSI TEPI MENGGUNAKAN METODE OPERATOR SOBEL TUGAS AKHIR

IMPLEMENTASI PEMROGRAMAN PARALEL DALAM DETEKSI TEPI MENGGUNAKAN METODE OPERATOR SOBEL TUGAS AKHIR IMPLEMENTASI PEMROGRAMAN PARALEL DALAM DETEKSI TEPI MENGGUNAKAN METODE OPERATOR SOBEL TUGAS AKHIR Diajukan Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Teknik pada Jurusan Teknik Elektro Oleh:

Lebih terperinci

Organisasi & Arsitektur. Komputer. Org & Ars komp Klasifikasi Ars Komp Repr Data

Organisasi & Arsitektur. Komputer. Org & Ars komp Klasifikasi Ars Komp Repr Data Organisasi & Arsitektur Komputer Org & Ars komp Klasifikasi Ars Komp Repr Data Organisasi berkaitan dengan fungsi dan desain bagianbagian sistem komputer digital yang menerima, menyimpan dan mengolah informasi.

Lebih terperinci

SIMULASI PEMROGRAMAN PARALEL PADA MEDAN ELEKTROMAGNETIK BERDIMENSI SATU DENGAN MENGGUNAKAN METODE FINITE DIFFERENCE TIME DOMAIN (FDTD) TUGAS AKHIR

SIMULASI PEMROGRAMAN PARALEL PADA MEDAN ELEKTROMAGNETIK BERDIMENSI SATU DENGAN MENGGUNAKAN METODE FINITE DIFFERENCE TIME DOMAIN (FDTD) TUGAS AKHIR SIMULASI PEMROGRAMAN PARALEL PADA MEDAN ELEKTROMAGNETIK BERDIMENSI SATU DENGAN MENGGUNAKAN METODE FINITE DIFFERENCE TIME DOMAIN (FDTD) TUGAS AKHIR Diajukan Sebagai Salah Satu Syarat untuk Memperoleh Gelar

Lebih terperinci

Struktur Sistem Komputer

Struktur Sistem Komputer Struktur Sistem Komputer ARSITEKTUR UMUM SISTEM KOMPUTER Sistem Komputer Sistem komputer terdiri atas CPU dan sejumlah perangkat pengendali yang terhubung melalui sebuah bus yang menyediakan akses ke memori

Lebih terperinci

1 H a n d o u t T u g a s A k h i r J u r u s a n M a n a j e m e n I n f o r m a t i k a

1 H a n d o u t T u g a s A k h i r J u r u s a n M a n a j e m e n I n f o r m a t i k a Kode Outline : Web Programming Bentuk Outline Tugas Akhir Web Programming Lembar Judul Tugas Akhir Lembar Pernyataan Keaslian Tugas akhir Lembar Pernyataan Publikasi Karya Ilmiah Lembar Persetujuan dan

Lebih terperinci

PENYELESAIAN MASALAH PENGIRIMAN PAKET KILAT UNTUK JENIS NEXT-DAY SERVICE DENGAN MENGGUNAKAN TEKNIK PEMBANGKITAN KOLOM. Oleh: WULAN ANGGRAENI G

PENYELESAIAN MASALAH PENGIRIMAN PAKET KILAT UNTUK JENIS NEXT-DAY SERVICE DENGAN MENGGUNAKAN TEKNIK PEMBANGKITAN KOLOM. Oleh: WULAN ANGGRAENI G PENYELESAIAN MASALAH PENGIRIMAN PAKET KILAT UNTUK JENIS NEXT-DAY SERVICE DENGAN MENGGUNAKAN TEKNIK PEMBANGKITAN KOLOM Oleh: WULAN ANGGRAENI G54101038 PROGRAM STUDI MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU

Lebih terperinci

Penggunaan Algoritma Paralel dalam Optimasi Prosesor Multicore

Penggunaan Algoritma Paralel dalam Optimasi Prosesor Multicore Penggunaan Algoritma Paralel dalam Optimasi Prosesor Multicore Rafi Ramadhan 13512075 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10

Lebih terperinci

Introduction to Computer Architecture. Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 01 --

Introduction to Computer Architecture. Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 01 -- Introduction to Computer Architecture Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 01 -- This presentation is revised by @hazlindaaziz, STMIK, 2014 Acknowledgement

Lebih terperinci

ANALISA KINERJA CLUSTER LINUX DENGAN PUSTAKA MPICH TERHADAP PERKALIAN MATRIKS

ANALISA KINERJA CLUSTER LINUX DENGAN PUSTAKA MPICH TERHADAP PERKALIAN MATRIKS ANALISA KINERJA CLUSTER LINUX DENGAN PUSTAKA MPICH TERHADAP PERKALIAN MATRIKS Fani Fatullah, A.Benny Mutiara MQN,Chandra Yulianto Universitas Gunadarma Jl. Margonda Raya 100, Depok, 16424 e-mail : amutiara@staff.gunadarma.ac.id,chandra@staff.gunadarma.ac.id

Lebih terperinci

ISSN : e-proceeding of Engineering : Vol.4, No.1 April 2017 Page 1301

ISSN : e-proceeding of Engineering : Vol.4, No.1 April 2017 Page 1301 ISSN : 2355-9365 e-proceeding of Engineering : Vol.4, No.1 April 2017 Page 1301 Evaluasi Kinerja Sparse Matrix-Vector Multiplication menggunakan Format Penyimpanan CSR dan BCSR pada MPI Performance Evaluation

Lebih terperinci

PENGOLAHAN PARALEL. Kebutuhan akan Komputer Paralel PENDAHULUAN. Dahulu:

PENGOLAHAN PARALEL. Kebutuhan akan Komputer Paralel PENDAHULUAN. Dahulu: PENGOLAHAN PARALEL PENDAHULUAN PENDAHULUAN 1 Kebutuhan akan Komputer Paralel Dahulu: Ilmu klasik didasarkan pada observasi, teori dan eksperimen Observasi dari fenomena menghasilkan hipotesa Teori dikembangkan

Lebih terperinci

Analisa Data Mahasiswa Baru Terhadap Program Studi Yang. Dipilih Di Universitas Pembangunan Nasional Veteran Jawa

Analisa Data Mahasiswa Baru Terhadap Program Studi Yang. Dipilih Di Universitas Pembangunan Nasional Veteran Jawa Analisa Data Mahasiswa Baru Terhadap Program Studi Yang Dipilih Di Universitas Pembangunan Nasional Veteran Jawa Timur Menggunakan Teknik Data Mining SKRIPSI Disusun Oleh : Citra Arum Sari 1032010048 JURUSAN

Lebih terperinci

PERANCANGAN PROTOKOL PENYEMBUNYIAN INFORMASI TEROTENTIKASI SHELVIE NIDYA NEYMAN

PERANCANGAN PROTOKOL PENYEMBUNYIAN INFORMASI TEROTENTIKASI SHELVIE NIDYA NEYMAN PERANCANGAN PROTOKOL PENYEMBUNYIAN INFORMASI TEROTENTIKASI SHELVIE NIDYA NEYMAN SEKOLAH PASCASARJANA INSTITUT PERTANIAN BOGOR BOGOR 2007 PERNYATAAN MENGENAI TESIS DAN SUMBER INFORMASI Dengan ini saya menyatakan

Lebih terperinci

ANALISIS DUPLICATE FILE FINDER MENGGUNAKAN METODE MD5 HASH SKRIPSI WAHYUNI FARAH JUWITA

ANALISIS DUPLICATE FILE FINDER MENGGUNAKAN METODE MD5 HASH SKRIPSI WAHYUNI FARAH JUWITA ANALISIS DUPLICATE FILE FINDER MENGGUNAKAN METODE MD5 HASH SKRIPSI WAHYUNI FARAH JUWITA 111421081 PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA

Lebih terperinci

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah BAB I PENDAHULUAN 1.1 Latar Belakang Masalah Perkembangan ilmu dan teknologi saat ini sangat pesat, apalagi informasi saat ini sangat cepat menyebar kepada seluruh elemen masyarakat. Sehingga permasalahan

Lebih terperinci

BAB 3 ANALISIS DAN PERANCANGAN APLIKASI

BAB 3 ANALISIS DAN PERANCANGAN APLIKASI 27 BAB 3 ANALISIS DAN PERANCANGAN APLIKASI 3.1 Analisis Pada subbab ini akan diuraikan tentang analisis kebutuhan untuk menyelesaikan masalah jalur terpendek yang dirancang dengan menggunakan algoritma

Lebih terperinci

Data Mining. Tidak. Mulai. Data transaksi. Pembersihan data. Seleksi data. Transformasi data. Pemberian nilai minimum support

Data Mining. Tidak. Mulai. Data transaksi. Pembersihan data. Seleksi data. Transformasi data. Pemberian nilai minimum support 6 Representasi Pengetahuan Tahap ini merupakan tahap akhir dari proses KDD. Sederetan aturan atau rule disajikan kepada pengguna dengan menggunakan algoritme Rule Generation. Mulai Data transaksi Pembersihan

Lebih terperinci

ANALISIS PERBANDINGAN ALGORITMA QUICKSORT, 3 WAY QUICKSORT, DAN RADIXSORT SKRIPSI PLOREN PERONICA PASARIBU

ANALISIS PERBANDINGAN ALGORITMA QUICKSORT, 3 WAY QUICKSORT, DAN RADIXSORT SKRIPSI PLOREN PERONICA PASARIBU ANALISIS PERBANDINGAN ALGORITMA QUICKSORT, 3 WAY QUICKSORT, DAN RADIXSORT SKRIPSI PLOREN PERONICA PASARIBU 131421038 PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

Lebih terperinci

1. Address Binding. Sebuah program ditempatkan dalam disk dalam bentuk berkas biner Sebelum dieksekusi, sebuah program harus ditempatkan di memori.

1. Address Binding. Sebuah program ditempatkan dalam disk dalam bentuk berkas biner Sebelum dieksekusi, sebuah program harus ditempatkan di memori. Manajemen Memori Latar Belakang Memori merupakan pusat kegiatan pada sebuah komputer. Setiap proses yang akan dijalankan harus melalui memori. CPU mengambil instruksi dari memori sesuai yang ada pada program

Lebih terperinci

BAB 4 IMPLEMENTASI DAN EVALUASI

BAB 4 IMPLEMENTASI DAN EVALUASI 54 BAB 4 IMPLEMENTASI DAN EVALUASI 4.1 Implementasi Program 4.1.1 Spesifikasi Kebutuhan Program Spesifikasi Perangkat Keras Perangkat keras yang digunakan untuk merancang sistem ini adalah : Processor

Lebih terperinci

ANALISIS KOMPUTASI PARALEL DAN SERIAL PADA ALGORITMA MERGE SORT

ANALISIS KOMPUTASI PARALEL DAN SERIAL PADA ALGORITMA MERGE SORT J. Sains MIPA, April 2018, Vol. 18, No. 1, Hal.: 13-18 ISSN 1978-1873 ANALISIS KOMPUTASI PARALEL DAN SERIAL PADA ALGORITMA MERGE SORT Machudor Yusman, Aristoteles* dan Anie Rose Irawati Jurusan Ilmu Komputer

Lebih terperinci

IMPLEMENTASI PEMROGRAMAN PARALEL PADA DETEKSI TEPI DENGAN MENGGUNAKAN METODE CANNY TUGAS AKHIR

IMPLEMENTASI PEMROGRAMAN PARALEL PADA DETEKSI TEPI DENGAN MENGGUNAKAN METODE CANNY TUGAS AKHIR IMPLEMENTASI PEMROGRAMAN PARALEL PADA DETEKSI TEPI DENGAN MENGGUNAKAN METODE CANNY TUGAS AKHIR Diajukan Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Teknik pada Jurusan Teknik Elektro Oleh

Lebih terperinci

4. SISTEM OPERASI TERDISTRIBUSI

4. SISTEM OPERASI TERDISTRIBUSI 4. SISTEM OPERASI TERDISTRIBUSI APAKAH SISTEM OPERASI TERDISTRIBUSI? Sistem operasi terdistribusi adalah salah satu implementasi dari sistem terdistribusi, di mana sekumpulan komputer dan prosesor yang

Lebih terperinci

Pertemuan ke 6 Set Instruksi. Computer Organization Dosen : Eko Budi Setiawan

Pertemuan ke 6 Set Instruksi. Computer Organization Dosen : Eko Budi Setiawan Pertemuan ke 6 Set Instruksi Computer Organization Dosen : Eko Budi Setiawan Tujuan Memahami representasi set instruksi, dan jenis-jenis format instruksi Mengetahui jenis-jenis type operand yang digunakan

Lebih terperinci

PENDAHULUAN. -. Pengolahan data numerik dalam jumlah yang sangat besar. -. Kebutuhan akan ketersediaan data yang senantiasa up to date.

PENDAHULUAN. -. Pengolahan data numerik dalam jumlah yang sangat besar. -. Kebutuhan akan ketersediaan data yang senantiasa up to date. PENDAHULUAN 1 Kebutuhan akan Pengolahan Paralel Motivasi : - Pengolahan data numerik dalam jumlah yang sangat besar - Kebutuhan akan ketersediaan data yang senantiasa up to date Contoh 11 : Simulasi sirkulasi

Lebih terperinci

PENGARUH PERBEDAAN STRATEGI METODE SELEKSI DALAM ALGORITMA GENETIKA UNTUK KOMPRESI CITRA FRAKTAL SKRIPSI

PENGARUH PERBEDAAN STRATEGI METODE SELEKSI DALAM ALGORITMA GENETIKA UNTUK KOMPRESI CITRA FRAKTAL SKRIPSI PENGARUH PERBEDAAN STRATEGI METODE SELEKSI DALAM ALGORITMA GENETIKA UNTUK KOMPRESI CITRA FRAKTAL HALAMAN JUDUL SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Mencapai Gelar Strata Satu Jurusan Informatika

Lebih terperinci

http://www.brigidaarie.com Di lingkungan file-server, pemrosesan didistribusikan ke jaringan yang Local Area Network (LAN). File-Server menunjang kebutuhan file dengan aplikasi-aplikasi dan DBMS. Aplikasi

Lebih terperinci