Senin, 09 Desember 2013

Multiprocessing



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).

1 komentar: