Parallelism Concept
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.
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 Paralelisme
Berdasarkan tingkat paralelismenya prosesor paralel dapat dibagi menjadi
beberapa tingkat sebagai berikut :
1. 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.
2. Multiprosesor, yaitu sebuah sistem yang memiliki 2 prosesor atau
lebih yang saling berbagi memori.
3. 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 :
1. Berdasarkan simetri penjadwalannya, pemrosesan parallel dapat
dibagi dalam beberapa jenis:
a) Asymmetric Multiprocessing (ASMP)
b) Symmetric Multiprocessing (SMP)
c) ClusteringPoliteknik Telkom Sistem Komputer
2. Berdasarkan aliran instruksi dan datanya, pemrosesan parallel dapat
dibagi dalam beberapa jenis:
a) SISD (Single Instruction on Single Data Stream)
b) SIMD (Single Instruction on Multiple Data Stream)
c) MISD (Multiple Instruction on Single Data Stream)
d) MIMD (Multiple Instruction on Multiple Data Stream)
3. Berdasarkan kedekatan antar prosesor, pemrosesan parallel dapat dibagi
dalam beberapa jenis:
a) Multikomputer (Loosely Coupled/ local memory) dengan memori yang
terdistribusi
b) Multiprosesor (Tightly Coupled/ global memory) dengan memori yang
dapat digunakan bersama (shared memory)
Distributed Processing
Mengerjakan semua proses pengolahan data
secara bersama antara komputer pusat dengan beberapa komputer yang lebih kecil
dan saling dihubungkan melalui jalur komunikasi. Setiap komputer tersebut
memiliki prosesor mandiri sehingga mampu mengolah sebagian data secara
terpisah, kemudian hasil pengolahan tadi digabungkan menjadi satu penyelesaian
total. Jika salah satu prosesor mengalami kegagalan atau masalah yang lain akan
mengambil alih tugasnya.
Architectural Parallel Computer
Dalam
taksonomi arsitektur paralel ada dua keluarga arsitektur paralel yang banyak diterapkan
adalah: SIMD dan MIMD, dimana untuk mesin yang murni MISD tidak ada.
Arsitektur SIMD
Mesin SIMD secara umum mempunyai
karakteristik sbb:
1. Mendistribusi
proses ke sejumlah besar hardware
2. Beroperasi
terhadap berbagai elemen data yang berbeda
3. Melaksanakan
komputasi yang sama terhadap semua elemen data
Peningkatan kecepatan pada SIMD
proporsional dengan jumlah hardware (elemen pemroses)
yang tersedia.
Arsitektur
MISD
Prosesor pipeline adalah
prosesor MISD yang bekerja berdasarkan prinsip pipelining. Pada pipeline proses
dapat dibagi menjadi beberapa tahap dan beberapa proses dapat dilaksanakan secara
simultan. Pada gambar dibawah dapat dilihat perbedaan proses serial dengan
pipeline
Waktu eksekusi lebih cepat
dibandingkan dengan proses serial.
Prinsip pipelining dapat
digunakan pada dua level yang berbeda:
1. Pipeline
unit aritmatika
2. Pipeline
unit kontrol Waktu eksekusi lebih cepat dibandingkan dengan proses serial.
Operasi pipeline dapat
dilaksanakan secara siklus yaitu cyclic pipeline, dimana dapat dibagi dalam 5
tahap:
• Operasi baca (dari shared
memories)
• Operasi transfer (memori ke
elemen pemroses)
• Operasi eksekusi (di elemen
pemroses)
• Operasi transfer (elemen
pemroses ke memori)
• Operasi simpan (di shared
memories)
Comments
Post a Comment