Selasa, 20 Januari 2009

proses paralel dalam sistim komputer

PROSES PARALEL DALAM SISTEM KOMPUTER

A. Pengertian Proses Paralel

Para perancang komputer selalu berudsaha untuk meningkatkan kinerja mesin-mesin yang dirancangnya.Satu cara yang dilakukan adalah membuat chip-chip agar bekerja lebih cepat dengan menambah kecepatan detaknya, namun untuk semua desain baru, cara tersebut masih suli untuk dilakukan. Oleh karena itu, sebagian besar arsitektur komputer beralih ke paralelisme (melakukan dua hal atau lebih secara sekaligus) sebagai suatu cara untuk mencapai kinerja yang lebih tinggi pada suatu kecepatan detak tertentu.

Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam praktek, seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbea-beda tanpa berkaitan di antaranya.

Konsep keparalelan itu sendiri dapat ditinjau dari aspek design mesin paralel, perkembangan bahasa pemrograman paralel atau dari aspek pembangunan dan analisis algoritma paralel. Algoritma paralel itu sendiri lebih banyak difokuskan kepada algoritma untuk menyelesaikan masalah numerik karena masalah numerik merupakan salah satu masalah yang memerlukan kecepatan komputasi yang sangat tinggi.

Sebagian besar komputer hanya mempunyai satu CPU, namun ada yang mempunyai lebih dari satu. Bahkan juga ada komputer buan CPU. Komputer dengan satu CPU dapat melakukan parallel processing dengan menghubungkannya dengan komputer lain pada jaringan. Namun, parallel processing ini memerlukan software canggih yang disebut distributed processing software.

Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel computing.

Komputer dikatakan sebagai mesin komputasi paralel jika memenuhi beberapa syarat berikut ini:

- Data yang diproses dipecah menjadi bagian-bagian terpisah yang bekerja secara independen dan terus-menerus.

- Proses pengeksekusian instruksi ganda. Sehingga dalam sekali waktu, bisa dihasilkan 2 atau lebih suatu output data. Untuk lebih detilnya bisa dibaca pada sub bab taksonomi Flynn.

Yang dalam hal ini sangat berbeda dengan paradigma perkembangan pengolahan data yang berkisar pelebaran jalur data, bukan penjamakan instruksi. Contohnya adalah dimulai dari 8 bit pemroses kemudian berkembang menjadi 16 bit, 32 bit, dan sekarang ini yang sedang populer, 64 bit.

- Dapat menyelesaikan tugas lebih cepat daripada dengan perangkat serial

Bentuk fisik komputer paralel sendiri bisa dalam beberapa bentuk:

1) Sebuah komputer dengan prosesor ganda. Bukan prosesor dengan inti ganda seperti sekarang ini.

2) Beberapa komputer yang terpisah tetapi terkoneksi dengan jaringan. Jaringan ini, bisa merupakan jaringan lokal, atau pun jaringan global.

3) Gabungan keduanya

B. ARSITEKTUR KOMPUTER PARALEL

Pengelompokan Komputer

Berdasarkan jumlah aliran instruksi dan aliran datanya, Michael J. Flynn pada tahun 1966 mengelompokkan komputer digital menjadi empat golongan besar [Hwa85]. Aliran instruksi (instruction stream) adalah urutan instruksi yang dieksekusi oleh sistem komputer, sedangkan aliran data (data stream) adalah urutan data yang diolah termasuk data masukan, bagian dari data, maupun data sementara yang dipanggil atau digunakan oleh aliran instruksi.

Keempat kelompok komputer tersebut adalah :

1. Komputer SISD (Single Instruction stream-Single Data stream)

Pada komputer jenis ini semua instruksi dikerjakan terurut satu demi satu, tetapi juga dimungkinkan adanya overlapping dalam eksekusi setiap bagian instruksi (pipelining). Pada umumnya komputer SISD berupa komputer yang terdiri atas satu buah pemroses (single processor). Namun komputer SISD juga mungkin memiliki lebih dari satu unit fungsional (modul memori, unit pemroses, dan lain-lain), selama seluruh unit fungsional tersebut berada dalam kendali sebuah unit pengendali. Skema arsitektur global komputer SISD.

2. Komputer SIMD (Single Instruction stream-Multiple Data stream)

Pada komputer SIMD terdapat lebih dari satu elemen pemrosesan yang dikendalikan oleh sebuah unit pengendali yang sama. Seluruh elemen pemrosesan menerima dan menjalankan instruksi yang sama yang dikirimkan unit pengendali, namun melakukan operasi terhadap himpunan data yang berbeda yang berasal dari aliran data yang berbeda pula.

3. Komputer MISD (Multiple Instruction stream-Single Data stream)

Komputer jenis ini memiliki n unit pemroses yang masing-masing menerima dan

mengoperasikan instruksi yang berbeda terhadap aliran data yang sama, dikarenakan setiap unit pemroses memiliki unit pengendali yang berbeda. Keluaran dari satu pemroses menjadi masukan bagi pemroses berikutnya. Belum ada perwujudan nyata dari komputer jenis ini kecuali dalam bentuk prototipe untuk penelitian.

4. Komputer MIMD (Multiple Instruction stream-Multiple Data stream)

Pada sistem komputer MIMD murni terdapat interaksi di antara n pemroses. Hal ini disebabkan seluruh aliran dari dan ke memori berasal dari space data yang sama bagi semua pemroses. Komputer MIMD bersifat tightly coupled jika tingkat interaksi antara pemroses tinggi dan disebut loosely coupled jika tingkat interaksi antara pemroses rendah.

Komputasi Paralel

Komputer sekuensial - berdasarkan klasifikasi Flynn adalah kelompok komputer SISD – hanya mempunyai satu unit pengendali untuk menentukan instruksi yang akan dieksekusi. Pada setiap satuan waktu hanya satu instruksi yang dapat dieksekusi, dimana kecepatan akses ke memori dan kecepatan piranti masukan dan keluaran dapat memperlambat proses komputasi. Beberapa metode dibangun untuk menghindari masalah tersebut, seperti penggunaan cache memory. Namun komputer sekuensial ini tetap mengalami keterbatasan jika menangani masalah yang memerlukan kecepatan tinggi.

Hal-hal tersebut di atas pada akhirnya melatarbelakangi lahirnya sistem komputer paralel. Berdasarkan klasifikasi Flynn, komputer paralel termasuk kelompok SIMD atau MIMD. Komputer paralel mempunyai lebih dari satu unit pemroses dalam sebuah komputer yang sama. Halyang membuat suatu komputer dengan banyak prosesor disebut sebagai komputer paralel adalah bahwa seluruh prosesor tersebut dapat beroperasi secara simultan.

Jika tiap-tiap prosesor dapat mengerjakan satu juta operasi tiap detik, maka sepuluh prosesor dapat mengerjakan sepuluh juta operasi tiap detik, seratus prosesor akan dapat mengerjakan seratus juta operasi tiap detiknya [Les93].

Pada dasarnya aktivitas sebuah prosesor pada komputer paralel adalah sama dengan aktivitas sebuah prosesor pada komputer sekuensial. Tiap prosesor membaca (read) data dari memori, memprosesnya dan menuliskannya (write) kembali ke memori. Aktivitas komputasi ini dikerjakan oleh seluruh prosesor secara paralel.

Paralelisme

Ada dua bentuk umum paralelisme: paralelisme instruksi-level dan paralelisme prosesor-level. Pada bentuk pertama, paralelisme dimanfaatkan dalam instruksi-instriuksi individu agar dapat mngeksekusi lebih banyak instruksi per detikdari mesin tersebut. Pada betuk kedua, berbagai macam CPU bersama-sama menangani masalah yang sama. Setiap pendekatan memiliki keunggulannya masing-masing.

Multiprosesor dan Multikomputer

Multiprosesor yaitu suatu sistem dengan lebih dari satu CPU yang memiliki sebuah memori bersama, seperti sekelompok orang dalam suatu ruangan yang memiliki papan tulis bersama. Prosesor berkomunikasi dengan prosesor lain dengan menulis pesan ke memori global dimana prosesor kedua dapat membaca pesan tersebut pada lokasi memori yang sama. Skema arsitektur memori bersama dapat dilihat pada gambar .

Memori Bersama

Prosesor1 Prosesor2 Prosesor3

Semua prosesor dapat melakukan komputasi secara paralel dan masing-masing dapat mengakses memori melalui bus. Bus bertanggung jawab mengatur permintaan pemakaian memori yang berlangsung secara simultan oleh beberapa prosesor. Bus juga bertanggung jawab untuk meyakinkan bahwa semua prosesor dilayani secara adil dengan waktu tunda (delay) akses yang minimum.

Sedangkan Multikomputer adalah sistem-sistem yang terdiri dari banyak komputer yang saling terhubung, yang masing-masing memiliki memorinya sendiri-sendiri. Masing-masing prosesor mempunyai satu atau lebih hubungan

langsung ke prosesor lain untuk transmisi data.

Jika prosesor tidak mempunyai koneksi langsung ke prosesor lain, komunikasi dapat dilangsungkan melalui prosesor antara (intermediate processor) untuk mengirim data. Transmisi data antar prosesor membutuhkan sejumlah waktu yang selanjutnya disebut waktu tunda komunikasi. Jika selama eksekusi program sering terjadi komunikasi antar prosesor, maka jumlah waktu tunda komunikasi akan menambah waktu eksekusi program.

Pada dasarnya waktu komunikasi sebuah message pada multicomputer, terdiri dari tiga komponen, yaitu waktu transmisi (transmision time), waktu proses (processing time) dan waktu tunggu (waiting time). Waktu transmisi adalah waktu yang dibutuhkan untuk transmisi secara fisik sejumlah bit message melalui saluran komunikasi. Waktu proses adalah waktu yang diperlukan untuk memproses suatu komputasi.

Sedangkan waktu tunggu adalah waktu yang diperlukan untuk menunda pengiriman pesan. Peristiwa penundaan ini disebabkan karena prosesor tersebut sedang menerima message dari prosesor lainnya, atau karena prosesor tersebut sedang sibuk. Peristiwa penundaan ini disebut kongesti (congestion).

Penundaan message dalam perjalanannya melalui prosesor-prosesor akan tergantung pada ratarata waktu tunda komunikasi yang dibutuhkan untuk transmisi setiap saluran komunikasi dan juga jumlah total saluran yang dilalui antara prosesor sumber dan prosesor tujuan. Jumlah saluran yang dilalui akan tergantung pada struktur keseluruhan jaringan komunikasi, yang disebut topologi dari multikomputer.

Salah satu parameter yang penting dari topologi multikomputer ini adalah jumlah saluran yang terhubung pada setiap antar muka prosesor, yang disebut keterhubungan (connectivity) topologi. Keterhubungan ini menjadi faktor yang penting untuk menentukan beban jaringan. Parameter penting lainnya adalah diameter dari topologi, yaitu jumlah maksimum saluran yang dibutuhkan untuk mengirim suatu message pada jarak terjauh prosesor. Diameter menjadi faktor penting kinerja jaringan.

Tentang MultiCore

Akhir-akhir ini, prosesor lebih menekankan pada multiple core. Tetapi hal tersebut belum termasuk dalam komputasi paralel karena prosesor tersebut masih menggunakan basic pemrosesan serial. Meskipun bisa dikatakan, multicore merupakan pendekatan perlahan menuju ke pemrosesan berorientasi paralel.

Kita lihat saja skema MultiCore yang dikembangkan Intel maupun AMD. Keduanya masih menggunakan basis pemrosesan sequensial. Tetapi dengan level atas pemrosesan yang tidak tunggal seperti pada komputasi PC pada umumnya. Oleh karena itu, mengapa komputasi multicore masih bisa compatible dengan perangkat lunak yang ada sebelumnya yang digunakan untuk single core. Begitu juga halnya berlaku untuk lebar jalur data.

Sedangkan berdasar wikipedia tetap membagi multicore termasuk dalam komputasi paralel, yang hampir sama dengan komputer multiprosesor, karena masih dalam satu mesin komputer. Dalam hal ini wikipedia lebih menekankan pembagian berdasar penggunaan jaringan atau tidak.

Antara Komputasi serial dan Komputasi Paralel

Tentu ada kekurangan pada sistem komputasi serial dan komputasi paralel. Pada komputasi serial, kekurangannya adalah ketika ingin membangun komputer dengan kecepatan tinggi:

1. kecepatan transmisi – kecepatan komputer berbasis serial sangat tergantung seberapa cepat data dapat berpindah dari hardware tersebut. Batas kecepatan yang pasti adalah kecepatan cahaya (30 cm/nanosecond) untuk transmisi yang bermedia cahaya atau 9 cm/nanosecond untuk transmisi yang terbuat dari tembaga.

2. keterbatasan pada ukuran fisik – teknologi prosesor terkini selalu bertumpukan pada seberapa banyak jumlah transistor dalam satu chip. Meskipun ukuran atomic atau molecular dapat tercapai, tetapi batas minimum dari ukuran chip tersebut akan terlampaui juga.

3. ekonomi – menggunakan satu buah chip prosesor dengan kecepatan lebih tinggi membuat harga prosesor itu sendiri naik dengan drastis. Sedangkan menggunakan prosesor yang tersedia dipasaran tetapi relatif cepat dan jumlah yang lebih banyak bisa menyamai kecepatan super komputer, dengan harga yang relatif lebih murah.

Meskipun demikian, komputasi paralel juga memiliki kekurangan:

1. Komputasi parallel masih kurang populer dibandingkan dengan komputasi sekuensial atau serial, seperti halnya Personal Computer. Sehingga harga setiap komponen untuk perangkat paralel tersebut masih mahal

2. Pemrograman paralel yang masih kurang populer. Sehingga pembuatan perangkat lunak untuk perangkat paralel masih sangat mahal, begitu juga dengan perawatan dan modifikasinya.

3. Begitu juga dengan tenaga ahli dibidang ini sangat kecil porsinya dibandingkan dengan tenaga ahli dibidang komputasi serial.

Namun, pada perkembangannya kedua komputasi tersebut akan terus mengalami perbaikan demi perbaikan yang membuat komputer semakin canggih

memory generasi baru komputer

Chace memory adalah Memori berkapasitas terbatas, memori ini berkecepatan tinggi dan lebih mahal dibandingkan memory utama. Berada diantara memori utama dan register pemroses, berfungsi agar pemroses tidak langsung mengacu kepada memori utama tetapi di cache memory yang kecepatan aksesnya yang lebih tinggi, metode menggunakan cache memory ini akan meningkatkan kinerja sistem. Cache memory adalah tipe RAM tercepat yang ada, dan digunakan oleh CPU, hard drive, dan beberapa komponen lainnya. Seperti halnya RAM, lebih banyak cache memory adalah lebih baik, akan tetapi biasanya cache pada CPU dan hard drive tidak dapat diupgrade menjadi lebih banyak. Contoh yang dapat dilihat misalnya adalah pada CPU Pentium II terdapat 512 KiloByte cache, dan pada hard drive IBM 9LZX SCSI terdapat 4 MegaBytes cache. Seperti halnya RAM, pada umumnya data akan dilewatkan dulu pada cache memory sebelum menuju komponen yang akan menggunakannya (misalnya CPU). Selain itu cache memory menyimpan pula sementara data untuk akses cepat. Kecepatan cache memory juga menjadi unsur yang penting. Sebagai contoh, CPU Pentium II memilki cache sebesar 12 k, dan CPU Celeron memiliki cache sebesar 128 k, akan tetapi cache pada Pentium II berjalan pada 1/2 kali kecepatan CPU, sementara cache pada Celeron berjalan dengan kecepatan sama dengan kecepatan CPU. Hal ini merupakan tradeoff yang membuat kecepatan Celeron dalam hal-hal tertentu kadang-kadang malah bisa mengalahkan