Pengertian
Komputasi paralel adalah jenis perhitungan
yang banyak perhitungan atau pelaksanaan proses yang dilakukan secara
bersamaan. besar masalah dapat sering dibagi menjadi lebih kecil, yang kemudian
dapat diselesaikan pada waktu yang sama. Ada berbagai bentuk komputasi paralel:
bit-tingkat, tingkat instruksi, data, dan tugas paralelisme. Paralelisme telah
bekerja sendiri selama bertahun-tahun, terutama dalam kinerja tinggi komputasi,
tetapi kepentingan di dalamnya telah tumbuh akuntabel frequency.lately Rokok di
sini karena kendala fisik yang mencegah frekuensi skala.
Komputasi paralel terkait erat dengan
komputasi konkuren — mereka sering digunakan bersama-sama, dan sering
digabungkan, meskipun keduanya berbeda: mungkin untuk memiliki paralelisme
tanpa concurrency (seperti paralelisme bit-tingkat), dan concurrency tanpa
paralelisme (seperti multitasking oleh time-sharing single core CPU). Komputasi
paralel, tugas komputasi biasanya dipecah dalam beberapa, sering banyak, sangat
mirip subtugas yang dapat diproses secara independen dan hasil yang digabung
setelah itu, setelah selesai. Sebaliknya, dalam komputasi konkuren, berbagai
proses sering tidak alamat terkait tugas; ketika mereka melakukannya, seperti
khas dalam komputasi terdistribusi, tugas-tugas terpisah yang mungkin memiliki
sifat bervariasi dan sering memerlukan beberapa komunikasi antar proses selama
eksekusi.
Dalam beberapa kasus paralelisme transparan
untuk programmer, seperti di paralelisme bit-tingkat atau instruksi-tingkat,
tetapi secara eksplisit paralel algoritma, terutama mereka yang menggunakan
concurrency, lebih sulit untuk menulis daripada berurutan.
Komputer parallel pada Komputer arsitektur
Komputer paralel adalah seperangkat prosesor yang dapat bekerja sama untuk memecahkan masalah komputasi. Definisi ini cukup luas untuk mencakup superkomputer paralel yang ratusan atau ribuan prosesor, Jaringan workstation, multi-prosesor workstation dan embedded System.
Latar Belakang
Secara tradisional, perangkat lunak komputer telah ditulis untuk serial komputasi. Untuk memecahkan masalah, algoritma dibangun dan diimplementasikan sebagai aliran serial petunjuk. Petunjuk ini dijalankan pada unit pemroses sentral pada satu komputer. Hanya satu instruksi dapat mengeksekusi pada waktu — setelah instruksi itu selesai, berikutnya dijalankan.
Komputasi paralel, di sisi lain, menggunakan
beberapa elemen pengolahan secara bersamaan untuk memecahkan masalah. Hal ini
dicapai dengan melanggar masalah menjadi bagian independen sehingga setiap
elemen pengolahan dapat mengeksekusi bagiannya dari algoritma bersamaan dengan
yang lain. Pengolahan elemen dapat beragam dan mencakup sumber daya seperti
satu komputer dengan prosesor ganda, beberapa jaringan komputer, perangkat
keras khusus, atau kombinasi di atas.
Tipe Paralel
Bit-level parallelism
Dari munculnya teknologi fabrikasi chip
komputer integrasi sangat-besar-scale (VLSI) di tahun 1970-an hingga sekitar
tahun 1986, speed-up dalam arsitektur komputer didorong oleh menggandakan
ukuran kata komputer-jumlah informasi prosesor dapat memanipulasi per siklus.
Meningkatkan ukuran kata mengurangi jumlah instruksi prosesor harus menjalankan
untuk melakukan operasi pada variabel yang berukuran lebih besar dari panjang
kata. Misalnya, dimana sebuah 8-bit prosesor harus menambahkan dua bilangan
bulat 16-bit, prosesor harus pertama Tambahkan 8 bit rendah-order dari setiap
integer yang menggunakan instruksi penambahan standar, kemudian tambahkan 8 bit
tingkat tinggi yang menggunakan instruksi tambah-dengan-membawa dan membawa
sedikit dari penambahan pesanan lebih rendah; dengan demikian, sebuah 8-bit
prosesor memerlukan dua petunjuk untuk menyelesaikan sebuah operasi yang
tunggal, yang mana 16-bit prosesor yang akan mampu menyelesaikan operasi dengan
instruksi yang tunggal.
Instruction-level parallelism
Prosesor kanonik tanpa pipa.
Ini membutuhkan waktu lima jam siklus untuk menyelesaikan satu instruksi dan dengan
demikian prosesor dapat mengeluarkan subscalar kinerja (IPC = 0.2 < 1).
Kanonik lima tahap pipelined
prosesor. Dalam kasus terbaik skenario, dibutuhkan satu jam siklus untuk menyelesaikan
satu instruksi dan dengan demikian prosesor dapat mengeluarkan skalar kinerja (IPC
= 1).
Sebuah program komputer adalah, pada dasarnya, aliran instruksi dieksekusi oleh prosesor. Tanpa paralelisme instruksi-tingkat, prosesor yang hanya bisa mengeluarkan kurang dari satu instruksi per jam siklus (IPC < 1). Prosesor ini dikenal sebagai prosesor subscalar. Petunjuk ini dapat memesan kembali dan digabungkan ke dalam kelompok yang kemudian dilakukan secara paralel tanpa mengubah hasil dari program. Hal ini dikenal sebagai tingkat instruksi paralelisme. Kemajuan dalam tingkat pengajaran paralelisme didominasi arsitektur komputer dari pertengahan 1980-an hingga pertengahan 1990-an.
Semua prosesor yang modern memiliki
multi-tahap instruksi pipa. Setiap tahap dalam pipa yang berkaitan dengan
tindakan yang berbeda prosesor melakukan pada bahwa instruksi pada tahap itu;
prosesor dengan N-tahap pipa dapat memiliki hingga N petunjuk yang berbeda pada
berbagai tahap penyelesaian dan dengan demikian dapat mengeluarkan satu
instruksi per jam siklus (IPC = 1). Prosesor ini dikenal sebagai prosesor
skalar. Contoh kanonik prosesor yang pipelined adalah sebuah prosesor RISC,
dengan lima tahap: instruksi fetch (jika), instruksi men-decode (ID),
melaksanakan (EX), memori akses (MEM), dan daftar menulis kembali (WB).
Prosesor Pentium 4 telah pipa 35-tahap
Task parallelism
Kanonik lima tahap pipelined
superscalar prosesor. Dalam kasus terbaik skenario, dibutuhkan satu jam siklus untuk
menyelesaikan dua instruksi dan dengan demikian prosesor dapat mengeluarkan superscalar
kinerja (IPC = 2 > 1).
Tugas parallelisms adalah karakteristik program paralel bahwa "perhitungan yang sama sekali berbeda dapat dilakukan pada kedua sama atau berbeda kumpulan data". ini kontras dengan data paralelisme, mana perhitungan yang sama dilakukan pada sama atau berbeda kumpulan data. Tugas paralelisme melibatkan dekomposisi tugas ke sub-tugas dan kemudian mengalokasikan masing-masing sub-tugas untuk prosesor untuk eksekusi. Prosesor kemudian akan melaksanakan sub-tugas ini secara simultan dan sering sama. Tugas paralelisme tidak biasanya skala dengan ukuran masalah
Classes of parallel computers
Komputer paralel dapat digolongkan kira-kira
sesuai dengan tingkat di mana perangkat keras yang mendukung paralelisme.
Klasifikasi ini luas analog dengan jarak antara node dasar komputasi. Ini tidak
saling eksklusif; Misalnya, kelompok multiprocessors simetris relatif umum.
Multi-core computing
Prosesor multi core adalah prosesor yang
mencakup beberapa unit pengolahan (disebut "Core") pada chip sama.
Prosesor ini berbeda dari prosesor yang superscalar, yang mencakup beberapa
unit eksekusi dan dapat mengeluarkan beberapa petunjuk per jam siklus dari satu
instruksi stream (utas); Sebaliknya, multi-prosesor inti dapat mengeluarkan
beberapa instruksi per jam siklus dari beberapa aliran instruksi. IBM sel
mikroprosesor, dirancang untuk digunakan dalam Sony PlayStation 3, adalah
prosesor multi core terkemuka. Setiap inti di prosesor multi core yang
berpotensi dapat superscalar juga — yaitu pada setiap siklus clock, setiap inti
dapat mengeluarkan beberapa instruksi dari satu thread.
Symmetric multiprocessing
Simetris multiprosesor (SMP) adalah sistem
komputer dengan multiprosesor identik yang berbagi memori dan terhubung melalui
bus. [28] bus pertengkaran mencegah arsitektur jalur scaling. Sebagai
akibatnya, SMPs umumnya tidak terdiri dari lebih dari 32 prosesor. Karena
ukuran kecil prosesor dan pengurangan yang signifikan dalam persyaratan untuk
bus bandwidth dicapai dengan cache besar, seperti multiprocessors simetris
sangat hemat biaya, asalkan ada jumlah yang cukup memory bandwidth.
Distributed computing
Komputer terdistribusi (juga dikenal sebagai
didistribusikan memori multiprosesor) adalah sistem komputer terdistribusi
memori di mana pengolahan elemen yang terhubung dengan jaringan. Komputer
terdistribusi sangat scalable.
Cluster computing
Sebuah cluster adalah kelompok digabungkan
secara longgar komputer yang bekerja sama erat, sehingga dalam beberapa hal
mereka dapat dianggap sebagai satu komputer. cluster terdiri dari beberapa
mesin mandiri yang terhubung dengan jaringan. Sementara mesin dalam sebuah
cluster tidak harus simetris, menyeimbangkan beban ini lebih sulit jika mereka
tidak. Jenis yang paling umum cluster adalah Beowulf cluster, yang merupakan
sebuah cluster yang diimplementasikan pada beberapa identik komersial off
komputer yang terhubung dengan jaringan area lokal TCP/IP Ethernet. Beowulf
teknologi ini awalnya dikembangkan oleh Thomas Sterling dan Donald Becker.
Mayoritas TOP500 superkomputer adalah cluster.
Comments
Post a Comment