PROSESOR PARALEL
Parallel PROCESSING Pemrosesan
paralel (parallel processing) adalah penggunakan lebih dari satu CPU untuk
menjalankan sebuah program secara simultan. Idealnya, parallel processing
membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan.
Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan
dengan memanfaatkan beberapa komputer independen secara bersamaan. Ini umumnya
diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus
mengolah data dalam jumlah besar (di industri keuangan, bioinformatika, dll)
ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua umum ditemui
di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika
(fisika komputasi), kimia (kimia komputasi) dll.
TUJUAN PARALLEL PROCESSING
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.
PARALLEL PROCESSING
Komputasi paralel 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 paralel untuk merealisasikan komputasi.
Pemrograman Paralel sendiri adalah teknik pemrograman komputer yang
memungkinkan eksekusi perintah/operasi secara bersamaan. Bila komputer yang
digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah
yang terhubung dalam satu jaringan komputer, biasanya.
Interkoneksi adalah hubungan yang terjadi antara satu
koneksi dengan koneksi yang lain. Interkoneksi antar jaringan adalah hubungan
atau koneksi antara satu jaringan dengan jaringan yang lain. Jaringan yang
terhubung ini bukan hanya jaringan telekomunikasi namun semua bentuk jaringan
yang melakukan interkoneksi.
Banyak yang menganalisa interkoneksi antar jaringan adalah
hubungan antar jaringan telekomunikasi. Namun secara harfiah interkoneksi
jaringan tidak hanya mengarah ke jaringan telekomunikasi, namun ke semua
jaringan.
Topology nya adalah bagaimana sebuah jaringan itu terbentuk, dan bagaimana keamanan dari jaringan itu sendiri. Namun fokus permasalahan disini adalah interkoneksi antara jaringan komputer, bukan kontes astaga.com lifestyle on the net.
Topology nya adalah bagaimana sebuah jaringan itu terbentuk, dan bagaimana keamanan dari jaringan itu sendiri. Namun fokus permasalahan disini adalah interkoneksi antara jaringan komputer, bukan kontes astaga.com lifestyle on the net.
Komputer yang terhubung dengan komputer yang lain melalui
jaringan dapat melakukan koneksi dengan konfigurasi jaringan. Koneksi ini
memerlukan sebuah Port Koneksi pada kartu jaringan (NIC = Network Interface
Card) yang berfungsi sebagai jembatan dari komputer ke sebuah jaringan.
Peralatan yang dibutuhkan untuk koneksi antara jaringan diantaranya adalah :
1. NIC (Network Interface Card)
Fungsi
NIC selain itu adalah untuk mengubah data paralel dalam sebuah bus komputer ke
dalam bentuk data serial. Untuk koneksi ini NIC membutuhkan sebuah penghubung
yang berupa kabel, kabel ini dapat berupa kabel UTP atau Fiber Optic.
2. HUB
Hub ini ada dua jenis, yaitu passive hub dan active
hub. Fungsi hub adalah sebagai terminal penghubunga antara dua koneksi atau
lebih. Dimana hub ini sebagai terminal persinggahan dan menambah node didalam
sebuah LAN (Local Area Network).
3. Repeater
Repeater
ini berfungsi memperluas cakupan suatu jaringan tanpa melakukan filter
terhadap sinyal yang masuk dan keluar. Tugas utamanya mensikronisasikan dan
mentransmisikan ulang sinyal dari suatu segmen ke segmen yang lain didalam
sebuah jaringan.
4. Bridge
Fungsi
Bridge kurang lebih sama dengan repeater namun Bridge melakukan filter terhadap
sinyal, sehingga setiap segmen tidak dipengaruhi oleh segmen yang lain. Selain
itu Bridge juga dapat menghubungkan jaringan yang berbeda segmen protokol
aksesnya, namun dengan syarat protokol komunikasinya sama.
5. Router
Fungsi router adalah menentukan jalur routing dan
mengirimkan paket-paket informasi
pada internet yang bekerja pada layer 3 OSI.
A. SIMD
(Single Instruction Stream Multiple 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 superkomputer
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-nilai R, G, B tersebut dan nilai akhirnya akan dikembalikan
(ditulis kembali) ke memori.
Komputer
yang mempunyai beberapa unit prosesor di bawah satu supervisi satu unit common
control. Setiap prosesor menerima instruksi yang sama dari unit kontrol, tetapi
beroperasi pada data yang berbeda.
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 "ambil pixel 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 memiliki
SIMD (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 dilakukan dengan menambahkan unit SIMD ke dalam prosesor agar
memiliki registernya sendiri, tetapi beberapa desainer terpaksa menggunakan
register yang telah ada, umumnya yang digunakan adalah register floating-point.
Register
floating-point umumnya memiliki ukuran 64-bit, yang lebih kecil daripada yang
dibutuhkan oleh SIMD agar bekerja secara optimal, meskipun hal ini dapat
mendatangkan masalah jika kode hendak mencoba untuk 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 DSP adalah DSP merupakan prosesor yang
komplit dengan set instruksinya sendiri (yang meskipun lebih sulit digunakan),
sementara SIMD hanya bergantung pada register general-purpose untuk menangani
detail program, dan instruksi SIMD hanya menangani manipulasi data.
Penggunaan
instruksi SIMD pertama kali dilakukan dalam superkomputer vektor dan
dipopulerkan oleh Cray pada tahun 1970-an. Akhir-akhir ini, SIMD skala kecil
(64-bit atau 128-bit) telah menjadi populer dalam CPU yang bersifat general
purpose, yang dimulai pada tahun 1994 dengan set instruks MAX yang
diaplikasikan pada Hewlett-Packard PA-RISC. Instruksi SIMD, saat ini dapat
ditemukan dalam kebanyakan prosesor, seperti halnya AltiVec dalam prosesor PowerPC; Intel MMX, SSE, SSE2,
SSE3, SSE4, AMD 3DNow!
dalam prosesor Intel x86; VIS dalam prosesor prosesor SPARC;
MAX dalam Hewlett-Packard PA-RISC; MDMX serta MIPS-3D dalam MIPS
serta MVI dalam prosesor DEC Alpha.
Meskipun demikian, perangkat lunak pada umumnya tidak mengeksploitasi
instruksi, dan bahkan instruksi ini hanya digunakan dalam aplikasi yang khusus,
seperti pengolahan grafik.
Meskipun
hal ini secara umum telah membuktikan bahwa sulitnya mencari aplikasi komersial
yang dikhususkan untuk prosesor SIMD, ada beberapa kesuksesan 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) seperti halnya konversi antar
bermacam-macam standar video yang (seperti konversi NTSC
ke PAL
atau sebaliknya, NTSC ke HDTV
atau sebaliknya dan lain-lain), melakukan deinterlacing, pengurangan noise (noise
reduction), kompresi video,
dan perbaikan citra gambar (image enhancement).
Mesin SIMD
secara umum mempunyai karakteristik sebagai berikut :
·
Mendistribusi proses ke sejumlah besar hardware
·
Beroperasi terhadap berbagai elemen data yang berbeda
·
Melaksanakan komputasi yang sama terhadap semua elemen data
Sistem
Komputer kategori SIMD
· Beberapa Processor Unit
(Processing Element) disupervisi oleh Control Unit yang sama.
· Semua Processing Element menerima
instruksi yang sama dari control unit tetapi mengeksekusi data yang berbeda dari
alur data yang berbeda pula.
· Subsistem memori berisi
modul-modul memori.
B. 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.
Analisa
Algoritma Paralel
Pada saat
sebuah algoritma digunakan untuk memecahkan sebuah problem, maka performance
dari algoritma tersebut akan dinilai. Hal ini berlaku untuk algoritma
sekuensial maupun algoritma paralel. Penampilan sebuah algoritma pengolahan
peralel dapat dinilai dari beberapa kriteria, seperti running time dan
banyaknya prosesor yang digunakan.
Running
Time
Running
time adalah waktu yang digunakan oleh sebuah algoritma untuk menyelesaikan
masalah pada sebuah komputer paralel dihitung mulai dari saat algoritma mulai
hingga saat algoritma berhenti. Jika prosesor-prosesornya tidak mulai dan
selesai pada saat yang bersamaan, maka running time dihitung mulai saat
komputasi pada prosesor pertama dimulai hingga pada saat komputasi pada
prosesor terakhir selesai.
Counting
Steps
Untuk
menentukan running time, secara teoritis dilakukan analisa untuk menentukan
waktu yang dibutuhkan sebuah algoritma dalam mencari solusi dari sebuah
masalah. Hal ini dilakukan dengan cara menghitung banyaknya operasi dasar, atau
step (langkah), yang dilakukan oleh algoritma untuk keadaan terburuknya (worst
case).
Langkah-langkah
yang diambil oleh sebuah algoritma dibedakan ke dalam dua jenis yaitu :
·
Computational step
Sebuah
computational step adalah sebuah operasi aritmetika atau operasi logika yang
dilakukan terhadap sebuah data dalam sebuah prosesor.
·
Routing step.
Pada
routing step, sebuah data akan melakukan perjalanan dari satu prosesor ke
prosesor lain melalui shared memory atau melalui jaringan komunikasi.
Speedup
·
Pengukuran speedup sebuah algoritma paralel adalah salah satu cara untuk
mengevaluasi kinerja algoritma tersebut.
·
Speedup adalah perbandingan antara waktu yang diperlukan algoritma sekuensial
yang paling efisien untuk melakukan komputasi dengan waktu yang dibutuhkan
untuk melakukan komputasi yang sama pada sebuah mesin pipeline atau paralel.
ARSITEKTUR PENGGANTI.
Dalam bidang teknik komputer,
arsitektur pengganti merupakan konsep perencanaan atau struktr pengoperasian
dasar dalam komputer atau bisa dikatakan rencana cetak biru dan deskripsi
fungsional kebutuhan dari perangkat keras yang didesain. implementasi
perencanaan dari masing-masing bagian seperti CPU, RAM, ROM, Memory Cache, dll.
SUMBER: