Multiprocessing
adalah penggunaan dua atau lebih central processing unit (CPU) dalam satu
sistem komputer. Istilah ini juga mengacu pada kemampuan sistem untuk mendukung
lebih dari satu prosesor dan / atau kemampuan untuk mengalokasikan tugas antara
mereka. Ada banyak variasi pada tema dasar ini, dan definisi multiprocessing
dapat bervariasi dengan konteks, sebagian besar sebagai fungsi dari seberapa
CPU didefinisikan (multiple core pada satu die , beberapa meninggal dalam satu
paket , beberapa paket dalam satu unit sistem , dll).
Multiprocessing
kadang-kadang mengacu pada pelaksanaan beberapa proses perangkat lunak
bersamaan dalam suatu sistem yang bertentangan dengan proses tunggal pada satu
instan. Namun, istilah multitasking atau multiprogramming lebih tepat untuk
menggambarkan konsep ini, yang dilaksanakan sebagian besar dalam software,
sedangkan multiprocessing lebih tepat untuk menggambarkan penggunaan beberapa
CPU hardware. Sebuah sistem dapat menjadi keduanya multiprocessing dan
multiprogramming, hanya satu dari dua, atau tak satu pun dari mereka berdua.
Jenis :
Processor simetri
Dalam
sistem multiprocessing, semua CPU mungkin sama, atau dapat disediakan untuk
tujuan khusus. Kombinasi hardware dan sistem operasi pertimbangan desain
perangkat lunak menentukan simetri (atau ketiadaan) di sistem tertentu. Sebagai
contoh, perangkat keras atau perangkat lunak mungkin memerlukan pertimbangan
bahwa hanya satu CPU tertentu menanggapi semua interupsi hardware, sedangkan
semua pekerjaan lain dalam sistem dapat didistribusikan secara merata di antara
CPU, atau eksekusi kode kernel-mode dapat dibatasi hanya satu CPU tertentu,
sedangkan kode user-mode bisa dilakukan dalam setiap kombinasi prosesor. Sistem
multiprocessing sering lebih mudah untuk merancang jika pembatasan tersebut
diberlakukan, tetapi mereka cenderung kurang efisien daripada sistem di mana
semua CPU yang digunakan.
Sistem
yang memperlakukan semua CPU sama-sama disebut Symmetric Multiprocessing (SMP)
sistem. Dalam sistem di mana semua CPU tidak sama, sumber daya sistem dapat
dibagi dalam beberapa cara, termasuk multiprocessing asimetris (ASMP), akses
memori non-seragam (NUMA) multiprocessing, dan berkerumun multiprocessing.
Instruksi dan data
stream
Dalam
multiprocessing, prosesor dapat digunakan untuk mengeksekusi urutan instruksi
tunggal dalam beberapa konteks ( single-instruksi, multiple-Data atau SIMD,
sering digunakan dalam pengolahan vektor ), beberapa urutan instruksi dalam
konteks tunggal ( multiple-instruksi, tunggal -Data atau MISD, digunakan untuk
redundansi dalam sistem gagalnya-aman dan kadang-kadang digunakan untuk
menggambarkan prosesor pipelined atau hyper-threading ), atau beberapa urutan
instruksi dalam beberapa konteks (multiple-instruksi, multiple-Data atau
MIMD).
Processor coupling
Sistem multiprosesor
erat-coupled
Sistem
multiprosesor erat-coupled berisi beberapa CPU yang terhubung pada tingkat bus.
CPU ini mungkin memiliki akses ke memori bersama pusat (SMP atau UMA ), atau
dapat berpartisipasi dalam hirarki memori dengan memori lokal maupun bersama (
NUMA ). The IBM P690 Regatta adalah contoh dari akhir sistem SMP tinggi. Intel
Xeon prosesor mendominasi pasar multiprosesor untuk PC bisnis dan satu-satunya
pilihan x86 besar sampai rilis AMD 's Opteron berbagai prosesor pada tahun
2004. Kedua rentang prosesor memiliki cache yang kapal mereka sendiri tetapi
memberikan akses ke memori bersama, prosesor Xeon melalui pipa umum dan
prosesor Opteron melalui jalur independen untuk sistem RAM .
Chip
multiprocessors, juga dikenal sebagai multi-core komputasi, melibatkan lebih
dari satu prosesor ditempatkan pada satu chip dan dapat dianggap bentuk yang
paling ekstrim erat-coupled multiprocessing. Sistem mainframe dengan prosesor
ganda sering erat-coupled.
Sistem multiprosesor
longgar-digabungkan
Sistem
multiprosesor longgar-digabungkan (sering disebut sebagai cluster ) didasarkan
pada beberapa standalone tunggal atau ganda prosesor komputer komoditas saling
berhubungan melalui sistem komunikasi kecepatan tinggi ( Gigabit Ethernet
umum). A Linux Cluster Beowulf adalah contoh dari longgar-digabungkan sistem.
Sistem
erat-coupled tampil lebih baik dan secara fisik lebih kecil dibandingkan dengan
sistem longgar-digabungkan, tetapi secara historis diperlukan investasi awal
yang lebih besar dan dapat terdepresiasi cepat, node dalam sebuah sistem
longgar-digabungkan biasanya komputer komoditas murah dan dapat didaur ulang
sebagai mesin independen setelah pensiun dari cluster.
Konsumsi
daya juga menjadi pertimbangan. Sistem erat-coupled cenderung jauh lebih hemat
energi daripada cluster. Hal ini karena ekonomi yang cukup besar dapat
diwujudkan dengan merancang komponen untuk bekerja bersama-sama dari awal dalam
sistem erat-coupled, sedangkan sistem longgar-digabungkan menggunakan komponen
yang tidak selalu ditujukan khusus untuk digunakan dalam sistem tersebut.
Isu-isu implementasi
Software :
Multiprocessing SIMD
Dalam
aliran instruksi tunggal, beberapa aliran data komputer satu prosesor menangani
aliran instruksi, masing-masing yang dapat melakukan perhitungan secara paralel
pada beberapa lokasi data. SIMD
multiprocessing baik cocok untuk paralel atau vektor pengolahan , di mana satu
set yang sangat besar data dapat dibagi menjadi bagian-bagian yang secara
individual mengalami operasi identik tetapi independen. Sebuah aliran instruksi
tunggal mengarahkan operasi beberapa unit pengolahan untuk melakukan manipulasi
yang sama secara bersamaan pada jumlah berpotensi besar data.
Untuk
beberapa jenis aplikasi komputasi, jenis arsitektur dapat menghasilkan
peningkatan besar dalam kinerja, dalam hal waktu yang telah berlalu yang
diperlukan untuk menyelesaikan tugas yang diberikan. Namun, kelemahan
arsitektur ini adalah bahwa sebagian besar dari sistem jatuh siaga ketika
program atau tugas sistem dijalankan yang tidak dapat dibagi menjadi unit-unit
yang dapat diproses secara paralel.
Selain
itu, program harus hati-hati dan khusus ditulis untuk mengambil keuntungan
maksimum dari arsitektur, dan sering kompiler mengoptimalkan khusus yang
dirancang untuk menghasilkan kode khusus untuk lingkungan ini harus digunakan.
Beberapa compiler dalam kategori ini memberikan konstruksi khusus atau ekstensi
untuk memungkinkan programmer untuk secara langsung menentukan operasi yang
akan dilakukan secara paralel (misalnya, DO UNTUK SEMUA pernyataan dalam versi
FORTRAN digunakan pada ILLIAC IV , yang merupakan SIMD multiprocessing
superkomputer ).
Multiprocessing
SIMD menemukan digunakan secara luas dalam domain tertentu seperti simulasi
komputer , tetapi sedikit digunakan dalam tujuan umum desktop dan komputasi
bisnis lingkungan.
MISD multiprocessing
MISD
multiprocessing menawarkan terutama keuntungan dari redundansi, karena beberapa
unit pengolahan melakukan tugas yang sama pada data yang sama, mengurangi
kemungkinan hasil yang salah jika salah satu unit gagal. Arsitektur MISD
mungkin melibatkan perbandingan antara unit pengolahan untuk mendeteksi
kegagalan. Terlepas dari karakter berlebihan dan gagal-aman dari jenis
multiprocessing, ia memiliki beberapa keuntungan, dan sangat mahal. Ini tidak meningkatkan
kinerja. Hal ini dapat diimplementasikan dengan cara yang transparan untuk
perangkat lunak. Hal ini digunakan dalam berbagai prosesor dan
diimplementasikan dalam kesalahan mesin toleran.
Contoh
lain dari MISD adalah pengolahan citra pipelined di mana setiap pixel gambar
disalurkan melalui beberapa unit perangkat keras melakukan beberapa langkah
transformasi gambar.
MIMD multiprocessing
MIMD
arsitektur multiprocessing cocok untuk berbagai tugas di mana eksekusi benar-benar
independen dan sejajar instruksi menyentuh set data yang berbeda dapat
digunakan secara produktif. Untuk alasan ini, dan karena mudah untuk
melaksanakan, MIMD menonjol dalam multiprocessing.
Pengolahan
dibagi menjadi beberapa benang , masing-masing dengan negara prosesor hardware
sendiri, dalam proses perangkat lunak didefinisikan tunggal atau dalam beberapa
proses. Sejauh sistem memiliki beberapa thread menunggu pengiriman (baik sistem
atau benang pengguna), arsitektur ini membuat baik penggunaan sumber daya
perangkat keras.
MIMD
tidak mengangkat isu-isu kebuntuan dan pertentangan sumber daya, namun, karena
benang mungkin bertabrakan dalam akses mereka terhadap sumberdaya dengan cara
yang tak terduga yang sulit untuk mengelola secara efisien. MIMD membutuhkan
coding khusus dalam sistem operasi komputer tetapi tidak memerlukan perubahan
aplikasi kecuali program itu sendiri menggunakan beberapa thread (MIMD adalah
transparan kepada program single-threaded bawah sebagian besar sistem operasi,
jika program tidak secara sukarela melepaskan kontrol ke OS) . Kedua sistem dan
perangkat lunak pengguna mungkin perlu untuk menggunakan perangkat lunak
konstruksi seperti Semaphore (juga disebut kunci atau gerbang) untuk mencegah
satu thread dari campur dengan yang lain jika mereka harus terjadi untuk
menyeberangi jalan di referensi data yang sama. Proses gating atau penguncian
ini meningkatkan kompleksitas kode, menurunkan kinerja, dan sangat meningkatkan
jumlah pengujian yang diperlukan, meskipun biasanya tidak cukup untuk
meniadakan keuntungan dari multiprocessing.
Konflik
serupa dapat terjadi pada tingkat hardware antara prosesor (cache yang
pertengkaran dan korupsi, misalnya), dan biasanya harus diselesaikan dalam
perangkat keras, atau dengan kombinasi perangkat lunak dan perangkat keras
(misalnya, instruksi cache jelas).
siap min
BalasHapusalat cuci ultrasonic