Minggu, 07 April 2013

Distributed Shared Memory System


Nama : Atiek Puji Rahayu
NIM  : 10.01.53.0049
Kelas : A1
Kelompok : 7

DISTRIBUTED SHARED MEMORY SYSTEM

Shared Memory yang terdistribusi (Distributed Shared Memory/DSM) ditunjukan untuk membuat sekelompok komputer yang saling berhubungan, masing-masing dengan memori masing-masing, muncul seolah-olah memori fisik yang terdistribusi adalah memori tunggal dengan alamat tunggal seperti yang digambarkan pada gambar 9.1. Sekali DSM dicapai, lokasi memori manapun dapat diakses oleh sembarang processor, tidak peduli apakah ada memori atau tidak diarea tersebut, dan teknik-teknik pemrograman shared memory yang biasa dapat digunakan.
Multiprocessor diminta dengan penggunaan shared memory, yaitu memori yang dapat dipakai bersama-sama oleh seluruh pemroses. Distributed Shared Memory (DSM) menyediakan lingkungan shared memory secara logic pada jaringan komputer (network of workstation) yang secara fisik memorinya terdistribusi. Karena pertimbangan biaya, banyak sistem pemrosesan parallel saat ini dibangun dengan menghubungkan komputer PC dalam jaringan lokal yang murah. Untuk mengembangkan program paralel di lingkungan ini lebih mudah diajukan DSM sehingga memungkinkan penggunaan lingkungan pemrograman shared-memory pada sistem memori yang secara fisik terdistribusi.



Gambar 9.2 Aritektur Distributed Shared Memory
Kekurangan dari DSM :
  • DSM memiliki kemampuan yang lebih rendah dibandingkan sistem multiprocessor shared memory yang benar, karena terkoneksi antara komputer-komputer stand alone akan beroperasi jauh lebih lambat dibandingkan interkoneksi didalam sistem multiprocessor shared memory.
  • DSM biasanya mendatangkan pinalti performa ketika dibandingkan dengan penggunaan cluster dengan rutin message-passing reguler, sehingga rutin-rutin message-passing yang disisipkan programmer akan lebih efisien ketimbang pendekatan DSM yang otomatis.

Keuntungan dari DSM :
  • Kemudahan menggabungkan teknik optimasi sehingga banyak overhead dari messege passing bisa dihilangkan.
  • Pengiriman messege tidak dilakukan secara eksplisit (tersembunyi dari program),dan bisa juga menangani data yang besar dan kompleks, tanpa replikasi atau mengirim data keproses.
  • Pemrogram juga bisa mengetahui perilaku DSM melalui antarmuka untuk meningkatkan kinerja dari aplikasi.

Implementasi DSM :
Implementasi Perangkat Lunak Sistem DSM
§  DSM yang berdasarkan blok/page (blok/page based DSM)

Pada DSM berdasarkan blok, ruang pengalamatan shared memory dibagi menjadi halaman logika berupa blok yang berukuran tetap kemudian didistribusikan ke host dalam sistem. Melalui sebuah memory manager, host bisa mengakses ke setiap halaman dalam ruang pengalamatan shared. DSM berdasarkan blok biasanya merupakan perluasan dari sistem memori semu tradisional, dan biasanya diimplementasikan pada lapisan lapisan perangkat keras atau sistem operasi. Keuntungan implementasi ini adalah sifat transparansinya. Sifat transparansi ini ditunjukkan dengan kenyataan bahwa sistem memoriter distribusi pada komputer yang berbeda sepenuhnya tersembunyi dari pemakai. Pemakai bisa melihat sistem DSM seperti shared memory pada multiprocessor, namun dengan kecepatan komunikasi yang lebih lambat Bagaimanapun juga, DSM berdasar blok memiliki masalah pemilihan ukuran blok. Ukuran blok yang besar meningkatkan delay dalam melakukan pengiriman blok dan kemungkinan false sharing, sedangkan ukuran blok yang kecil menghasilkan intensitas yang tinggi pada transmisi pada blok sehingga meningkatkan overhead untuk transfer blok. Keperluan untuk memelihara status blok juga meningkat. Ukuran blok tidak hanya bergantung pada ciri dari sistem tapi juga pada aplikasinya.Sejauh ini belum ada cara yang sistematis untuk memilih parameter ukuran blok. Dengan demikian, hal ini merupakan pekerjaan yang sulit, tidak hanya bergantung pada karakteristik sistem, tapi juga aplikasi. Masalah lain dengan DSM berdasarkan blok adalah kerumitan perancangan. Implementasi pada lapisan perangkat keras dan sistem operasi memerlukan modifikasi atas sistem yang sudah ada, yang memerlukan usaha yang besar. Biaya untuk mengadakan dan memelihara sistem tersebut akan menjadi tinggi. Komputer yang berbeda memiliki ukuran halaman yang berbeda dan metode manajemen memori yang berbeda. DSM yang berdasarkan blok biasanya bergantung pada sistem sehingga sulit untuk diimplementasikan pada sistem yang heterogen.
§  DSM yang berdasarkan object (Object Based DSM)
DSM berdasarkan object melakukan pembagian shared memory ke dalam unit-unit kecil. Setiap unit memuat data yang berhubungan secara logika. Implementasinya biasa dilakukan pada lapisan bahasa/kompilator dan librari. Karena DSM berdasar objek diimplementasikan pada lapisan yang lebih tinggi, kinerjanya tidak sebaik DSM berdasarkan blok tetapi lingkungan yang dihasilkan lebih independen dan fleksibel. DSM bisa diimplementasikan diatas subsistem komunikasi yang sudah ada seperti PVM, TCP/IP, atau DCE. Akibatnya, usaha pengembangan sistem bisa berkurang dengan cepat, dan pengubahan sistem pada arsitektur yang lebih mudah. Lingkungan tersebut akan mampu mendukung sistem yang heterogen. Pada DSM berdasarkan objek, pemrogram memiliki kendali yang besar atas bagaimana data akan didistribusikan sesuai dengan ciri dari aplikasi. Pemrogram juga dibiarkan untuk menentukan parameter yang penting seperti ukuran blok, metode akses, mekanisme komunikasi, dan model konsistensi memori. Pengolahan Paralel adalah pengolahan informasi yang menekankan pada manipulasi data-data elemen secara simultan dengan maksud untuk mempercepat komputasi dari sistem komputer dan menambah jumlah keluaran yang dapat dihasilkan dalam jangka waktu tertentu. Komputer Paralel memiliki kemampuan untuk melakukan pengolahan paralel. Sedangkan through put yang dihasilkan adalah keluaran yang dihasilkan per unit waktu. Peningkatan through put dapat dilakukan dengan meningkatkan kecepatan operasi serta meningkatkan jumlah operasi yang dapat dilakukan dalam satu waktu tertentu (concurrency).
Implementasi Perangkat Keras Sistem DSM
Pada pendekatan perangkat keras, antar muka dari jaringan antar sirkuit hubungan cache ditambahkan kedalam system untuk membuat referensi memori untuk lokasi memori remote kelihatan seperti referensi untuk lokasi lokal. Terdapat beberapa antar muka yang memiliki tujuan khusus yang mendukung operasi shared memory. Contohnya meliputi :
§  Virtual – Memory Mapped Network Interface (Blumrich et al, 1995)
§  Myrinet (Borden et al, 1995)
§  SCI (Hellwagner dan Reinefeld, 1999)
§  Memory – Integrated Network Inerface (Minich, Burns dan Hady, 1995)
Pendekatan perangkat keras harus menyediakan tingkat kemampuan yang lebih tinggi dibangingkan dari perangkat lunak diantara sistem operasi dan aplikasi pengguna. Pendekatan perangkat lunak secara khas menambah sebuah lapisan tambahan dari perangkat lunak diantara system operas dan aplikasi pengguna. Terkadang bahkan menggunakan antarmuka komoditi yang ada (missal Ethernet) dan mendatangkan kemampuan tambahan penting lainnya.
Pengelolaan Shared Data
Ada beberapa cara agar prosessor memliki akses ke shared data. Solusi yang sederhana adalah dengan memiliki akses ke server pusat yang bertanggung jawab atas semua operasi baca dan tulis pada shared data, dan dengan memliki prosessor yang membuat permintaan kepada server ini. Semua kegiatan membaca dan menulis dari shared data terjadi dalam satu tempat dan berurutan; artinya, ia mengimplementasikan kebijakan single reader / single writer. Kebijakan ini jarang digunakan karena dapat menyebabkan kemacetan pada semua permintaan yang harus pergi ke satu tempat.
            Kebijakan multiple reader / single reader memperbolehkan banyak prosessor untuk membaca shared data, tetapi hanya satu yang dapat mengubah data pada saat tertentu, yang dapat dicapai secara efisien dengan mereplikasi data pada bagian bagian yang memerlukannya. Hanya satu bagian (pemilik) yang oleh mengubah data. Dalam kebijakan multiple reader / single writer, ketika pemilik mengubah shared data, salinan salinan lainnya tidak akurat. Ada beberapa kemungkinan untuk mengatasi situasi ini.
Ada beberapa kemungkinan untuk mengatasi masalah ini yaitu :
§  Memperbaharui Kebijakan
Memperbaharui kebijakan, semua salinan data lain akan segera diubah untuk mencerminkan perubahan dengan sebuah pesan yang dipancarkan.
§  Membuat Kebijakan Tidak Berlaku
Dalam membuat kebijakan yang sudah ada menjadi tidak berlaku, semua salinan data ditandai tidak berlaku. Jika data tersebut terus menerus diproses respons yang didapat mengindikasikan adanya data yang tidak benar menyebabkan prosessor meminta suatu nilai baru dari pemilik. Membuat kebijakan tidak berlaku cenderung dipilih karena pesan pesan hanya dihasilkan ketika prosessor prosessor mencoba mengakses salinan yang sudah diubah. Salinan manapun dari data yang tidak dapat diakses secara terus menerus akan tetap tidak valid / tidak benar.