Winarno
UltimaComputing
Studi Kinerja Parallel Virtual Machines pada Jaringan Komputer Berbasis Linux WINARNO Universitas Multimedia Nusantara e-mail:
[email protected]
Abstract PVM (Parallel Virtual Machines) is a software that able to utilize computer network as parallel multicomputer. This study is aimed to reveal the performance of PVM in computer network, especially data communication performance and computation performance. This studi used matrix multiplication to provide computational loads to the PVM system, with varied matrix sizes, i.e. 12x12, 40x40, 80x80, 120x120, 240x240 and 360x360. The study found that PVM could use the Ethernet network bandwidth until 720KB per second or 58% out of the bandwidth capacity 10Mbps. Latency time counted 3846 microsecond, multicast data transfer rate was 227.575 byte per second, cross communication data transfer rate was 155.253 byte per second, simultaneous data transfer rate was 10.095 byte per second. Meanwhile, the performance test with matrix multiplication yielded speedup when the matrix size was 200x200 and up. With 4 PCs paralleled, the best speedup was 3.55 times for matrix size 360x360. This speedup was 88.9 percent compared to ideal speedup (4 times). This happend due to a portion of the time used for inter PCs communications. The C/C ratio was reduced (better) for matrix size 200x200 and up. Keywords: parallel virtual machines, multiprocessor, communication to computation ratio.
mengganggu, sehingga perancangan komputer besar terpaksa beralih ke seni merancang sistem pendingin yang kompleks. Ada lagi hal yang ironis, yaitu bahwa semetara kita ingin meningkatkan kinerja sistem, ternyata sebagian besar komponen sistem itu justru dalam kondisi menganggur (idle). Hal ini berarti pemborosan sumber daya komputasi yang ada. Berbagai penelitian telah dilakukan untuk mengatasi masalah tersebut, mulai dari penggantian bahan semikonduktor dari silikon menjadi GaAs, meningkatkan clock CPU, penurunan voltase operasional pada CPU sehingga disipasi panas semakin kecil, pengecilan dimensi pada pembuatan chip semikonduktor hingga 0,35um, dan upaya penggunaan superkonduktor, serta perancangan ulang arsitektur komputer yang berbeda dengan arsitektur von Neumann. Pendekatan untuk menghasilkan komputer berkinerja tinggi yang akhir-akhir ini ditempuh
1. PENDAHULUAN Meskipun dari waktu ke waktu kinerja komputer semakin tinggi, namun umat manusia ternyata memiliki gudang permasalahan yang menuntut kinerja komputer yang lebih tinggi lagi, sehingga komputer berkinerja tertinggi yang berhasil diciptakan pada saat ini pun masih belum mencukupi untuk memecahkan masalah kompleks yang ada. Beberapa contoh aplikasi riil yang membutuhkan komputer berkinerja sangat tinggi antara lain adalah peramalan cuaca, peramalan gempa, simulasi real time pada reaktor nuklir, computer aided design, pengolahan data eksplorasi minyak, dan sebagainya. Faktor-faktor yang membatasi peningkatan kinerja komputer lebih jauh adalah masalah laju sinyal listrik pada rangkaian elektronik komputer yang terbatas pada kecepatan cahaya, masalah disipasi panas pada rangkaian elektronik juga sangat 42
StudiKinerjaParallelVirtualMachines
UltimaComputing
Winarno Untuk mengetahui kemampuan PVM, maka dilakukan penelitian studi kinerja sistem PVM ini, dengan tujuan (a) memahami perilaku dan kinerja komunikasi data sistem PVM pada jaringan Ethernet, (b) mengevaluasi kinerja komputasi sistem PVM, melalui pengukuran waktu eksekusi dan speedup sistem tersebut dari berbagai ukuran granularitas dan pertambahan jumlah komputer, dan (c) mengevaluasi dampak rasio komunikasi dan komputasi (C/C ratio) terhadap kinerja sistem. Untuk mencapai tujuan tersebut, maka dibuat eksperimen dengan program-program untuk mengukur kinerja komunikasi data, dan program paralel perkalian matriks.
adalah dengan membuat komputer paralel. Pada saat ini telah dipasarkan komputer dengan 65.536 prosesor, dan diperkirakan dalam waktu dekat ini akan dipasarkan dengan sejuta prosesor. Perancangan komputer paralel umumnya mengasumsikan bahwa komputer itu memiliki beberapa unit kontrol, ALU (prosesor) dan modul memori yang akan bekerja secara paralel. Dalam hal ini muncul masalah inter-koneksi dan komunikasi di antara komponen-komponen itu. Ada komputer paralel yang menggunakan sedikit CPU yang berkinerja tinggi dan terhubung secara longgar, namun ada pula komputer paralel yang menggunakan sejumlah besar ALU yang terhubung secara ketat dan bekerja sebagai satu kesatuan dengan dikontrol oleh satu unit kontrol. Dari konsep ini muncul beberapa macam arsitektur dasar komputer paralel, seperti SIMD (single instruction multiple data stream), MISD (multiple instruction single data stream) dan MIMD (multiple instruction multiple data stream). Perkembangan teknologi jaringan akhir-akhir ini juga telah melahirkan arsitektur komputer paralel baru yang disebut sistem multikomputer dengan peningkatan kinerja tidak kalah dibanding sistem multiprosesor. Dengan meluasnya jaringan komputer di seluruh dunia, khususnya melalui internet, maka potensi untuk membentuk sistem paralel yang berskala besar, namun dengan biaya rendah mungkin dicapai. Bahkan sistem paralel multikomputer ini dapat menggunakan berbagai jenis komputer (heterogen), sehingga kita dapat mengakses sumber daya komputasi yang sangat luas secara mudah, dan tidak terikat pada keharusan memakai jenis komputer yang sama (homogen). Salah satu alat bantu yang memungkinkan kita merealisasi sebuah sistem komputer paralel multikomputer adalah perangkat lunak PVM (Parallel Virtual Machines). Mengingat relevansi dengan perkembangan situasi komputasi saat ini yang umumnya berbasis jaringan, maka perangkat lunak PVM ini tampaknya memiliki prospek yang cerah untuk diimplementasikan secara luas di kalangan pemakai komputer. Apalagi di belakangnya terdapat keuntungan yang besar, yakni bahwa untuk mendapatkan komputer paralel berskala besar, kita tidak perlu membangun sistem komputer sendiri yang berskala besar dan mahal harganya. Di sini kita cukup memanfaatkan jaringan komputer dari jenis apa saja yang telah tersebar luas.
StudiKinerjaParallelVirtualMachines
2. METODE PENELITIAN Penelitian ini dilakukan dengan metode sebagai berikut: 1. Studi pustaka tentang sistem komputer paralel dan PVM. 2. Pengembangan program komunikasi data untuk mengukur kinerja komunikasi, dan pengembangan program aplikasi perkalian matriks untuk mengukur kinerja komputasi paralel. 3. Mencatat hasil pengukuran waktu eksekusi program, baik untuk komunikasi data maupun perkalian matriks. Khusus untuk aplikasi perkalian matriks, waktu eksekusi dipecah lagi menjadi waktu komunikasi dan waktu komputasi. 4. Menganalisa hasil pengukuran dengan membandingkan kinerja sistem sekuensial dan paralel pada berbagai jumlah komputer (1 unit, 2 unit, dan 4 unit). 2.1. PENGUKURAN TANPA BEBAN
KINERJA
SISTEM
Untuk mengevaluasi kinerja komunikasi sistem jaringan k omputer paralel PVM dalam kondisi tanpa beban, disini akan diukur kinerja rutin-rutin komunikasi data yang ada pada PVM, yang meliputi: a. Pengukuran (packing) Data
Kecepatan
Pengemasan
Dalam proses komunikasi data, mekanisme pertukaran pesan pada PVM terdiri atas beberapa
43
Winarno
tahap, dimulai dengan pengemasan data ke dalam buffer kirim. Oleh sebab itu kita perlu mengetahui waktu yang dibutuhkan untuk mengemas berbagai ukuran data. Dalam hal ini kecepatan pengemasan data penting diketahui, untuk memperkirakan kontribusi pengemasan data pada pengiriman data. Di sini kita mengukur kinerja rutin pvm_pk*() dalam mengemas data yang akan dikirim dengan berbagai ukuran data (100 sampai 1.000.000 byte). Gambaran algoritma untuk mengukur kinerja instruksi pengemasa tersebut adalah sebagai berikut: start_packing pvm_initsend(ENCODING); pvm_pkint(iarray, numin, 1); end_packing b. Pengukuran Bandwidth Komunikasi Dua Simpul
dan
Terima
Kirim
nbyte
Node1
Node2
nbyte
Kirim
Terima
Gambar 1. Pengukuran bandwidth komunikasi antaraduasimpul.
Sedangkan untuk mengukur besarnya latensi jaringan, di sini dicobakan untuk mengirim data sebesar satu byte bolak-balik antara dua simpul. Dengan demikian kita dapat mengetahui faktor latensi PVM dalam mengirim data. Algoritma untuk pengukuran latensi (round trip data sebesar 1 byte) sama seperti di atas. Selain itu, dari data pengukuran bandwidth pun kita dapat menghitung besarnya latensi sistem jaringan. Jadi kita dapat membandingkan besarnya latensi hasil perhitungan dan hasil pengukuran langsung.
Latensi
Bandwidth dan latensi merupakan faktorfaktor yang menentukan kecepatan transfer data. Bandwidth berkaitan dengan besarnya data yang dapat dikirim per satuan waktu. Sedangkan latensi dalam komunikasi data berkaitan dengan waktu tetap yang terpakai untuk setiap kali pengiriman data, tidak peduli berapapun ukuran datanya. Jadi latensi ini berkaitan dengan frekuensi pengiriman data. Apabila aplikasi paralel kita sering mengirim data antar-proses, maka waktu eksekusi program tersebut akan banyak terserap oleh unsur latensi ini. Walaupun kita telah mengetahui bahwa bandwidth jaringan Ethernet adalah 10Mbps, namun kita perlu memastikan berapa besar bandwidth yang termanfaatkan (utilisasi) apabila digunakan oleh PVM. Hal ini karena utilisasi bandwidth tersebut sangat penting sebagai bahan pertimbangan kita dalam menentukan strategi pertukaran pesan dalam aplikasi paralel pada PVM. Demikian pula kita perlu mengetahui berapa besar latensi jaringan pada sistem PVM tersebut, sehingga dapat dipertimbangkan dalam strategi pertukaran pesan dalam program aplikasi kita di PVM. Dalam mengukur utilisasi bandwidth yang dicapai oleh PVM, dilakukan eksperimen dengan cara sebagai berikut: satu simpul mengirim paket data dari berbagai ukuran (100 sampai 1.000.000 byte). Simpul lainnya menerima data tersebut dan memberi tanda bahwa data telah diterima. Lihat Gambar 1.
44
UltimaComputing
c. Pengukuran Kinerja Komunikasi Multicast Komunikasi multicast berarti satu simpul mengirim data ke beberapa simpul lain secara sekaligus. Komunikasi seperti ini seringkali dibutuhkan oleh suatu program aplikasi, dimana satu proses mengirim data ke beberapa proses lain untuk diproses lebih lanjut. Model komunikasi multicast inipun akan dipakai dalam program perkalian matriks yang akan digunakan untuk mengukur kinerja komputasi paralel sistem PVM ini. Oleh sebab itu kita perlu mengetahui kinerja komunikasi multicast, agar dapat mengantisipasi penerapannya pada program paralel nantinya. Kinerja yang diukur di sini meliputi kecepatan transfer data dan latensi komunikasi multicast, karena faktor-faktor tersebut sangat menentukan kinerja komunikasi multicast. Dalam mengukur kecepatan transfer data pada komunikasi multicast, dilakukan eksperimen transfer data dari simpul master ke tiga simpul slave, dengan berbagai ukuran data (100 sampai
StudiKinerjaParallelVirtualMachines
UltimaComputing
Winarno
1.000.000 byte). Simpul-simpul slave tersebut menerima data dari simpul master, dan kemudian memberi tanda (ACK) bahwa data telah diterima. Sedangkan untuk mengukur latensi komunikasi multicast dari simpul master ke tiga simpul slave, dilakukan eksperimen dengan mengirim data sebesar satu byte (bolak-balik). Dengan demikian kita dapat mengetahui besarnya latensi pengiriman data secara multicast. Gambaran eksperimen tersebut dapat dilihat pada Gambar 2.
a.
Pengukuran Saling-silang
Kinerja
Komunikasi
Yang dimaksud dengan komunikasi salingsilang adalah komunikasi antara dua simpul dimana kedua simpul tersebut sama-sama berada pada status akan mengirim data, dan kemudian samasama akan menerima data. Model komunikasi saling-silang ini sangat sering terjadi pada sistem jaringan. Maka kita perlu mengetahui kinerja jaringan pada saat terjadi komunikasi saling-silang. Hal ini dimaksudkan supaya kita dapat mengantisipasi kinerja sistem apabila aplikasi kita mengalami komunikasi salingsilang. PVM yang mampu mendukung komunikasi point-to-point maupun broadcast seringkali membuat pemakai PVM melupakan medium komunikasi yang digunakan. Misalnya apabila kita menggunakan jaringan Ethernet yang bersifat shared media, maka lalu lintas komunikasi terjadi secara bergantian. Ini berarti apabila terjadi komunikasi saling-silang maka akan terjadi “tubrukan”, sehingga akan ada satu simpul yang diprioritaskan, dan simpul lainnya dinomorduakan. Apabila hal ini terjadi pada eksekusi program aplikasi, maka akibatnya bisa fatal, misalnya suatu proses terpaksa harus saling menunggu data, sehingga mengalami kemacetan atau menjadi sangat tidak efisien. Untuk mengukur kinerja komunikasi salingsilang, digunakan berbagai ukuran data (100 sampai 1.000.000 byte). Pengukuran kinerja komunikasi saling-silang dari satu simpul ke simpul lain (simpul pengirim maupun penerima) tampak seperti Gambar 3.
Gambar 2. Pengukuran kecepatan transfer data
Node
Slave1
nbyte
Node
Master
Node
nbyte
Slave2 nbyte
Node
Slave3
multicast.
2.2. PENGUKURAN DENGAN BEBAN
KINERJA
SISTEM
Dalam eksperimen ini ingin dilihat bagaimana kinerja jaringan komputer PVM apabila terdapat beban. Untuk itu di sini dibuat suatu model komunikasi yang dapat menimbulkan beban bagi jaringan, yaitu komunikasi overlap dan komunikasi simultan. Model komunikasi overlap dan simultan ini sangat sering dijumpai dalam trafik komunikasi jaringan. StudiKinerjaParallelVirtualMachines
nbyte
Kirim
Kirim
Node1
Node2
Terima
nbyte
Terima
Gambar 3. pengukuran kecepatan komunikasi salingsilang.
45
Winarno
UltimaComputing dest = me + 1; pvm_send(dest) pvm_recv(dest) else if(mytid == 1\\3) { dest = me -1; pvm_recv(dest); pvm_send(dest);
b. Pengukuran Kinerja Komunikasi Simultan Yang dimaksud dengan komunikasi simultan adalah simulasi komunikasi di dalam PVM yang melibatkan dua pasang simpul (empat simpul) yang secara bersamaan melakukan pengiriman dan penerimaan data antara pasangan masing-masing.
2.3. PENGUKURAN KINERJA KOMPUTASI
Kirim
Node1
Node2
Terima
nbyte
nbyte
Kirim Setelah mengukur kinerja sistem jaringan PVM, maka selanjutnya dicoba diukur kinerja sistem tersebut apabila digunakan untuk melaksanakan komputasi paralel. Aspek-aspek kinerja komputasi yang akan diamati di sini meliputi: Waktu Eksekusi dan speedup, serta C/C (communication-to-compution) Ratio dan pengaruh granularitas. Untuk mengukur kinerja komputasi paralel pada PVM, dikembangkan program aplikasi perkalian matriks metode Canon [GEI94]. Dan untuk dapat membandingkan kinerja komputasi paralel dengan sekuensial (speedup), maka program perkalian matriks tersebut dijalankan pada kondisi sebagai berikut: a. Sekuensial pada 1 PC b. Paralel pada 2 PC c. Paralel pada 4 PC Untuk mengetahui pengaruh granularitas terhadap kinerja komputasi maka digunakan beberapa ukuran matriks, yaitu 12x12, 40x40, 80x80, 120x120, 200x200, 240x240 dan 360x360.
Terima Kirim
Kirim
Node4
Node3
Terima
Terima
Gambar 4. Pengukuran kecepatan komunikasi simultan. Model komunikasi simultan ini dapat dipastikan sering terjadi di dalam jaringan, misalnya karena beban jaringan yang besar, dimana banyak pemakai sedang menggunakan jaringan tersebut. Oleh sebab itu, kita perlu mengukur kinerja komunikasi simultan ini untuk mengantisipasi kinerja jaringan ketika terjadi komunikasi simultan. Perbedaan dampak komunikasi simultan dengan komunikasi saling-silang adalah bahwa pada komunikasi simultan tidak terdapat saling ketergantungan data antara kedua pasang simpul tersebut. Diperkirakan komunikasinya akan terjadi secara bergantian (tanpa prioritas). Untuk mengukur kinerja komunikasi simultan digunakan simulasi dengan berbagai ukuran data antara 100 sampai 1.000.000 byte. Pengukuran kinerja komunikasi simultan dari dua pasang simpul tampak pada Gambar 4. Algoritma pengukuran kinerja komunikasi simultan adalah sebagai berikut: if(mytid == 0\\2)
46
2.4. Waktu Eksekusi dan Speedup Waktu eksekusi berkaitan langsung dengan kinerja sistem. Dalam eksperimen ini kita mengukur waktu eksekusi sekuensial dan paralel pada berbagai ukuran matriks. Dengan membandingkan waktu eksekusi sekuensial dan waktu eksekusi paralel, maka diperoleh speedup. Dari nilai speedup ini kita bisa mengetahui bagaimana kinerja sistem PVM ini. Dengan menggunakan beberapa ukuran matriks, maka disini kita dapat mengetahui pengaruh granularitas terhadap pencapaian speedup dalam sistem PVM. Apabila nilai speedup ini sesuai dengan banyaknya PC yang digunakan untuk eksekusi paralel, berarti sistem PVM dapat dipertimbankan sebagai alternatif komputer paralel yang baik.
StudiKinerjaParallelVirtualMachines
UltimaComputing
Winarno
2.5. C/C Ratio C/C (communication-to-computation) ratio merupakan indikator efisiensi dari eksekusi program paralel. C/C ratio adalah perbandingan antara waktu komunikasi dan waktu komputasi. Apabila nilai C/C ratio ini kecil, berarti program paralel tersebut efisien, karena waktu yang terpakai untuk komunikasi relatif kecil dibanding waktu untuk komputasi. Untuk mengetahui C/C ratio, maka dalam eksperimen ini pencatatan waktu eksekusi program paralel dipecah menjadi waktu komputasi, waktu overhead sistem dan waktu komunikasi. Kemudian dihitung C/C ratio dengan membagi waktu komunikasi oleh waktu komputasi. Dengan menggunakan berbagai ukuran matriks, maka disini kita juga dapat melihat pengaruh granularitas terhadap C/C ratio. Dalam perkalian matriks bujur sangkar C = A x B berdasarkan algoritma Canon yang diimplementasikan pada PVM, diasumsikan kita akan menggunakan sebanyak m x m proses (task). Setiap proses akan menghitung blok-blok dari matriks C yang dihasilkan. Ukuran blok dan nilai m akan diberikan sebagai input dalam program. Matriks-matriks A dan B juga disimpan sebagai blok-blok yang tersebar pada m2 proses. Gambaran perkalian matriks metode Canon secara sederhana dapat dilihat pada Langkah-langkah sebagai berikut:
4.
5. 6. 7.
8.
3. HASIL DAN PEMBAHASAN 3.1. KINERJA SISTEM TANPA BEBAN Dalam mengevaluasi kinerja primitif komunikasi data pada sistem komputer paralel PVM, kita mengukur kinerja primitif-primitif komunikasi data yang ada pada PVM, yang meliputi: (a) kecepatan pengemasan (packing) data; (b) bandwidth dan latensi komunikasi dua simpul; (c) kecepatan transfer dan latensi komunikasi multicast. 3.1.1. Kecepatan Pengemasan (packing) Data
Langkah 1: A00 dikirim ke A01 dan A11 dikirim ke A10. Langkah 2: Matriks T x B Langkah 3: Baris matriks B digeser ke atas, baris teratas ke terbawah. Langkah 4: A01 dikirim ke A00, dan A10 dikirim ke A11, lalu kembali ke Langkah 2. Penjelasan langkah-langkah di atas adalah sebagai berikut: 1. Matriks bujur sangkar A, B dan C masingmasing dipecah menjadi mxm blok. Dalam kasus ini nilai m adalah 2, sehingga matriksmatriks tersebut dipecah menjadi 4 blok. 2. Setiap proses akan berisi satu blok dari matriks A, B dan C. Jadi setiap proses Tij berisi blokblok Cij, Aij dan Bij. Selanjutnya setiap proses akan menghitung matriks Cij dari perkalian matriks Aij dan Bij. 3. Cara perkalian matriks Aij dan Bij menjadi Cij adalah sebagai berikut:
StudiKinerjaParallelVirtualMachines
proses-proses pada posisi diagonal Tij dimana i=j mengirim blok Aii ke semua proses di baris i, sehingga setiap proses berisi blok matriks Aii. Setelah pengiriman Aii, seluruh proses menghitung Aii x Bij dan menambah hasilnya menjadi Cij. Selanjutnya blok-blok kolom B dirotasi ke atas. Proses Tij mengirim blok-blok B ke t(i-1)j . Setelah itu proses Ai(i+1) mengirim (multicast) ke proses-proses di baris i. Kemudian matriks baru hasil rotasi dan multicast tersebut dikalikan lagi, mengkasilkan Cij akhir. Matriks B kemudian dirotasi kembali seperti semula.
Dari hasil pengukuran waktu pengemasan pada Tabel 1. kita dapat menghitung waktu pengemasan data dan waktu latensi pengemasan data. Dengan teknik regresi linier, maka dari data tersebut didapatkan waktu latensi pengemasan adalah sebesar 151,4 mikrodetik, dan kecepatan pengemasan adalah 0,056 mikrodetik per byte. Dengan demikian kita dapat memprediksi fungsi Tabel 1. Kecepatan pengemasan data. Ukuran Data (byte) 100 1000 10000 100000 1000000
Waktu (usec) 157 210 692 6899 45957
Pack
Kecepatan (byte/sec) 636973 4761905 14450867 14494854 21759470
47
Winarno
Tabel 2. Bandwidth komunikasi dua simpul
Waktu pengemasan terhadap ukuran datanya sebagai berikut: Tpack = 151,4 + 0,056 x B (mikrodetik) Dimana Tpack = prediksi waktu pengemasan (mikrodetik) dan B = ukuran data yang akan dikemas. Demikian pula kecepatan pengemasan data dapat dirumuskan fungsinya menjadi sebagai berikut: Vpack = 1.000.000 x B/ Tpack
Ukuran Data (byte) 100 1000 10000 100000 1000000
Temuan yang kita peroleh di sini adalah bahwa waktu pengemasan data dalam proses pertukaran pesan PVM merupakan komponen waktu komunikasi yang harus diperhitungkan dalam implementasi program paralel. Apabila program paralel kita membutuhkan banyak operasi pengiriman data, maka dapat dipastikan bahwa program tersebut akan banyak memakan waktu untuk proses pengemasan. Semakin kecil ukuran data, maka troughput pengemasan data terlihat semakin kecil pula. Hal ini karena terdapat faktor latensi pengemasan data, yang besarnya 151,4 mikrodetik. Padahal kecepatan pengemasan datanya 0,056 mikrodetik per byte. Ini berarti waktu latensi pengemasan tersebut senilai dengan waktu yang digunakan untuk mengemas data sebesar 2703 byte. Apabila kita mengemas data berukuran 100 byte, maka 96,4% waktunya marupakan waktu latensi. Hal in tentunya tidak efisien. Sedangkan untuk data berukuran 1.000.000 byte, maka waktu latensinya hanya 0,3%. Kecepatan pengemasan ini dipengaruhi oleh faktor-faktor seperti overhead prosesor untuk menjalankan instruksi pvm_pk*() dan latensi memori pada penyiapan buffer kirim. Pada eksperimen ini kecepatan clock prosesor AMD DX4 adalah sebesar 100MHz dan latensi memori di cache memori SRAM 20ns serta DRAM 80ns. 3.1.2. Bandwidth dan Antara Dua Simpul
Latensi
Waktu kirim (usec) 4002 5548 16947 140493 1358741
Bandwidth (byte/sec) 24988 180228 590075 711779 735975
Tsend = 3859 + 1,43 x B mikrodetik Dimana Tsend adalah waktu kirim, dan B adalah ukuran data. Sedangkan fungsi hubungan antara bandwidth dengan ukuran data adalah: Bandwidth = 1.000.000 x B/ Tsend byte/detik Waktu latensi hasil perhitungan tersebut tidak berbeda jauh dengan waktu latensi hasil pengukuran langsung yang besarnya 3846 mikrodetik. Latensi pengiriman data sebesar 3846 mikrodetik tersebut setara dengan waktu yang digunakan untuk mengirim data sebesar 2869 byte. Angka ini merupakan biaya (waktu tetap) untuk setiap pengiriman pesan, tidak peduli berapapun ukuran pesannya. Dengan demikian dapat diduga bahwa pengiriman data pada sistem PVM mengandung unsur latensi yang dominan untuk data yang berukuran kecil (di bawah 2869 byte). Hal ini dapat dimaklumi karena pada sistem PVM, transfer data harus melalui beberapa lapis protokol, misalnya dari PVM ke Sistem Operasi dan Ethernet. Dari eksperimen ini dapat disimpulkan bahwa dalam implementasi program paralel pada PVM, data yang berukuran kecil tidak dapat memanfaatkan bandwidth yang tersedia, dan kita akan menghadapi latensi yang cukup besar. Oleh sebab itu seandainya memungkinkan, sebaiknya data yang ditransfer berukuran cukup besar. Dari data dan grafik pengukuran bandwidth antara dua simpul, diperoleh kesimpulan bahwa semakin kecil ukuran data, maka semakin kecil juga troughput komunikasi datanya. Hal ini karena adanya faktor latensi yang dominan. Sedangkan untuk data berukuran 1 MB, ternyata bandwidth menunjukkan titik yang optimal. Ini berarti bahwa ukuran data yang optimal untuk ditransfer melalui PVM dan Ethernet adalah sekitar 1MB, dengan bandwidth mencapai 735975 byte per detik. Dengan demikian tingkat utilitas bandwidth oleh PVM pada Ethernet mencapai sekitar 58 persen.
Komunikasi
Dari hasil pengukuran bandwidth seperti tampak pada Tabel 2, kita dapat menghitung “biaya” waktu untuk mentransfer data per byte dan waktu latensi pengiriman data. Dengan teknik regresi linier, maka didapatkan waktu latensi sebesar 3859 mikrodetik dan waktu transfer ratarata per byte sebesar 1,43 mikrodetik. Sehingga kita dapat merumuskan fungsi hubungan antara waktu pengiriman data dengan ukuran datanya sebagai berikut:
48
UltimaComputing
StudiKinerjaParallelVirtualMachines
UltimaComputing
Winarno seperempat sampai sepertiga kinerja komunikasi simpul-ke-simpul. Hal ini tampaknya karena pengaruh dari mekanisme broadcast PVM yang mengasumsikan menangani jaringan yang luas dengan kelompok IP-address yang berbeda untuk setiap simpul. Akibatnya komunikasi multicast dilaksanakan secara bergantian, yaitu mirip komunikasi simpul-ke-simpul yang dilaksanakan sebanyak n kali (jumlah simpul slave). Dengan demikian efisiensi yang diharapkan dari mekanisme multicast atau broadcast ini tidak tercapai. Demikian pula ukuran data yang ditransfer turut berpengaruh terhadap troughput komunikasi data. Namun untuk data berukuran 100.000 byte ke atas, tampak bahwa kecepatan transfer data cenderung stabil pada tingkat 220KB per detik. Sedangkan dari eksperimen pengukuran latensi komunikasi multicast diperoleh nilai latensi sebesar 14.167 mikrodetik. Angka latensi komunikasi multicast ini tidak berbeda jauh dibandingkan dengan hasil perhitungan seperti tersebut diatas, yaitu sebesar 16.111 mikrodetik. Namun dibandingkan dengan latensi komunikasi simpul-ke-simpul, latensi multicast tampak jauh lebih besar (3846 vs 14167 mikrodetik). Akan tetapi karena komunikasi multicast tersebut ditujukan kepada tiga simpul, maka sebenarnya besar latensi tersebut tidak terlalu berbeda dengan latensi simpulke-simpul. Dibandingkan dengan latensi simpul-kesimpul yang besarnya 3846 mikrodetik, maka latensi multicast ke tiga simpul mencapai tiga kali lipat lebih. Dengan demikian jelas bahwa komunikasi multicast akan lebih lambat dibanding komunikasi simpul-ke-simpul akibat besarnya latensi multicast tersebut. Dan akibat lebih lanjut, latensi komunikasi multicast ini akan mempengaruhi troughput komunikasi multicast, khususnya untuk data yang berukuran kecil.
Dari pengukuran kinerja komunikasi data antara dua simpul, dapat dirumuskan suatu model sederhana sebagai berikut: Ttotal = Tpack + Tsend Dimana Tpack = 151,4 + 0,056 x B (mikrodetik) Tsend = 3859 + 1,43 x B (mikrodetik) Jadi Ttotal = 4010,4 + 1,486 x B (mikrodetik) Disini Ttotal = prediksi waktu total per pengiriman (mikrodetik) dan B = ukuran data yang akan dikirim. Sedangkan total waktu latensi pengemasan dan latensi pengiriman data adalah 4010,4 mikrodetik, dan kecepatan pengemasan dan pengiriman data adalah 1,486 mikrodetik per byte. 3.1.3. Kecepatan dan Latensi Multicast Dari data hasil pengukuran kecepatan transfer data secara multicast seperti tampak pada Tabel 3, kita dapat menghitung “biaya” waktu untuk mentransfer data per byte. Dengan teknik regresi linier, maka kita mendapatkan bahwa waktu transfer multicast = 4,09 mikrodetik/byte dan waktu latensi komunikasi multicast = 16111 mikrodetik. Dari hasil perhitungan waktu latensi dan waktu transfer rata-rata per byte tersebut di atas, maka kita dapat merumuskan fungsi hubungan antara waktu transfer multicast dengan ukuran datanya sebagai berikut: Tmcast = 16111 + 4,09 x B (mikrodetik) Dimana Tmcast adalah waktu transfer multicast, dan B adalah ukuran data. Sedangkan fungsi hubungan antara kecepatan transfer multicast dengan ukuran data adalah: Vmcast = 1.000.000 x B/ Tmcast byte/detik Tabel 3. Kecepatan transfer data komunikasi multicast. Ukuran Data (byte) 100 1000 10000 100000 1000000
Waktu kirim (usec) 16520 19846 55105 448089 4394154
Kecepatan (byte/sec) 6053 50388 181472 223170 227575
3.2. KINERJA SISTEM DENGAN BEBAN Di sini kita mengevaluasi kinerja komunikasi data pada sistem komputer paralel PVM bilamana pada sistem tersebut terdapat beban. Untuk itu kita membuat model komunikasi yang sering terjadi dalam jaringan, yaitu komunikasi saling-silang dan komunikasi simultan. Hasil pengukuran eksperimen tersebut adalah sebagai berikut:
Kecepatan transfer data pada komunikasi multicast tampak lebih rendah dibandingkan dengan komunikasi simpul-ke-simpul. Dari segi troughput, kinerja komunikasi multicast berkisar antara StudiKinerjaParallelVirtualMachines
49
Winarno 3.2.1. Kinerja (Overlap)
Komunikasi
kinerja yang jauh lebih buruk dibandingkan dengan komunikasi simpul-ke-simpul biasa (kirim-terima, kirim-terima). Namun fenomena ini memberikan informasi kepada kita, bahwa sistem PVM akan memberikan kinerja yang buruk apabila terdapat beberapa proses dari simpul yang berbeda yang sama-sama mengirim data. Situasi tersebut terjadi apabila terjadi pada program aplikasi kita akan menimbulkan perlambatan proses eksekusi, karena kedua simpul saling menunggu data dari simpul yang lain. Ini berarti sedapat mungkin program paralel yang kita buat tidak akan berperilaku demikian. Kesimpulan yang dapat kita ambil dari eksperimen komunikasi saling-silang ini adalah bahwa model komunikasi saling-silang ternyata memberikan beban yang cukup besar bagi jaringan, sehingga menghasilkan kinerja yang buruk. Apabila aplikasi paralel kita mengandung model komunikasi demikian, maka kinerja aplikasi tersebut akan buruk pula.
Saling-silang
Yang dimaksud komunikasi saling-silang di sini adalah komunikasi antara dua simpul dimana kedua simpul tersebut sama-sama bermaksud mengirim data, kemudian sama-sama menerima data. Tabel 4. Kinerja komunikasi saling-silang Ukuran Data (byte) 100 1000 10000 100000 1000000
Waktu Kirim (usec) Node 1 3754 6603 64411 769710 139365955
Waktu Kirim (usec) Node 2 56606 438156 719165 4291034 166486317
Kecepatan Kirim (byte/sec) Node 1 26638 151446 155253 129919 7175
Kecepat an Kirim (byte/sec) Node 2 1766 2283 13905 23304 6006
Dari data pada Tabel 4 dan dibandingkan dengan data Tabel 2 mengenai bandwidth komunikasi antara dua simpul, ternyata model komunikasi saling-silang, menampilkan kinerja yang jauh berbeda. Komunikasi saling-silang menghasilkan kinerja yang jauh lebih buruk, dimana terjadi satu simpul diprioritaskan dibandingkan dengan simpul yang lain. Untuk data berukuran kecil, kecepatan Simpul 1 memang tidak berbeda jauh dengan kecepatan transfer komunikasi simpul-ke-simpul atau sendreceive (26638 dan 24988 byte/detik). Sedangkan Simpul 2 kecepatannya rendah sekali (1766 byte/detik). Namun dengan meningkatnya ukuran data, kecepatan komunikasi saling-silang jauh di bawah komunikasi simpul-ke-simpul. Bahkan untuk data berukuran 1.000.000 byte, kecepatan komunikasi saling-silang dibanding komunikasi dua simpul hanya 1:100 (7175:735975). Hal ini tampaknya akibat dari mekanisme komunikasi pada PVM dan Ehternet. Pada PVM proses pengiriman data dianggap selesai begitu data dikirim dari buffer memori. Dan pada Ethernet, mengingat Ethernet merupakan “shared medium” maka lalu lintas data terjadi secara bergantian. Jadi meskipun kedua simpul sama-sama bermaksud mengirim, namun Ehternet akan menentukan siapa yang lebih dahulu menyelesaikan proses pengirimannya. Dengan demikian akan terjadi ada satu simpul yang mendapat prioritas dan simpul lain tidak mendapat prioritas. Mengingat adanya proses arbitrase ini, maka pengiriman data secara saling-silang menghasilkan 50
UltimaComputing
3.2.2. Kinerja Komunikasi Simultan Komunikasi simultan, yakni dua pasang simpul berkomunikasi bersama dengan pasangan masing-masing. Komunikasi ini juga memberikan kinerja transfer data yang buruk, dan sangat lambat dibandingkan komunikasi simpul-ke-simpul biasa. Waktu yang dibutuhkan untuk mentransfer data yang sama bisa mencapai 25 kali lipat. Kenyataan ini tampaknya disebabkan oleh faktor antrian atau kepadatan lalu lintas komunikasi data (contention). Pasangan simpul yang mendapat prioritas transfer data menampakkan kinerja yang lebih baik, sedangkan pasangan simpul lainnya tampak memberikan kinerja kurang baik, karena harus menunggu. Dari situasi ini terlihat bahwa sistem PVM pada jaringan Ethernet sangat sensitif terhadap beban komunikasi dalam jaringan. Tabel 5.5. Kecepatan komunikasi konkuren. Ukuran Data (byte) 100 200 500 1000
Node 0 & 1 Waktu Kecepat an RT (bytes/s) (usec) 52847 1892 75001 2666 142460 3509 150075 6663
Node 2 & 3 Waktu Kecepatan (bytes/s) RT (usec) 24405 4097 42381 4719 78601 6361 99052 10095
StudiKinerjaParallelVirtualMachines
UltimaComputing
Winarno
Dengan demikian implementasi program paralel pada sistem PVM sebaiknya tidak dilakukan pada jaringan yang berbeban tinggi atau dipakai banyak orang. Sebab adanya beban yang tinggi tersebut akan langsung mempengaruhi kinerja jaringan, dan juga kinerja sistem secara keseluruhan, mengingat kinerja sistem sangat tergantung pada kinerja komunikasi dalam jaringan.
3.3.1. Pengukuran Waktu Eksekusi Hasil pengukuran waktu eksekusi program paralel perkalian matriks pada berbagai jumlah PC dapat dilihat pada Tabel 6. Dari data perhitungan waktu eksekusi perkalian matriks secara sekuensial maupun paralel terlihat bahwa untuk matriks berukuran kecil (di bawah 120x120) ternyata waktu eksekusi paralel lebih besar dibanding waktu eksekusi sekuensial. Ini berarti bahwa perkalian matriks paralel untuk matriks berukuran kecil tidak efisien. Waktu eksekusi perkalian matriks paralel mulai lebih kecil dibanding sekuensial pada matriks berukuran di atas 200x200
3.3. KINERJA KOMPUTASI (PERKALIAN MATRIKS)
Dengan mengimplementasikan program paralel perkalian matriks, maka diperoleh gambaran kinerja sistem PVM berbasis jaringan PC, sebagai berikut: Tabel 6 Waktu eksekusi perkalian matriks (detik)
Sekuensial 2 Paralel 4 Paralel
12 0,328532 1,1205845 1,572974
40 0,839865 1,311260 1,652600
Ukuran Matriks 80 120 1,292338 2,423750 1,735147 2,565533 1,753119 2,5444362
Dari data waktu eksekusi di atas, diperoleh faktor speedup seperti pada Tabel 7.
Profil C/C ratio (communication-kecomputation) merupakan indikator yang baik untuk melihat apakah suatu program paralel bekerja dengan efisien. Perhitungan C/C ratio adalah dengan membagi porsi waktu komunikasi dan waktu komputasi. Apabila C/C ratio besar, berarti sebagian besar waktu eksekusi program tersebut banyak digunakan untuk komunikasi, dan waktu komputasi semakin kecil porsinya. Dengan demikian program tersebut kurang efisien. Karena dalam eksekusi suatu program, idealnya waktu eksekusi tersebut sebagian besar digunakan untuk komputasi. Dengan menggunakan fasilitas yang terdapat di dalam utiliti XPVM, kita dapat memisahkan waktu eksekusi menjadi walti komunikasi dan waktu komputasi. Selanjutnya dari data tersebut dapat dihitung C/C ratio.
Ukuran Matriks 12 0,27
40 0,64
80 0,74
120 0,94
200 1,29
240 1,17
360 1,93
0,21
0,51
0,74
0,95
1,68
2,44
3,55
Dari data perhitungan speedup tersebut di atas, diperoleh kenyataan bahwa untuk data berukuran kecil, speedup yang dihasilkan umumnya buruk (lebih kecil dari 1). Ini berarti bahwa justru kinerja sistem paralel itu lebih rendah dibanding kinerja sistem sekuensial. Namun untuk data berukuran besar (360x360), kinerja eksekusi paralel menampakkan keunggulannya dibanding eksekusi sekuensial. Sebagai contoh, untuk sistem paralel 2 PC, speedup mencapai 1,93 kali. Dan speedup
StudiKinerjaParallelVirtualMachines
360 54,194677 28,018724 15,239201
3.3.3. Profil C/C Ratio
Tabel 7. Perhitungan speedup
Seq2Par Seq4Par
240 15,379778 13,135889 6,290320
untuk 4 PC mencapai 3,55 kali lipat. Pencapaian speedup tersebut cukup memadai.
3.3.2. Pengukuran Speedup
Speed up
200 8,387753 6,519577 4,992554
51
Winarno
120x120 ke bawah menghasilkan C/C ratio sekitar 50%. Ini berarti bahwa selama eksekusi tersebut proporsi waktu komunikasi kira-kira setengah waktu komputasi. Tentu saja hal ini menunjukkan kinerja yang tidak efisien. Dari perhitungan speedup pun diperoleh nilai speedup kurang dari 100%, yang berarti tidak melebihi eksekusi sekuensial pada satu PC. Profil C/C ratio semakin membaik pada matriks berukuran 200x200 ke atas, dengan nilai sekitar 25%. Demikian pula pada kondisi ini telah dicapai perbaikan speedup, dengan nilai di atas 100%. Bahkan untuk matriks berukuran 360x360, dicapai speedup 3,55 kali, dengan C/C ratio sebesar 18,56%. Kondisi yang ideal untuk eksekusi paralel dengan 4 PC tentunya menghasilkan speedup 4 kali lipat. Namun hal ini tampaknya tidak mungkin, karena adanya waktu yang teralokasikan untuk komunikasi. Speedup yang tercapai dibanding speedup ideal adalah (3,55/4) x (100%) = 88,9%. Kondisi tersebut dipandang sudah cukup baik, karena dalam kenyataannya sebagian waktu eksekusi terpakai untuk berkomunikasi, dengan porsi antara 14% hingga 26%. Hasil pengukuran di atas sesuai dengan eksperimen yang dilaporkan di dalam [Mar92], dan di situ disimpulkan bahwa C/C ratio dapat digunakan untuk memperkirakan kinerja sistem paralel secara akurat.
Tabel 8 Komposisi waktu eksekusi paralel 2 PC Matri ks 12 40 80 120 200 240 360
% Kom putasi 44,32 50,21 43,23 55,28 68,17 75,34 76,95
% Over head 30,11 24,05 35,30 23,40 13,25 8,07 8,78
%Kom unikasi 25,57 25,74 21,46 21,32 18,58 16,60 14,27
C/C Ratio 57,69 51,26 49,64 38,57 27,26 22,03 18,54
Tabel 9. Komposisi waktu eksekusi paralel 4 PC. Matri ks
% Kom putasi
% Over head
% Kom unikasi
12 40 80 120 200 240 360
43,54 47,54 54,29 54,20 60,28 67,26 77,42
30,30 25,63 16,89 22,70 17,61 14,76 8,21
26,16 26,83 28,82 23,10 22,10 17,98 14,37
C/C Ratio (%) 60,07 56,43 53,08 42,62 36,66 26,73 18,56
Dari perhitungan C/C ratio seperti yang terdapat pada Tabel 8 dan 9 diperoleh kecenderungan sebagai berikut: x Nilai C/C ratio semakin kecil dengan semakin besarnya ukuran matriks. Atau nilai C/C ratio semakin besar dengan semakin kecilnya ukuran matriks. Hal ini dapat dipahami, karena untuk ukuran data yang lebih kecil, maka latensi komunikasi menjadi relatif besar dibanding waktu eksekusi. x Nilai C/C ratio semakin besar dengan semakin banyaknya PC yang terlibat dalam eksekusi program paralel tersebut.
4. KESIMPULAN DAN SARAN 4.1. KESIMPULAN Dari hasil pengukuran dan pembahasan, maka dapat ditarik kesimpulan sebagai berikut: 4.1.1. Kinerja Komunikasi Tanpa Beban a. Kinerja komunikasi data pada PVM antara lain terpengaruh oleh adanya faktor overhead dan latensi. Overhead adalah waktu yang digunakan prosesor untuk menyiapkan perngiriman dan penerimaan data pada memori buffer, sedangkan latensi adalah waktu yang terbuang dalam perangkat keras jaringan. Sebagai contoh faktor overhead adalah waktu yang diperlukan untuk mengemas (packing) data ke dalam memori buffer yang mencapai 151,4 mikrodetik. Sedangkan faktor latensi ditunjukkan dengan
Secara teoritis, komputasi paralel yang efisien sebenarnya menuntut C/C ratio yang sekecilkecilnya, karena adanya waktu komunikasi berarti menambah waktu eksekusi. Apalagi kalau basis komunikasinya menggunakan jaringan lokal Ethernet yang tergolong lambat. Maka waktu eksekusi program paralel pada sistem PVM berbasis jaringan Ethernet akan menghadapi kendala waktu komunikasi dalam jaringan. Dari data profil C/C ratio yang diperoleh, ternyata eksekusi paralel untuk matriks berukuran 52
UltimaComputing
StudiKinerjaParallelVirtualMachines
UltimaComputing
Winarno berbasis jaringan Ethernet sebaiknya dilakukan pada kondisi jaringan yang tidak berbeban berat.
waktu round trip sebesar 3859 mikrodetik. Dari data tersebut jelaslah bahwa faktor latensi jauh lebih besar dibanding faktor overhead. Tkom = Toh + 0,056 B + Tlat + 1,43 B Tkom = 151,4 + 0,056 B + 3859 + 1,43 B Tkom = 4010,4 + 1,486 B
Dari kesimpulan di atas, ternyata bahwa adanya beban dalam jaringan menyebabkan kinerja komunikasi turun secara nyata (signifikan). Hal ini karena adanya waktu yang digunakan untuk menangani collision.
b. Bandwidth yang tersedia pada Ethernet ternyata tidak mungkin dimanfaatkan sepenuhnya oleh PVM. Hal ini terbukti dari fakta bahwa bandwidth PVM hanya mencapai 720KB per detik atau hanya 58 persen dari bandwidth Ehternet (10MBps). c. Pengiriman data dalam paket-paket kecil ternyata memakan waktu yang sangat besar akibat adanya dominasi faktor latensi, sehingga throughput sistem menjadi sangat kecil. Hal ini tampak pada pengukuran bandwidth untuk data berukuran kecil. d. Dari model komunikasi multicast, kita dapat mengetahui bahwa pada PVM yang berbasis jaringan Ehternet, mekanisme multicast tidak memberikan kinerja yang lebih baik dibanding komunikasi simpul-ke-simpul. Hal ini karena mekanisme komunikasi multicast PVM pada Ethernet yang bersifat “shared media” dilakukan secara sekuensial (tidak serempak). Ini berarti mirip dengan komunikasi simpul-ke-simpul.
4.1.3. Kinerja Komputasi a. Waktu Eksekusi. Dari pengukuran kinerja komputasi paralel (4 proses) perkalian matriks yang dibandingkan dengan komputansi sekuensial dapat disimpulkan bahwa untuk matriks berukuran kecil (120x120 ke bawah), ternyata waktu eksekusinya cenderung lebih buruk dibanding waktu eksekusi sekuensial. Komputasi paralel mulai menunjukkan keunggulan dibanding komputasi sekuensial untuk matriks berukuran 200x200 ke atas. Hal ini menunjukkan bahwa granularitas sangat berpengaruh terhadap kinerja komputasi. Semakin kecil granularitas, maka semakin lambat waktu eksekusi paralelnya, karena sebagia besar waktu digunakan untuk berkomunikasi. Demikian sebaliknya, semakin besar granularitas (ukuran matriks), maka waktu eksekusi paralel semakin cepat. b. Speedup. Komputasi paralel pada PVM ternyata tidak menjamin adanya speedup yang baik untuk semua kondisi. Sebagaimana terbukti bahwa speedup ternyata baru tampak untuk matriks berukuran 200x200 ke atas. Sedangkan di bawah ukuran tersebut, komputasi paralel justru lebih lambat dibanding komputasi sekuensial. c. Profil C/C ratio. Dengan mengamati proporsi waktu komunikasi dibanding waktu komputasi, maka ternyat abahwa untuk matriks berukuran 120x120 ke bawah, nilai c/c ratio adalah sekitar 50%. Ini berarti bahwa porsi waktu komunikasi mencapai 50% terhadap waktu komputasi. Hal ini menunjukkan bahwa waktu eksekusi program paralel tersebut banyak dihabiskan untuk berkomunikasi. Jadi eksekusi program paralel tersebut tidak efisien. Namun untuk matriks berukuran 200x200 ke atas, nilai c/c ratio semakin kecil (kurang dari 25%), sehingga eksekusi program paralel pun semakin efisien.
4.1.2. Kinerja Komunikasi Dengan Beban a. Pada model komunikasi saling-silang, dimana terdapat dua simpul yang akan mengirim data secara bersamaan, ternyata satu simpul mendapat prioritas pengiriman data, sedangkan simpul lain dinomorduakan. Akibatnya kinerja komunikasi salah satu simpul lebih tinggi dibanding simpul lain. Apabila kedua simpul tersebut saling tergantung data untuk pemrosesan tugasnya, maka kondisi ini dapat menyebabkan kelambatan eksekusi program, atau bahkan kemacetan. b. Pada model komunikasi simultan, dimana dua pasang simpul saling berkirim data secara bersamaan, kita dapat melihat bahwa apabila beban jaringan tinggi, maka komunikasi data di dalam jaringan menjadi lambat. Lambatnya komunikasi data ini tentunya akan mempengaruhi eksekusi program paralel, karena proses-prosesnya mengunggu data yang dikirim melalui jaringan. Dengan demikian implementasi program paralel pada PVM yang
StudiKinerjaParallelVirtualMachines
53
Winarno
sebaiknya jaringan tersebut memang “dedicated” sebagai sistem komputer paralel, dan tidak dipakai untuk aplikasi lain. Sebab beban komunikasi data yang berat di dalam jaringan otomatis akan menurunkan troughput komunikasi, sehingga menganggu kinerja komputasi paralel. Namun apabila kebutuhan komputasi paralel kita tidak terlalu besar, maka kita dapat menarik keuntungan dari sistem paralel PVM yang berbasis jaringan Ethernet, yaitu memanfaatkan jaringan yang ada untuk aplikasi paralel, sehingga kita tidak perlu membeli komputer paralel khusus yang mahal harganya.
Secara umum dapat disimpulkan bahwa sistem PVM (Parallel Virtual Machines) memiliki kemampuan yang cukup baik, dan berpotensi menjadi sarana untuk menciptakan sistem komputer paralel alternatif, yang memanfaatkan jaringan stasiun kerja yang ada. Dengan demikian sistem PVM akan dapat menghindarkan kita dari membeli sistem komputer paralel khusus yang harganya tidak murah. Namun karena untuk menghasilkan kinerja yang tinggi PVM menuntut beban jaringan yang tidak tinggi, maka berarti bahwa PVM pun memerlukan jaringan yang ‘dedicated’ apabila memang dikehendaki sebagai sistem komputer paralel yang ‘dedicated’. Kecuali apabila kebutuhan aplikasi paralel kita tidak terlalu besar, maka kita dapat menggunakan jaringan yang ada untuk merangkap menjadi sistem komputer paralel yang berbasis PVM.
DAFTAR PUSTAKA Akl, Selim G. 1989. The Design and Analysis of Parallel Algoritms, London: Prentice-Hall. Anderson, Thomas E. et al., “A Case for NOW (Networks of Workstations)”, IEEE Micro, February 1995, Hlm. 54-64.
4.2. SARAN-SARAN Dari kesimpulan tersebut di atas, maka untuk mengimplementasikan program paralel pada PVM yang berbasis jaringan Ehternet, disarankan agar: a. Untuk menghindari waktu latensi, maka sebaiknya komunikasi antar-proses sesedikit mungkin. Sedangkan untuk memanfaatkan bandwidth semaksimal mungkin, maka pengiriman data menggunakan ukuran data yang sebesar mungkin. Hal ini karena dapat mengurangi waktu komunikasi dan trafik komunikasi dalam jaringan, sehingga eksekusi program paralel kita dapat lebih efisien. Dengan semakin sedikit komunikasi, berarti kita menghindari waktu yang terbuang dalam komunikasi akibat adanya latensi sistem. Ukuran data minimal adalah 2869 byte. b. Diupayakan agar digunakan granularitas yang cukup besar, sehingg efisiensi komunikasi lebih baik. Sebagaimana diketahui, dengan granularitas yang besar, maka kita dapat memanfaatkan bandwidth semaksimal mungkin. c. Digunakan jaringan yang memilliki bandwidth lebih besar, agar kecepatan komunikasi data lebih tinggi. Sebagai contoh adalah FDDI dan ATM. d. Apabila kita ingin memiliki komputer paralel PVM yang berbasis jaringan Ethernet, maka
54
UltimaComputing
Anindo, Bagchi and Hakimi, Louis S. 1992. “Data Transfers in Broadcast Networks”, IEEE Transaction on Computers, Vol. 41 No.7, July.
Beguelin, Adam et al. 1991. A User’s Guide to PVM (Parallel Virtual Machines), Oak Ridge: Oak Ridge National Laboratory. Bhatt, Sandeep N., et al. 1993. “Scattering and Gathering Messages in Networks of Processors”, IEEE Transaction on Computers, Vol. 42 No.8, August 1993. Celenk, Mehmet and Wang, Yang. 1994. “Performance of the Networks of Workstations for Parallel Processing Applications”, IEEE 0-8186-5320-5/94. Crovella et al. 1992. “Using Communication-toComputation Ratio in Parallel Program Design and Performance Prediction”, Proceeding of the 4th IEEE Symposium on Parallel and distributed Processing 1992, Hlm. 238-245. Crovella, Mark, et al. 1992. “Using Communication-to-Computation Ratio in
StudiKinerjaParallelVirtualMachines
UltimaComputing
Winarno
Parallel Program Design and Performance Prediction”, IEEE.
INMOS Limited. 1990. ANSI C Toolset User Manual, INMOS Limited.
Freeman L.T & Phillips C. 1992. Parallel Numerical Algoritms, New York: PrenticeHall.
INMOS Limited. 1990. ANSI C Toolset Reference Manual, INMOS Limited. Khokhar, Ashfaq A., et al. “Heterogenous Computing: Challenges and Opportunities”, IEEE Computer, June 1993.
Geist, A.G & Sunderam S.V. 1991. “Network Based Concurrent Computating on the PVM System”, Paper, Atlanta: Emory University.
Lewis, G.T., et al. 1992. Introduction to Parallel Computing, New Jersey: Prentice-Hall.
Geist, Al, et al. 1994. PVM: Parallel Virtual Machines a User’s Guide and Tutorial for Networked Parallel Computing, Massachusetts: The MIT Press.
Quinn, Michael J. 1987. Designing Efficient Algorithm for Parallel Computers, London: McGraw-Hill.
Gross, Thomas et al. 1994. “Communication Styles for Parallel Systems”, IEEE Computer, December 1994.
Rochkind, Marc J. 1985. Advance Unix Programming, Englewood Cliffs, New Jersey: Prentice-Hall.
Hayes, John P. 1988. Computer Architecture and Organization, 2nd ed, New York: McGrawHill.
Stone, Harold S. 1987. High-Performance Computer Architecture, Massachusetts: Addison-Wesley Publishing Company.
Hennessy, John L. & Patterson D.A. 1990. Computer-Architecture a Quantitive Approach, San Mateo-California: Morgan Kaufman Publishers Inc.
Tabak, Daniel. 1991. Advanced Mircroposessor, New York: McGraw-Hill,. Tanenbaum, Andrew S. 1992. Modern Operating Systems, Englewood Cliffs, New York: Prentice-Hall.
Hennessy, John L. and Jouppi Norman P., “Computer Technology and Architecture: An Evolving Interaction”, IEEE Computer, September 1991.
Tsay, Jong-Chuang and Chang, Pen-Yuang, “Design of Efficient Regular Arrays for Matrix Multiplication by Two-Step Regularization”, IEEE Transaction on Parallel and Distributed Systems, Vol. 6 No.2, February 1995.
Hesham, El-Rewini (ed) et al, Parallel Distributed Systems From Theory to Practice, IEEE Parallel & Distributed Technology, August 1993. Himawan B. 1993. Evaluasi Kinerja Sistem Komputer Paralel Berbasis Pertukaran Pesan TransPAU, Skripsi, Prosilkom UI, Jakarta.
Varvarigos, Emmanouel A. and Bertsekas, Dimitri P., “Dynamic Broadcasting in Parallel Computing”, IEEE Transaction on Parallel and Distributed Systems, Vol.6 No.2, February 1995.
Horowitz E. & Sahni S. 1990. Fundamental of Data Structures in Pascal, 3rd ed., New York: W.H Freeman and Company.
Wilson, Gregory V., “A Glossary of Parallel Computing Technology”, IEEE Parallel & Distributed Technology, February 1993.
Hwang, K & Briggs, A.F. 1985. Computer Architecture and Parallel Processing, Singapore: McGraw-Hill.
StudiKinerjaParallelVirtualMachines
Yung, C.W and Yung, Edward K.N. 1992. “Design of a Distributed Programming Platform for
55
Winarno
UltimaComputing
StudiKinerjaParallelVirtualMachines
Parallel Computation in a Network of Workstations”, IEEE 0-7803-0849-2/92. Vokerding, Patrick, et al. 1995. Linux Configuration and Installation, 1st ed., New York: MIS Press. Xu,
56
Zhiwei. Spring 1996. “Modeling Communication Overhead: MPI and MPL Performance on the IBM PS/”2, IEEE Parallel & Distributed Technology.