Kinerja Komputasi dengan Pemrosesan Paralel

21 03 2011

Tanpa disadari ilmu pengetahuan khususnya pada bidang rekayasa perangkat keras komputer telah berkembang pesat. Hal yang paling mendasar yang dapat diketahui umum pada bidang ilmu komputer adalah kecepatan pemrosesan.

Dahulu, saat komputer berprosesor sekuensial dibuat, para insinyur mencoba untuk meningkatkan kinerja dengan hanya meningkatkan Clock, Bus Bandwidh serta mereduksi Access Time dengan menambahkan Cache memori pada prosesor maupun memperbesar RAM.

Tetapi pada saat ini, para insinyur telah mengetahui bahwa untuk meningkatkan kinerja tidak hanya dibutuhkan Clock, tetapi dibutuhkan juga suatu arsitektur baik itu hardware maupun software yang mampu mendukung komputansi yang lebih maju / Advance dalam hal pemrosesan secara paralel.

Ada dua teknik pemrosesan paralel yakni menggunakan Multi-Core System dan menggunakan PC Clustering.

A. Multi-Core System

Belakangan ini semakin terdengar istilah Multi Core pada satu prosesor, ide dasar dari Multi-Core adalah memperbanyak inti pemroses sehingga diharapkan kinerja komputansi meningkat dikarenakan pemrosesan secara paralel.

Pada awalnya Multi Core diawali oleh Sistem Multi Prosesor. Sistem ini membutuhkan sumberdaya untuk masing-masing prosesornya, sedangkan untuk interkoneksinya, dibutuhkan sebuah BUS berkecepatan tinggi. Pada gambar di bawah ini dapat dilihat bahwa setiap elemen prosesor memiliki RAM dan FSB tersendiri, lalu prosesor tersebut daripada efisiensi komunikasi serta dihubungkan dengan sebuah interkoneksi yang disebut Hyper Transport.

Dapat dikatakan bahwa sistem ini bekerja dengan komputasi maksimal untuk setiap elemen pemrosesnya karena setiap prosesor sistem ini memiliki RAM yang didedikasikan khusus untuk satu prosesor.

Peningkatan kinerja berbanding dengan kecepatan dan kapasitas RAM yang digunakan pada masing-masing elemen pemroses. Grafik pada gambar di bawah ini menunjukan
bahwa bandwidth memori lebih tinggi daripada efisiensi komunikasi serta kapasitas memori. Bandwidth yang besar ini mampu meningkatkan throughput data yang digunakan pada setiap elemen pemroses sehingga pada hal ini sistem multi prosesor menjadi pilihan enterprise yang membutuhkan waktu proses yang singkat.

Untuk membuat sistem multi prosesor dibutuhkan biaya serta algoritma tersendiri untuk mengendalikan dan memproses input, oleh karena itu untuk mereduksi harga, dibuatlah sistem Multi-Core yang dapat mengetengahkan masalah antara biaya dan kecepatan komputasi seperti yang ditampilkan pada gambar di bawah ini.

Pada sistem multi core, elemen pemroses memiliki satu buah RAM yang dapat diakses secara bersamaan (shared). Secara teoritis, sistem multi core mampu menangani suatu proses dengan p-kali kecepatan pemroses single-core dimana ‘p’ adalah core dari suatu pemroses. Karena sistem ini memiliki memori yang bersifat ‘shared’ (berbagi-
pakai) maka throughput data yang diproses kurang lebih menjadi n/p throughput data daripada sistem Multi-Prosesor, dimana ‘n’ adalah jumlah memori yang terpasang pada ‘p’ elemen pemroses.

Analoginya, jika sebuah prosesor memiliki dua buah inti, maka memori yang seharusnya dapat menangani throughput data pada kecepatan penuh, menjadi setengah throughput data karena memori tersebut melayani dua buah pemrosesan secara bergantian. Hal ini akan menjadi suatu kendala apabila pemroses memiliki inti lebih dari dua, karena throughput data menjadi terbagi-bagi kepada p-elemen pemroses.

Kekurangan throughput dapat diminimalisir dengan low level programming yang singkat serta algoritma penjadwalan resource yang lebih baik, maka manajemen waktu proses dengan resource yang tersedia menjadi efektif sesuai dengan kemampuan dari throughput memori dan kecepatan pemrosesan.

