1.
Pengertian
Pemrosesan paralel (parallel processing) adalah menggunakan
lebih dari satu CPU untuk menjalankan sebuah program secara simultan. 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.
Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak. Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman parallel untuk merealisasikan komputasi. Pemrograman parallel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU. Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performakomputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalamwaktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.
Komputasi paralel membutuhkan:
·
Algoritma
·
bahasa
pemrograman
·
compiler
Sebagian besar komputer hanya mempunyai
satu CPU, namun ada yang mempunyai lebih dari satu. Bahkan juga ada
computer dengan ribuan 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 distribut ed processing software.
Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel computing.
Contoh struktur pengiriman permintaan dan jawaban dari
parallel processing.
2. Arsitektur
Komputer Parallela.
a.
Berdasarkan simetrinya, multiprocessing
dapat dibagi ke dalam
1) Asymmetric Multiprocessing(ASMP)
2) Symmetric
Multiprocessing(SMP)
3) Non-uniform
memoryaccess(NUMA)multiprocessing
a) Pengertian
Non-Uniform Memory Access atau Non-Uniform Memory Arsitektur ( NUMA ) adalah memori computer Rancangan
yang digunakan dalam multiprocessors , dimana waktu akses memori
tergantung pada lokasi memori relatif terhadap prosesor. Under NUMA, Dalam
NUMA, prosesor dapat mengakses memori lokal
sendiri lebih cepat dari memorinon-lokal, yaitu, memori lokal ke prosesor atau
memori bersama antara prosesor.
NUMA architecture
s logically follow in scaling from
symmetric multiprocessing (SMP) architectures. Arsitektur NUMA logis mengikut iskala dari symmetric
multiprocessing (SMP) arsitektur pembanguna nkomersial
mereka datang bekerja dengan Burroughs (kemudian Unisys), Convex Komputer (kemudian Hewlett-Packard ), Silicon
Graphics , Sekuen Sistem Komputer , Data General dan Digital selama tahun
1990-an. Teknik yang dikembangkan oleh perusahaan-perusahaan ini kemudian
ditampilkan dalam berbagai Unix-seperti sistem operasi , dan agak dalam
Windows NT .
b) Konsep
Dasar
Modern CPU
beroperasi jauh lebih cepat dari pada memori
utama yang mereka terpasang. In the early days of computing and data
processingthe CPU generally ran slower than its memory. Pada hari-hari awal komputasi dan pengolahan
data CPU umumnya berlari lebih lambat dari memori. Garis kinerja menyeberang
pada tahun 1960 dengan munculnya pertama
superkomputer dan kecepatan komputasi tinggi. Sejak saat itu, CPU, semakin kelaparan untuk data, harus
kios sementara mereka menunggu untuk mengakses memori untuk menyelesaikan. Banyak
superkomputer desain 1980-an dan 90-an terfokus pada penyediaan akses kecepatan
tinggi memori sebagai lawan dari prosesor yang lebih cepat, yang memungkinkan mereka untuk bekerja pada set data besar pada
kecepatan sistem lain tidak bisa pendekatan.
Membatasi jumlah
akses memori yang disediakan kunci untuk mengekstrak kinerja tinggi dari
komputer modern. For commodity processors, this means installing an
ever-increasing amount of high-speed cache memory and using increasingly
sophisticated algorithms to avoid
"cache misses". Untuk prosesor komoditas, ini berarti untuk memasang
meningkat jumlah yang tinggi kecepatan memori cache dan menggunakan algoritma semakin
canggih untuk menghindari "cachemisses". Namun peningkatan dramatis dalam ukuran sistem operasi dan
aplikasi yang dijalankan pada mereka telah umum kewalahan perbaikan ini
cache-pengolahan. Multi-processor systems make theproblem considerably worse. Sistem multi-prosesor membuat masalah jauh
lebih buruk. Sekarang sistem bisa kelaparan beberapa prosesor pada saat yang
sama, terutama karena hanya satu prosesor dapat mengakses memori pada suatu
waktu.
NUMA berupaya
untuk mengatasi masalah ini dengan menyediakan memori terpisah untuk
masing-masing prosesor, menghindari kinerja beberapa prosesor menyerang ketika
mencoba untuk mengatasi memori yang sama. Untuk masalah yang melibatkan data menyebar (umum untuk server dan aplikasi
serupa), NUMA dapat meningkatkan kinerja selama memori bersama tunggal dengan
faktor kira-kira jumlah prosesor (atau bank memori yang terpisah).
Tentu saja, tidak
semua data akhirnya terbatas pada satu tugas, yang berarti bahwa lebih dari
satu prosesor mungkin memerlukan data yang sama. Untuk menangani kasus ini,
sistem NUMA termasuk tambahan perangkat keras atau perangkat lunak untuk
memindahkan data antar bank. Operasi ini
memiliki efek memperlambat prosesor yang melekat pada bank-bank, sehingga meningkatkan
kecepatan keseluruhan karena NUMA akan sangat bergantung pada sifat yang tepat
dari tugas berjalan pada sistem pada suatu waktu tertentu.
4)
Clustering
a)
Pengertian
Cluster, dalam ilmu komputer dan jaringan
komputer adalahsekumpulan komputer (umumnya
server jaringan) independen yangberoperasi serta bekerja secara erat dan
terlihat oleh klien jaringanseolah-olah komputer-komputer tersebut adalah satu
buah unitkomputer. Proses menghubungkan beberapa komputer agar dapatbekerja
seperti itu dinamakan dengan Clustering.
Komponen clusterbiasanya saling terhubung dengan cepat melalui sebuah
interkoneksiyang sangat cepat, atau bisa juga melalui jaringan lokal (LAN).
Karena
menggunakan lebih dari satu buah server, maka manajemen danperawatan sebuahcluster jauh lebih rumit dibandingkan dengan manajemenserver
mainframetunggal yang memiliki skalabilitas
tinggi(semacam IBM AS/400), meski lebih
murah.
b) Kategori
kluster computer
Kluster
komputer terbagi ke dalam beberapa kategori, sebagai berikut:
·
Kluster untuk
ketersediaan yang tinggi (H igh-availability cluster s)
High-availa bility cluster, yang juga sering disebut sebagai Failover Cluster pada umumnya diimplementasikan untuk tujuan meningkatkan ketersediaan layanan
yang disediakan oleh kluster tersebut. Elemen kluster akan bekerja dengan
memiliki node-node redundan, yang kemudian digunakan untuk menyediakan
layanan saat salah satu elemen kluster
mengalami kegagalan. Ukuran yang paling umum dari kategori ini adalah dua node,
yang merupakan syarat minimum untuk melakukan redundansi. Implementasi kluster
jenis ini akan mencoba untuk menggunakan redun dan sikomponen kluster untuk
menghilangkan kegagalan di satu titik (Single Point of
Failure).
Ada beberapa
implementasi komersial dari sistem kluster kategoriini, dalam beberapa sistem
operasi. Meski demikian, proyek Linux-HA
adalah salah satu paket yang paling umum digunakan untuksistem operasi
GNU/Linux.
Dalam
keluarga sistem operasi Microsoft Windows NT, sebuah layanan yang disebut
dengan MicrosoftC luster Service
(MSCS) dapat digunakan untuk menyediakan
kluster kategori ini. MSCS ini diperbarui
lagi dan telah diintegrasikan dalam Windows 2000Advanced Server dan
Windows 2000 Datacenter Server, dengan nama
Microsoft Clustering Service.
Dalam Windows Server 2003,Microsoft Clustering
Service ini ditingkatkan lagi kinerjanya.
·
Kluster untuk
pemerataan beban komputasi (Load-balancing cluster s) Kluster
kategori ini beroperasi dengan mendistribusikan bebanpekerjaan secara merata melalui beberapa node yang bekerja dibelakang (back-end node). Umumnya
kluster ini akan dikonfigurasikan sedemikian rupa dengan beberapa
front-end load-balancing redundan. Karena
setiap elemen dalam sebuah klusterload-balancing menawarkan layanan penuh, maka
dapat dikatakan bahwa komponen kluster tersebut merupakan sebuah
klusteraktif/kluster HA aktif, yang bisa menerima semua permintaan yangdiajukan
oleh klien.
·
Kluster hanya
untuk komputasi (C ompute cluster s)Seringnya, penggunaan utama kluster komputer
adalah untuk tujuan komputasi, ketimbang
penanganan operasi yang berorientasi I/O seperti layanan Web atau basis
data. Sebagai contoh, sebuah kluster
mungkin mendukung simulasi komputasional untuk perubahan cuaca atau tabrakan
kendaraan. Perbedaan utama untuk kategori ini dengan kategori lainnya adalah
seberapa eratkah penggabungan antar node-nya. Sebagai contoh, sebuah tugas komputasi mungkin membutuhkan
komunikasi yang sering antarnode--ini berarti bahwa kluster tersebut
menggunakan sebuah jaringan terdedikasi yang sama, yang terletak di lokasi
yang sangat berdekatan, dan mungkin juga merupakan node-node yang bersifat homogen. Desain kluster seperti ini, umumnya
disebut juga sebagai Beowulf Cluster . Ada juga desain yang lain, yakni saat sebuah tugas komputasi hanya
menggunakan satu atau beberapa node saja, dan membutuhkan komunikasi antar-node
yang sangat sedikit atau tidak ada sama sekali. Desain kluster ini,
sering disebut sebagai"Grid". Beberapa compute cluster yang dihubungkan secara erat yang didesain
sedemikian rupa, umumnya disebut dengan"Supercomputing". Beberapa
perangkat lunak Middleware sepertiMPI
atau Parallel Virtual Machine (PVM) mengizinkan
program compute clustering agar dapat
dijalankan di dalam kluster-klustertersebut.
·
Grid computing Grid pada umumnya adalah compute cluster, tapi difokuskan
pada throughput seperti utilitas perhitungan ketimbang menjalankan pekerjaan-pekerjaan
yang sangat erat yang biasanya dilakukan oleh Supercomputer. Seringnya, grid
memasukkan sekumpulan komputer, yang bisa saja didistribusikan secara
geografis, dan kadang diurus oleh
organisasi yang tidak saling berkaitan.
Grid
computing dioptimalkan untuk beban pekerjaan yang mencakup banyak pekerjaan
independen atau paket-paket pekerjaan, yang tidak harus berbagi data yang sama
antar pekerjaan selama proses komputasi dilakukan. Grid bertindak untuk mengatur
alokasi pekerjaan kepada komputer-komputer yang akan melakukan tugas tersebut
secara independen. Sumber daya, sepertihalnya media penyimpanan, mungkin bisa
saja digunakan bersama-sama dengan komputer lainnya, tapi hasil sementara dari
sebuah tugas tertentu tidak akan mempengaruhi pekerjaan lainnya yang sedang
berlangsung dalam komputer lainnya.
Sebagai
contoh grid yang sangat luas digunakan adalah proyek Folding@home, yang
menganalisis data yang akan digunakan oleh para peneliti untuk menemukan obat
untuk beberapa penyakitseperti Alzheimer dan juga kanker. Proyek lainnya,
adalah SETI@home, yang merupakan proyek grid terdistribusi yang palingbesar
hingga saat ini. Proyek SETI@home ini menggunakan palingtidak 3 juta komputer
rumahan yang berada di dalam computer rumahan untuk menganalisis data dari
teleskop radioobservatorium Arecibo ( Arecibo
Observator yradiotelescope), mencaribukti-bukti
keberadaan makhluk luar angkasa. Dalam dua kasustersebut, tidak ada komunikasi
antar node atau mediapenyimpanan yang digunakan bersama-sama.
c) Implementasi
Daftar
semi-tahunan organisasi TOP500, yang mencantumkan 500 komputer tercepat di
dunia umumnya mencakup banyak kluster. TOP500 adalah sebuah kolaborasi antara Universitas
Mannheim, Universitas Tennessee, dan National Energy Research Scientific Computing
Center di Lawrence Berkeley National Laboratory. Hingga 18 Juni 2008, superkomputer
tercepat yang tercatat di dalam TOP500 adalah sistem Roadrunner yang dimiliki
oleh Department of Energy Amerika Serikat, yang kinerjanya mencapai 1026
TeraFlops (Triliun Floating Point Operation per Second) dalam benchmark
High-Performance LINPACK.
d) Kluster dan Grid di Indonesia
Beberapa
kluster yang ada di Indonesia adalah:
b.
Berdasarkan jumlah instruksi dan
datanya, dapat dibagi ke dalam (lihatTaksonomi
Flynn)
Taksonomi Flynn dan model pemrosesan parallel
Keempat kelompok
komputer tersebut adalah :
1. Komputer SISD (Single
I nstruction stream-Single Data stream)
SIMD adalah singkatan dari Single Instruction, Multiple Data, merupakan sebuah istilah dalam
komputasi yang merujuk kepada sekumpulan operasi yang digunakan untuk menangani
jumlah data yang sangat banyak dalam paralel secara efisien, seperti yang
terjadi dalam prosesor vektor atau prosesor larik. SIMD pertama kali
dipopulerkan pada super komputer skala besar, meski sekarang telah ditemukan
pada komputer pribadi.
Contoh
aplikasi yang dapat mengambil keuntungan dari SIMD adalah aplikasi yang
memiliki nilai yang sama yang ditambahkan ke banyak titik data (data point), yang umum terjadi dalam aplikasi multimedia. Salah satu contoh
operasinya adalah mengubah brightness dari sebuah gambar. Setiap pixel dari
sebuah gambar 24-bit berisi tiga buah nilai berukuran 8-bit brightness dari
porsi warna merah ( red ), hijau ( green ), dan biru (blue). Untuk melakukan perubahan brightness, nilai R ,
G , dan B akan dibaca dari memori, dan
sebuah nilai baru ditambahkan (atau dikurangkan) terhadap nilai-nilaiR, G, B
tersebut dan nilai akhirnya akan
dikembalikan (ditulis kembali) kememori.
Prosesor yang
memiliki SIMD menawarkan dua keunggulan, yakni:
·
Data langsung
dapat dipahami dalam bentuk blok data, dibandingkan dengan beberapa data
yang terpisah secara sendiri-sendiri. Dengan menggunakan
blok data, prosesor dapat memuat data secara keseluruhan pada waktu yang sama.
Daripada melakukan beberapa instruksi "ambilpixel ini, lalu ambil
pixel itu, dst", sebuah prosesor SIMD akan melakukannya dalam sebuah instruksi saja, yaitu "ambil semua
pixel itu!"(istilah "semua" adalah nilai yang berbeda dari satu
desain ke desain lainnya). Jelas, hal ini dapat mengurangi banyak waktu
pemrosesan (akibat instruksi yang
dikeluarkan hanya satu untuk sekumpulan data), jika dibandingkan dengan
desain prosesor tradisional yang tidak memilikiSIMD (yang memberikan satu instruksi untuk satu data saja).
·
Sistem SIMD
umumnya hanya mencakup instruksi-instruksi yang dapat diaplikasikan terhadap
semua data dalam satu operasi. Dengan kata lain,sistem SIMD dapat
bekerja dengan memuat beberapa titik data secara sekaligus, dan melakukan operasi terhadap titik data secara sekaligus.
Sayangnya,
beberapa desainer SIMD terbentur dengan beberapa pertimbangan desain yang
berada di luar kontrol mereka. Salah satu pertimbangan tersebut adalah harus
menambahkan banyak register untuk menampung data yang akan diproses. Idealnya,
hal ini dapat dilakukandengan menambahkan unit SIMD ke dalam prosesor agar
memiliki registernya sendiri, tetapi beberapa desainer terpaksa
menggunakanregister yang telah ada, umumnya yang digunakan adalah register
floating-point. Register floating-point umumnya memiliki ukuran 64-bit, yang
lebihkecil dari pada yang dibutuhkan oleh SIMD agar bekerja secara optimal, meskipun
hal ini dapat mendatangkan masalah jika kode hendak mencobauntuk menggunakan
instruksi floating-point dan SIMD secara bersamaan.
Pada pendesainan
awal SIMD, terdapat beberapa prosesor yang khusus disiapkan untuk melakukan
tugas ini, yang seringnya disebut sebagai Digital Signal Processor (DSP).
Perbedaan utama antara SIMD dan DSPadalah DSP merupakan prosesor yang komplit
dengan set instruksinyasendiri (yang meskipun lebih sulit digunakan), sementara
SIMD hanya bergantung pada register general-purpose untuk menangani
detailprogram, dan instruksi SIMD hanya menangani manipulasi data.
Penggunaan instruksi
SIMD pertama kali dilakukan dalam super computer vektor dan dipopulerkan oleh
Cray pada tahun 1970-an. Akhir-akhir ini,SIMD skala kecil (64-bit atau 128-bit)
telah menjadi populer dalam CPUyang bersifat general purpose, yang dimulai pada
tahun 1994 dengan setinstruks MAX yang diaplikasikan pada Hewlett-Packard
PA-RISC. InstruksiSIMD, saat ini dapat ditemukan dalam kebanyakan prosesor,
seperti halnya AltiVec dalam prosesor PowerPC; Intel MMX, SSE, SSE2, SSE3,
SSE4, AMD3DNow! dalam prosesor Intel x86; VIS dalam prosesor prosesor SPARC;MAX
dalam Hewlett-Packard PA-RISC; MDMX serta MIPS-3D dalam MIPSserta MVI dalam
prosesor DEC Alpha. Meskipun demikian, perangkat lunak pada umumnya tidak
mengeksploitasi instruksi, dan bahkan instruksiini hanya digunakan dalam
aplikasi yang khusus, seperti pengolahangrafik.
Meskipun hal ini
secara umum telah membuktikan bahwa sulitnya mencariaplikasi komersial yang
dikhususkan untuk prosesor SIMD, ada beberapakesuksesan yang terjadi seperti
halnya aplikasi GAPP yang dikembangkan oleh Lockheed Martin. Versi yang lebih
baru dari GAPP bahkan menjadi aplikasi yang dapat memproses video secara
waktu-nyata (real-time) sepertihalnya konversi antar bermacam-macam
standar video yang (sepertikonversi NTSC ke PAL atau sebaliknya, NTSC ke HDTV
atau sebaliknyadan lain-lain), melakukan deinterlacing, pengurangan noise (noise
reduction),kompresi video, dan perbaikan
citra gambar (image enhancement).
2. Komputer SI MD
(Single Instruction stream-Multiple Data stream)
Pada
komputer SIMD terdapat lebih dari satu elemen pemrosesan yangdikendalikan oleh
sebuah unit pengendali yang sama. Seluruh elemenpemrosesan menerima dan
menjalankan instruksi yang sama yangdikirimkan unit pengendali, namun melakukan
operasi terhadap himpunan data yang berbeda yang berasal dari aliran data yang
berbeda pula. Skemaarsitektur global komputer SIMD dapat dilihat pada gambar .
3. Komputer MISD
(Multiple Instruction stream-Single Data stream)
Komputer
jenis ini memilikin unit pemroses yang
masing-masingmenerima dan mengoperasikan instruksi yang berbeda terhadap aliran
datayang sama, dikarenakan setiap unit pemroses memiliki unit pengendali yang
berbeda. Keluaran dari satu pemroses menjadi masukan bagipemroses berikutnya.
Belum ada perwujudan nyata dari komputer jenis inikecuali dalam bentuk
prototipe untuk penelitian. Skema arsitektur global komputer MISD dapat dilihat
pada gambar .
4. Komputer MIMD
(Multiple Instruction stream-Multiple Data stream)
Pada sistem komputer
MIMD murni terdapat interaksi di antaran pemroses.
Hal ini disebabkan seluruh aliran dari dan ke memori berasal dari space data yang sama bagi semua pemroses. Komputer MIMD
bersifat tightly coupledjika tingkat
interaksi antara pemroses tinggi dan disebut loosely coupled jika tingkat interaksi antara pemroses
rendah.c.
Berdasarkan kedekatan antar prosesor,
dapat dibagi ke dalam
·
Loosely coupled
·
Thightly coupled
Tidak ada komentar:
Posting Komentar