1. Prosesor Paralel
Pemrosesan paralel (parallel
processing) adalah penggunaan 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 berbeda-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 paralel untuk merealisasikan komputasi.
Pemrograman paralel 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 performa komputasi. Semakin banyak hal yang
bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak
pekerjaan yang bisa diselesaikan.
Komputasi paralel membutuhkan:
1. Algoritma
2. Bahasa pemrograman
3. Compiler
Sebagian besar komputer hanya
mempunyai satu CPU, namun ada yang mempunyai lebih dari satu. Bahkan juga ada
komputer 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 distributed
processing software. Parallel processing berbeda dengan multitasking, yaitu
satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut
juga parallel computing. Yang terdiri dari empat kelompok komputer.
2. Jaringan Interkoneksi
Komunikasi diantara
terminal-terminal yang berbeda harus dapat dilakukan dengan suatu media tertentu.
Interkoneksi yang efektif antara prosesor dan modul memori sangat penting dalam
lingkungan komputer. Menggunakan arsitektur bertopologi bus bukan merupakan
solusi yang praktis karena bus hanya sebuah pilihan yang baik ketika digunakan
untuk menghubungkan komponen-komponen dengan jumlah yang sedikit.
Jumlah komponen dalam sebuah
modul IC bertambah seiring waktu. Oleh karena itu, topologi bus bukan topologi yang cocok untuk kebutuhan
interkoneksi komponen-komponen di dalam modul IC. Selain itu juga tidak dapat
diskalakan, diuji, dan kurang dapat disesuaikan, serta menghasilkan kinerja
toleransi kesalahan yang kecil.
Di sisi lain, sebuah crossbar menyediakan interkoneksi penuh di antara
semua terminal dari suatu sistem
tetapi dianggap sangat kompleks,
mahal untuk membuatnya, dan sulit untuk dikendalikan. Untuk alasan ini jaringan
interkoneksi merupakan solusi media komunikasi yang baik untuk sistem komputer
dan telekomunikasi. Jaringan ini membatasi jalur-jalur di antara terminal
komunikasi yang berbeda untuk mengurangi kerumitan dalam menyusun elemen
switching.
3. Mesin SIMD
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.
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 komplet 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).
Sumber:
http://dimaswibisono23.blogspot.co.id/2016/12/prosesor-paralel.html