Sistem multi core menjadi solusi yang tepat apabila user menginginkan kecepatan pemroses yang besar, tetapi memiliki dana yang terbatas untuk investasi memori. Sedangkan pada level enterprise, sistem ini menjadi tidak efektif karena dengan jumlah memori yang tak memadai, hal ini dapat menjadi ‘bottle neck’ untuk tiap-tiap elemen pemroses.

Dari gambar di atas dapat diketahui bahwa efisiensi komunikasi meningkat secara signifikan, hal ini dikarenakan interkoneksi antara elemen pemroses sangat dekat, sehingga tak dibutuhkan interkoneksi tersebut melayani dua buah pemroses yang rumit dan panjang untuk menjembatani pemrosesan data yang terjadi.

Sedangkan bandwidth terlihat tidak maksimal, hal ini sudah jelas terjadi karena memori yang bersifat ‘shared’ membagi bandwidth yang sudah ada kepada tiap-tiap core. Selain itu juga, kapasitas memori menjadi lebih kecil untuk tiap pemroses, artinya, tiap core mendapat jumlah space memori yang dinamis tergantung dari ketersediaan space memori yang tak digunakan oleh core yang lain.

B. PC-Clustering

Secara harfiah, clustering berarti pengelompokan. PC-Clustering dapat diartikan pengelompokan beberapa buah PC menjadi satu kesatuan dan mampu memproses dengan interkoneksi jaringan baik itu lokal maupun internet. Penggunaan PC Clustering jamak dilakukan pada institusi pendidikan maupun perusahaan sebagai pengembangan dari komputer multiprosesing. Pada dasarnya pada sistem ini, sebuah PC dapat diibaratkan satu buah elemen pemroses, untuk dapat menggunakan PC sebagai bagian dari suatu elemen pemroses dibutuhkan software yang sebelumnya telah didesain untuk keperluan tertentu.

Secara umum PC clustering dibagi atas tiga kategori yaitu:
– High-availability cluster.
– Load-balancing cluster.
– Grid-computing.

Kategori High-availability dan Load-balancing umumnya digunakan untuk server-server yang membutuhkan komputansi tinggi serta availabilitas (ketersediaan) sistem, tujuan
dari PC Clustering jenis ini adalah menjaga service agar tetap tersedia sepanjang waktu.

Berbeda dengan dua kategori yang telah dijelaskan, Grid-computing lebih mendekati sistem paralel computing yang sebenarnya. Grid-computing bekerja dengan menggunakan sistem penugasan (job system) pada setiap PC yang sedang idle dari proses. Diagram interkoneksi PC Clustering menggunakan interface jaringan maupun Internet bisa dilihat pada gambar di bawah ini.

Contoh Grid Computing yang terbesar adalah FOLDING@HOME dan SETI@HOME. Tujuan utama dari Folding@Home adalah kalkulasi untai protein DNA untuk mencari obat dari penyakit kronis seperti Alzheimer dan Kanker, sedangkan Seti@Home bertujuan untuk mencari bukti-bukti kehidupan selain dibumi menggunakan Arecibo Observatory radio telescope, komputer-komputer yang telah terinstall aplikasi akan menghubungi server untuk meminta tugas dari server.

Setelah client menerima tugas, maka tugas tersebut akan langsung dikerjakan apabila prosesor dalam keadaan idle dari operasi lain. Setelah proses selesai, data yang telah terproses akan dikirim kembali ke server lalu client meminta tugas lain untuk dikerjakan.

Grafik di atas menunjukan bahwa sistem cluster sangat unggul pada bandwidth memori serta kapasitas memori. Tetapi terlihat juga bahwa efisiensi komunikasi sangat rendah, hal ini dapat disebabkan karena throughput interkoneksi yang digunakan tidak secepat bus yang digunakan untuk penghubung antarprosesor pada sistem multiprosesor.

Dari uraian di atas, dapat kita simpulkan bahwa terdapat kelebihan dan kekurangan dari masing-masing teknik pemrosesan paralel yaitu Multi-Core System dan PC-Clustering dalam kinerjanya dalam komputasi. Kelebihan dan kekurangannya dapat dilihat pada tabel berikut ini.

  • Multi-Core System
  • PC-Clustering

Aksi

Information

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s




%d blogger menyukai ini: