Anda di halaman 1dari 9

Paralelisme

Paralelisme (parallelism) lahir dari pendekatan yang biasa dipergunakan oleh para
perancang sistem untuk menerapkan konsep pemrosesan konkuren. Teknik ini meningkatkan
kecepatan proses dengan cara memperbanyak jumlah modul perangkat keras yang dapat
beroperasi secara simultan disertai dengan membentuk beberapa proses yang bekerja secara
simultan pada modul-modul perangkat keras tersebut. Secara formal, pemrosesan paralel
adalah sebuah bentuk efisien pemrosesan informasi yang menekankan pada eksploitasi dari
konkurensi kejadian-kejadian dalam proses komputasi. Pemrosesan paralel dapat terjadi pada
beberapa tingkatan (level) proses. Tingkatan tertinggi pemrosesan paralel terjadi pada proses
di antara banyak job (pekerjaan) atau pada program yang menggunakan multiprogramming,
time sharing, dan multiprocessing. Multiprogramming kemampuan eksekusi terhadap
beberapa proses perangkat lunak dalam sebuah system secara serentak, jika dibandingkan
dengan sebuah proses dalam satu waktu, dan timesharing berarti menyediakan pembagian
selang waktu yang tetap atau berubah-ubah untuk banyak program.Multiprocessing adalah
dukungan sebuah sistem untuk mendukung lebih dari satu prosesor dan mengalokasikan
tugas kepada prosesor-prosesor tersebut. Multiprocessing sering diimplementasikan dalam
perangkat keras (dengan menggunakan beberapa CPU sekaligus), sementara
multiprogramming sering digunakan dalam perangkat lunak. Sebuah sistem mungkin dapat
memiliki dua kemampuan tersebut, salah satu di antaranya, atau tidak sama sekali.

Pemrosesan paralel dapat juga terjadi pada proses di antara prosedurprosedur atau
perintah perintah (segmen program) pada sebuah program.Untuk meningkatkan kecepatan
proses komputasi, dapat ditempuh dua cara :

Peningkatan kecepatan perangkat keras.

Komponen utama perangkat keras komputer adalah processor. Meskipun kecepatan


processor dapat ditingkatkan terus, namun karena keterbatasan materi pembuatnya, tentu ada
suatu batas kecepatan yang tak mungkin lagi dapat dilewati. Karena itu timbul ide pembuatan
komputer multiprocessor. Dengan adanya banyak processor dalam satu komputer, pekerjaan
bisa dibagi-bagi kepada masing-masing processor. Dengan demikian lebih banyak proses
dapat dikerjakan dalam satu saat. Peningkatan kecepatan setiap proses bisa dicapai melalui
peningkatan kecepatan perangkat lunak. Kecepatan perangkat lunak sangat ditentukan oleh
algoritmanya.

ALVIN JULIOMETTIO
1411012010
Peningkatan kecepatan perangkat lunak.

Program komputer untuk komputer sekuensial harus menyediakan sederetan operasi


untuk dikerjakan oleh prosesor tunggal. Program komputer untuk komputer paralel harus
menyediakan sederetan operasi untuk beberapa prosesor untuk dikerjakan secara paralel,
termasuk operasi untuk mengatur dan mengitegrasikan prosesor-prosesor yang terpisah
tersebut mengerjakan suatu komputasi yang koheren. Kebutuhan akan pembuatan dan
pengaturan berbagai aktivitas komputasi paralel menambah dimensi baru proses dari
pemrograman komputer. Algoritma untuk problem yang spesifik harus diformulasikan
sedemikian rupa, agar menghasilkan aliran operasi paralel yang kemudian akan dieksekusi di
prosesor yang berbeda. Karena itu, meskipun arsitektur multiprosesor dan multikomputer
mempunyai pontensi yang tinggi untuk meningkatkan kemampuan komputasi, potensi ini
akan tercapai melalui pengertian yang baik mengenai bahasa pemrograman paralel dan
perancangan algoritma paralel.

Tingkat Prosesor Paralel Berdasarkan Tingkat Paralelismenya

Komputer Array
a. Prosesor array : beberapa prosesor yang bekerja sama untuk mengolah set instruksi yang
sama dan data yang berbeda beda atau biasa disebut SIMD (Single Instruction-stream
Multiple Data)
b. Prosesor vektor : beberapa prosesor yang disusun seperti pipeline.
Multiprosesor, yaitu sebuah sistem yang memiliki 2 prosesor atau lebih yang saling
berbagi memori.
Multikomputer, yaitu sebuah sistem yang memiliki 2 prosesor atau lebih yang masing-
masing prosesor memiliki memori sendiri.

Jenis-Jenis Pemrosesan Paralel

Pemrosesan paralel dapat dibagi ke dalam beberapa klasifikasi, sebagai berikut :


Berdasarkan simetri penjadwalannya, pemrosesan parallel dapat dibagi dalam beberapa jenis:
Asymmetric Multiprocessing (ASMP)
Symmetric Multiprocessing (SMP)
ClusteringPoliteknik Telkom Sistem Komputer

ALVIN JULIOMETTIO
1411012010
Berdasarkan aliran instruksi dan datanya, pemrosesan parallel dapat dibagi dalam beberapa
jenis:
SISD (Single Instruction on Single Data Stream)
Satu-satunya yang menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini
hanya digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai model
untuk komputasi tunggal. Pada computer jenis ini semua instruksi dikerjakan terurut satu
demi satu, tetapi juga dimungkinkan adanya overlapping (tumpang tindih fungsi yang
digunakan) dalam eksekusi setiap bagian instruksi (pipelining). Pada umumnya computer
SISD berupa computer yang terdiri atas satu buah pemroses (single processor). Namun
computer 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. Contoh mesin SISD adalah PC tradisional atau mainframe yang
tua.

SIMD (Single Instruction on Multiple Data Stream)


SIMD menggunakan banyak processor dengan instruksi yang sama, namun setiap
processor mengolah data yang berbeda. Sebagai contoh kita ingin mencari angka 27 pada
deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada setiap
processor kita menggunakan algoritma atau perintah yang sama, namun data yang diproses
berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hingga urutan
ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk
processor-processor yang lain. Beberapa contoh komputer yang menggunakan model
SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2
dan Cell Processor (GPU). Pada computer 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. Contoh dari SIMD adalah prosesor larik (array
processor), atau GPU

ALVIN JULIOMETTIO
1411012010
MISD (Multiple Instruction on 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 computer
jenis ini kecuali dalam bentuk prototype untuk penelitian dan tidak pernah dirilis secara
massal. MISD menggunakan banyak processor dengan setiap processor menggunakan
instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan
dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang sama pada contoh
model SIMD namun cara penyelesaian yang berbeda. Pada MISD jika pada komputer
pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data dari urutan 1-100,
namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap processor.
Sampai saat ini belum ada komputer yang menggunakan model MISD.

MIMD (Multiple Instruction on Multiple Data Stream)


Pada sistem computer MIMD murni terdapat interaksi di antara n pemroses. Hal ini
disebabkan seluruh aliran data dari dank e memori berasal dari space data yang sama bagi
semua pemroses. Komputer MIMD bersifat tightly coupled (global memory) jika tingkat
interaksi antara pemroses tinggi dan disebut loosely couple jika tingkat interaksi antara
pemroses rendah. Komputer ini memiliki beberapa prosesor yang bersifat otonomus yang
mampu melakukan instruksi yang berbeda pada data yang berbeda. Sistem terdistribusi
umumnya dikenal sebagi MIMD, entah itu menggunakan satu ruangan memori secara
bersama-sama atau sebuah ruangan memori yang terdistribusi.

ALVIN JULIOMETTIO
1411012010
Berdasarkan kedekatan antar prosesor, pemrosesan parallel dapat dibagi dalam beberapa
jenis:
Multikomputer (Loosely Coupled/ local memory) dengan memori yang terdistribusi
Multiprosesor (Tightly Coupled/ global memory) dengan memori yang dapat digunakan
bersama (shared memory)

Paralel Processing

Pemrosesan Paralel atau yang biasa disebut juga dengan komputasi parallel adalah
komputasi dua atau lebih tugas pada waktu bersamaan dengan tujuan untuk mempersingkat
waktu penyelesaian tugas-tugas tersebut dengan cara mengoptimalkan resource pada sistem
komputer yang ada untuk mencapai tujuan yang sama. Pemrosesan paralel dapat
mempersingkat waktu ekseskusi suatu program dengan cara membagi suatu program menjadi
bagian-bagian yang lebih kecil yang dapat dikerjakan pada masing-masing prosesor secara
bersamaan.

Tujuan utama dari pemrosesan paralel adalah untuk meningkatkan performa komputasi.
Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama),
semakin banyak pekerjaan yang bisa diselesaikan. Pemrosesan paralel membagi beban kerja
dan mendistribusikannya pada komputer-komputer lain yang terdapat dalam sistem
untukmenyelesaikan suatu masalah.Sistem yang akan dibangun tidak akan menggunakan
komputer yang didesikasikan secara khusus untuk keperluan pemrosesan paralel melainkan
menggunakan komputer yang telah ada.

ALVIN JULIOMETTIO
1411012010
Tipe-tipe Parallelism

Result Paralelisme
Result Paralelisme yang sering disebut sebagai Embarrassingly Parallel atau Perfect
Paralel adalah tipe paralelisme dimana komputasinya dapat dibagi menjadi beberapa tugas
independen yang mempunyai struktur sama. Data struktur suatu tugas dibagi menjadi
beberapa bagian yang berstruktur sama. Contoh tugas yang bisa diselesaikan dengan
Result Parallelism adalah Simulasi Montecarlo.

Specialist Paralelisme
Cara kerja Specialist Parallelisme adalah dengan mengerjakan beberapa tugas secara
bersamaan pada prosesor yang berbeda . Setiap komputer mengerjakan tugas tertentu.
Contohnya penggunaanya adalah pada simulasi pabrik kimia, satu prosesor
mensimulasikan proses sebelum reaksi kimia, satu prosesor mensimulasikan reaksi pada
tahap awal, dan prosesor lainnya mensimulasikan proses penyulingan hasil, dan
seterusnya.

Agenda Paralelisme
Tipe paralelisme ini mempunyai daftar yang harus dikerjakan oleh sistem komputer .
Semua komputer yang terdapat pada sistem dapat mengakses daftar tersebut. Pada Model
MW (Manager Worker) terdapat pengelompokan komputer menjadi dua yaitu :
a) Manager : bertugas memulai perhitungan, memonitor kemajuan tugas, melayani
permintaan worker. User berkomunikasi dengan sistem komputer melalui komputer
yang berfungsi sebagai manager ini.
b) Worker : mengerjakan tugas-tugas yang diberikan oleh manager. Kerja komputer ini
dimulai setelah ada perintah dari manager dan diakhiri oleh manager.

Pesan Terdistribusi dan Lingkungan Pemrograman (Distributed Messaging and Programming


Enviroment) hubungannya dengan pemrosesan paralel ialah pesan sebagai sesuatu ( objek )
pada pemrosesan itu sendiri sehingga kita harus mendeskripsikan pesan ( message ) itu .

Metode Pengiriman pesan (message passing)

Messages adalah urutan bytes yang dikirimkan antar proses. Pengirim dan penerima harus
mempunyai kesepakatan mengenai struktur pesan sehingga isi pesan dapat diterjemahkan
dengan benar. Pada prinsipnya cara pengiriman pesan adalah sederhana. Proses A mengirim

ALVIN JULIOMETTIO
1411012010
data buffer sebagai sebuah pesan ke proses B. Pada saat bersamaan proses B menunggu
datangnya pesan dari proses A. Ketika pesan tersebut maka proses B akan men-copy pesan
tersebut di memori lokalnya. Adapun Metode Pengiriman pesan (message passing) terdapat
beberapa metode dalam pengiriman pesan yaitu :

Synchronous Message Passing


Cara pengiriman menggunakan metode ini ialah pengirim menunggu untuk mengirim
pesan sampai penerima siap untuk menerima pesan. Oleh karena itu tidak ada buffering.
Selain itu Pengirim tidak bisa mengirim pesan untuk dirinya sendiri.

Ansynchronous Message Passing


Pengirim akan mengirim pesan kapanpun dia mau. Pengirim tidak peduli ketika penerima
belum siap untuk menerima pesan. Oleh karena itu diperlukan buffering untuk
menampung pesan sementara sampai penerima siap menerima pesan. Selain itu pengirim
dapat pesan untuk dirinya sendiri. Selain berdasarkan metode pengiriman pesan diatas,
pengiriman pesan (message passing) dibedakan berdasarkan jumlah penerima pesan yaitu:
Point to Point dan Broadcast. Perbedaan mendasar keduanya adalah jumlah penerima yang
menerima pesan. Pada Point to Point penerimanya tunggal sedangkan pada broadcast
jumlah penerimanya banyak.

Paralelisme Data
Teknik paralelisme data merupakan teknik yang paling banyak digunakan dalam
program paralel. Teknik ini lahir dari penelitian bahwa aplikasi utama komputasi paralel
adalah dalam bid ang sain dan engineer, yang umumnya melibatkan array multi-dimensi yang
sangat besar. Dalam program sekuensial biasa, array ini dimanipulasi dengan
mempergunakan perulangan bersarang untuk mendapatkan hasil. Kebanyakan program
paralel dibentuk dengan mengatur ulang algoritma sekuensial agar perulangan bersarang
tersebut dapat dilaksanakan secara paralel. Paralelisme data menunjukkan bahwa basis data
dipergunakan sebagai dasar untuk membentuk aktifitas paralel, dimana bagian yang berbeda
dari basis data akan diproses secara paralel. Dengan kata lain paralelisme dalam program ini
dibentuk dari penerapan operasi-operasi yang sama ke bagian array data yang berbeda.
Prinsip paralelisme data ini berlaku untuk pemrograman multiprosesor dan multikomputer.

ALVIN JULIOMETTIO
1411012010
Partisi Data
Merupakan teknik khusus dari Paralelisme Data, dimana data disebar ke dalam memori-
memori lokal multikomputer. Sebuah proses paralel kemudian ditugaskan untuk
mengoperasikan masingmasing bagian data. Proses tersebut harus terdapat dalam lokal
memori yang sama dengan bagian data, karena itu proses dapat mengakses data tersebut
secara lokal. Untuk memperoleh kinerja yang baik, setiap proses harus memperhatikan
variabel-variabel dan data-data lokalnya masing-masing. Jika suatu proses membutuhkan
akses data yang terdapat dalam remote memori, maka hal ini dapat dilakukan melalui
jaringan message passing yang menghubungkan prosesor-prosesor. Karena komunikasi antar
prosesor ini menyebabkan terjadinya waktu tunda, maka messsage passing ini sebaiknya
dilakukan dalam frekuensi yang relatif kecil. Dapat disimpulkan bahwa tujuan dari partisi
data adalah untuk mereduksi waktu tunda yang diakibatkan komunikasi messsage passing
antar prosesor. Algoritma paralel mengatur agar setiap proses dapat melakukan komputasi
dengan lokal data masing-masing.

Algoritma Relaksasi
Pada algoritma ini, setiap proses tidak membutuhkan sinkronisasi dan komunikasi antar
proses. Meskipun prosesor mengakses data yang sama, setiap prosesor dapat melakukan
komputasi sendiri tanpa tergantung pada data antara yang dihasilkan oleh proses lain. Contoh
algoritma relaksasi adalah algoritma perkalian matrik, pengurutan dengan mengunakan
metode ranksort dan lain sebagainya.

Paralelisme Sinkron
Aplikasi praktis dari komputasi paralel adalah untuk problem yang melibatkan array multi-
dimensi yang sangat besar. Problem tersebut mempunyai peluang yang baik untuk
paralelisme data karena elemen yang berbeda dalam array dapat diproses secara paralel.
Teknik komputasi numerik pada array ini biasanya iteratif, dan setiap iterasi akan
mempengaruhi iterasi berikutnya untuk menuju solusi akhir. Misalnya saja untuk solusi
persamaan numerik pada sistem yang besar. Umumnya, setiap iterasi mempergunakan data
yang dihasilkan oleh iterasi sebelumnya dan program akhirnya menuju suatu solusi dengan
akurasi yang dibutuhkan. Algoritma iterasi ini mempunyai peluang paralelisme pada setiap
iterasinya. Beberapa proses parallel dapat dibentuk untuk bekerja pada array bagian yang
berbeda. Namun setelah setiap iterasi, prosesproses harus disinkronkan, karena hasil yang
diproduksi oleh satu proses dipergunakan oleh prosesproses lain pada iterasi berikutnya.
Teknik pemrograman paralel seperti ini disebut paralelisme sinkron. Contohnya adalah

ALVIN JULIOMETTIO
1411012010
perhitungan numerik pada Metode Eliminasi Gauss. Pada paralelisme sinkron ini, struktur
umum programnya biasanya terdiri dari perulangan FORALL yang akan membentuk
sejumlah besar proses paralel untuk dioperasikan pada bagian array data yang berbeda. Setiap
proses diulang dan disinkronkan pada akhir iterasi. Tujuan dari sinkronisasi ini adalah untuk
meyakinkan bahwa seluruh proses telah menyelesaikan iterasi yang sedang berlangsung
,sebelum terdapat suatu proses yang memulai iterasi berikutnya.

Komputasi Pipeline
Pada komputasi pipeline, data dialirkan melalui seluruh struktur proses, dimana masing-
masing proses membentuk tahap-tahap tertentu dari keseluruhan komputasi . Algoritma ini
dapat berjalan dengan baik pada multikomputer, karena adanya aliran data dan tidak banyak
memerlukan akses ke data bersama. Contoh komputasi pipeline adalah teknik penyulihan
mundur yang merupakan bagian dari metoda Eliminasi.

Synchronization Delay
Ketika proses paralel disinkronkan, berarti bahwa suatu proses akan harus menunggu
proses lainnya. Dalam beberapa program paralel, jumlah waktu tunda ini dapat menyebabkan
bottleneck dan mengurangi speedup keseluruhan. Load Imbalance Dalam beberapa program
paralel, tugas komputasi dibangun secara dinamis dan tidak dapat diperkirakan sebelumnya.
Karena itu harus selalu ditugaskan ke prosesor-prosesor sejalan dengan pembangunan tugas
tersebut. Hal ini dapat menyebabkan suatu prosesor tidak bekerja (idle), sementara prosesor
lainnya tidak dapat mengerjakan task yang ditugaskannya.

Hubungan antara Komputasi Modern dan Parallel Processing


Pemrosesan paralel juga disebut dengan komputasi paralel. Dalam upaya mengurangi
biaya, maka pada pengolahan komputasi paralel terdapat alternatif pilihan yang layak.
Sehingga keterkaitan antara keduanya sangatlah erat. Istilah pengolahan paralel digunakan
untuk mewakili kelas besar teknik yang digunakan untuk memberikan tugas pengolahan
simultan data untuk tujuan meningkatkan kecepatan komputasi dari sistem komputer Kinerja
komputasi dengan menggunakan paralel processing itu menggunakan dan memanfaatkan
beberapa komputer atau CPU untuk menemukan suatu pemecahan masalah dari masalah
yang ada. Sehingga dapat diselesaikan dengan cepat daripada menggunakan satu komputer
saja. Komputasi dengan paralel processing akan menggabungkan beberapa CPU, dan
membagi-bagi tugas untuk masing-masing CPU tersebut.

ALVIN JULIOMETTIO
1411012010

Anda mungkin juga menyukai