ORKOM 14 : Pararel Processing
Arsitektur Komputer Paralel - Pendahuluan
Pemrosesan paralel juga dikaitkan dengan lokalitas data dan komunikasi data. Arsitektur Komputer Paralel adalah metode pengorganisasian semua sumber daya untuk memaksimalkan kinerja dan kemampuan program dalam batas yang diberikan oleh teknologi dan biaya pada setiap waktu.
Arsitektur komputer paralel menambah dimensi baru dalam perkembangan sistem komputer dengan menggunakan jumlah prosesor yang semakin banyak. Pada prinsipnya, kinerja yang dicapai dengan memanfaatkan prosesor dalam jumlah besar lebih tinggi daripada kinerja prosesor tunggal pada suatu titik waktu tertentu.
Dengan kemajuan kapasitas perangkat keras, permintaan akan aplikasi yang berkinerja baik juga meningkat, yang pada gilirannya menuntut perkembangan arsitektur komputer.
Sebelum era mikroprosesor, sistem komputer berkinerja tinggi diperoleh dengan teknologi sirkuit eksotis dan organisasi mesin, yang membuatnya mahal. Sekarang, sistem komputer berkinerja tinggi diperoleh dengan menggunakan banyak prosesor, dan aplikasi yang paling penting dan menuntut ditulis sebagai program paralel. Dengan demikian, untuk kinerja yang lebih tinggi, baik arsitektur paralel maupun aplikasi paralel perlu dikembangkan.
Arsitektur paralel telah menjadi sangat diperlukan dalam komputasi ilmiah (seperti fisika, kimia, biologi, astronomi, dll.) Dan aplikasi teknik (seperti pemodelan reservoir, analisis aliran udara, efisiensi pembakaran, dll.). Di hampir semua aplikasi, terdapat permintaan yang sangat besar untuk visualisasi output komputasi yang mengakibatkan permintaan untuk pengembangan komputasi paralel untuk meningkatkan kecepatan komputasi.
Dalam komputasi komersial (seperti video, grafik, database, OLTP, dll.) Juga dibutuhkan komputer berkecepatan tinggi untuk memproses data dalam jumlah besar dalam waktu tertentu. Desktop menggunakan program multithread yang hampir seperti program paralel. Ini pada gilirannya menuntut untuk mengembangkan arsitektur paralel.
Dengan perkembangan teknologi dan arsitektur, ada permintaan yang kuat untuk pengembangan aplikasi berkinerja tinggi. Eksperimen menunjukkan bahwa komputer paralel dapat bekerja lebih cepat daripada prosesor tunggal yang paling berkembang. Selain itu, komputer paralel dapat dikembangkan dalam batasan teknologi dan biaya.
Teknologi utama yang digunakan di sini adalah teknologi VLSI. Oleh karena itu, saat ini semakin banyak transistor, gerbang, dan sirkuit dapat dipasang di area yang sama. Dengan pengurangan ukuran fitur VLSI dasar, clock rate juga meningkat secara proporsional, sementara jumlah transistor bertambah sebagai persegi. Penggunaan banyak transistor sekaligus (paralelisme) diharapkan dapat bekerja jauh lebih baik daripada meningkatkan clock rate
Tren teknologi menunjukkan bahwa blok penyusun chip tunggal dasar akan memberikan kapasitas yang semakin besar. Oleh karena itu, kemungkinan menempatkan banyak prosesor pada satu chip meningkat.
Perkembangan teknologi menentukan apa yang layak; arsitektur mengubah potensi teknologi menjadi kinerja dan kemampuan. Paralelisme dan lokalitas adalah dua metode di mana volume sumber daya yang lebih besar dan lebih banyak transistor meningkatkan kinerja. Namun, kedua metode ini bersaing untuk mendapatkan sumber daya yang sama. Ketika beberapa operasi dijalankan secara paralel, jumlah siklus yang diperlukan untuk menjalankan program berkurang.
Namun, sumber daya diperlukan untuk mendukung setiap aktivitas bersamaan. Sumber daya juga diperlukan untuk mengalokasikan penyimpanan lokal. Kinerja terbaik dicapai dengan rencana tindakan perantara yang menggunakan sumber daya untuk memanfaatkan derajat paralelisme dan derajat lokalitas.
Secara umum, sejarah arsitektur komputer telah dibagi menjadi empat generasi yang mengikuti teknologi dasar -
- Tabung vakum
- Transistor
- Sirkuit terintegrasi
- VLSI
Pertumbuhan paralelisme tingkat instruksi mendominasi pertengahan 80-an hingga pertengahan 90-an. Pendekatan RISC menunjukkan bahwa sangat mudah untuk memilah langkah-langkah pemrosesan instruksi sehingga rata-rata instruksi dieksekusi di hampir setiap siklus. Pertumbuhan teknologi penyusun telah membuat alur instruksi lebih produktif.
Pada pertengahan 80-an, komputer berbasis mikroprosesor terdiri dari
- Unit pemrosesan integer
- Unit floating-point
- Pengontrol cache
- SRAM untuk data cache
- Penyimpanan tag
Mesin paralel telah dikembangkan dengan beberapa arsitektur berbeda. Pada bagian ini, kita akan membahas arsitektur komputer paralel yang berbeda dan sifat konvergensinya.
Arsitektur Komunikasi
Arsitektur paralel meningkatkan konsep konvensional arsitektur komputer dengan arsitektur komunikasi. Arsitektur komputer mendefinisikan abstraksi kritis (seperti batas sistem pengguna dan batas perangkat keras-perangkat lunak) dan struktur organisasi, sedangkan arsitektur komunikasi mendefinisikan operasi komunikasi dan sinkronisasi dasar. Ini juga membahas struktur organisasi.
- Ruang alamat bersama
- Pengiriman pesan
- Pemrograman paralel data
Pemrograman Shared address sama seperti menggunakan papan buletin, di mana seseorang dapat berkomunikasi dengan satu atau banyak individu dengan memposting informasi di lokasi tertentu, yang dibagikan oleh semua individu lainnya. Kegiatan individu dikoordinasikan dengan mencatat siapa mengerjakan tugas apa.
Message passing seperti panggilan telepon atau surat di mana penerima tertentu menerima informasi dari pengirim tertentu.
Pemrograman Data parallel adalah bentuk kerja sama yang terorganisir. Di sini, beberapa individu melakukan tindakan pada elemen terpisah dari kumpulan data secara bersamaan dan berbagi informasi secara global.
Multiprosesor memori bersama adalah salah satu kelas terpenting dari mesin paralel. Ini memberikan throughput yang lebih baik pada beban kerja multiprogramming dan mendukung program paralel.
Semua sumber daya diatur di sekitar bus memori pusat. Melalui mekanisme akses bus, prosesor apa pun dapat mengakses alamat fisik apa pun di sistem. Karena semua prosesor memiliki jarak yang sama dari semua lokasi memori, waktu akses atau latensi semua prosesor sama di lokasi memori. Ini disebut multiprosesor simetris.
Arsitektur message passing juga merupakan kelas penting dari mesin paralel. Ini menyediakan komunikasi antar prosesor sebagai operasi I / O eksplisit. Dalam hal ini, komunikasi digabungkan pada level I / O, bukan pada sistem memori.
Dalam arsitektur penerusan pesan, komunikasi pengguna dijalankan dengan menggunakan sistem operasi atau panggilan perpustakaan yang melakukan banyak tindakan tingkat rendah, yang mencakup operasi komunikasi aktual. Akibatnya, ada jarak antara model pemrograman dan operasi komunikasi pada tingkat perangkat keras fisik.
Mengirim dan menerima adalah operasi komunikasi tingkat pengguna yang paling umum dalam sistem penyampaian pesan. Kirim menentukan buffer data lokal (yang akan dikirim) dan prosesor jarak jauh penerima. Terima menentukan proses pengiriman dan buffer data lokal di mana data yang dikirim akan ditempatkan. Dalam operasi pengiriman, pengenal atau tag dilampirkan ke pesan dan operasi penerimaan menentukan aturan yang cocok seperti tag tertentu dari prosesor tertentu atau tag apa pun dari prosesor mana pun.
Kombinasi pengiriman dan penerimaan yang cocok melengkapi penyalinan memori-ke-memori. Setiap ujung menentukan alamat data lokalnya dan acara sinkronisasi pasangan bijaksana.
Pengembangan perangkat keras dan perangkat lunak telah memudarkan batas yang jelas antara memori bersama dan kamp yang melewati pesan. Pesan yang lewat dan ruang alamat bersama mewakili dua model pemrograman yang berbeda; masing-masing memberikan paradigma transparan untuk berbagi, sinkronisasi, dan komunikasi. Namun, struktur mesin dasar telah menyatu menuju organisasi bersama.
Kelas penting lainnya dari mesin paralel disebut - array prosesor, arsitektur paralel data, dan mesin data multi-instruksi-tunggal. Fitur utama dari model pemrograman adalah bahwa operasi dapat dijalankan secara paralel pada setiap elemen dari struktur data reguler yang besar (seperti array atau matriks).
Bahasa pemrograman paralel data biasanya dipaksakan dengan melihat ruang alamat lokal dari sekelompok proses, satu per prosesor, membentuk ruang global yang eksplisit. Karena semua prosesor berkomunikasi bersama dan ada tampilan global dari semua operasi, jadi baik ruang alamat bersama atau penyampaian pesan dapat digunakan.
Pengembangan model pemrograman hanya tidak dapat meningkatkan efisiensi komputer dan pengembangan perangkat keras saja tidak dapat melakukannya. Namun perkembangan arsitektur komputer dapat membuat perbedaan dalam kinerja komputer. Kami dapat memahami masalah desain dengan berfokus pada bagaimana program menggunakan mesin dan teknologi dasar apa yang disediakan.
Pada bagian ini, kita akan membahas tentang abstraksi komunikasi dan persyaratan dasar model pemrograman.
Abstraksi Komunikasi
Abstraksi komunikasi adalah antarmuka utama antara model pemrograman dan implementasi sistem. Ini seperti set instruksi yang menyediakan platform sehingga program yang sama dapat berjalan dengan benar pada banyak implementasi. Operasi pada level ini harus sederhana.
Abstraksi komunikasi seperti kontrak antara perangkat keras dan perangkat lunak, yang memungkinkan satu sama lain meningkatkan fleksibilitas tanpa mempengaruhi pekerjaan.
Program paralel memiliki satu atau lebih utas yang beroperasi pada data. Model pemrograman paralel menentukan data apa yang dapat diberi nama oleh thread, operasi mana yang dapat dilakukan pada data yang dinamai, dan urutan mana yang diikuti oleh operasi tersebut.
Untuk mengonfirmasi bahwa ketergantungan antara program diberlakukan, program paralel harus mengoordinasikan aktivitas utasnya.
Pemrosesan paralel telah dikembangkan sebagai teknologi yang efektif dalam komputer modern untuk memenuhi permintaan kinerja yang lebih tinggi, biaya lebih rendah dan hasil yang akurat dalam aplikasi kehidupan nyata. Peristiwa serentak biasa terjadi di komputer saat ini karena praktik multiprogramming, multiprocessing, atau multicomputing.
Komputer modern memiliki paket perangkat lunak yang kuat dan ekstensif. Untuk menganalisis perkembangan kinerja komputer, pertama-tama kita harus memahami dasar-dasar pengembangan perangkat keras dan perangkat lunak.
- Tonggak Perkembangan Komputer - Ada dua tahap utama perkembangan komputer - bagian mekanis atau elektromekanis. Komputer modern berkembang setelah pengenalan komponen elektronik. Elektron mobilitas tinggi di komputer elektronik menggantikan bagian operasional di komputer mekanis. Untuk transmisi informasi, sinyal listrik yang bergerak hampir dengan kecepatan cahaya menggantikan roda gigi atau tuas mekanis.
- Elemen Komputer Modern - Sistem komputer modern terdiri dari perangkat keras komputer, set instruksi, program aplikasi, perangkat lunak sistem, dan antarmuka pengguna.
- Evolusi Arsitektur Komputer - Dalam empat dekade terakhir, arsitektur komputer telah mengalami perubahan revolusioner. Kami mulai dengan arsitektur Von Neumann dan sekarang kami memiliki multikomputer dan multiprosesor.
- Performa sistem komputer - Performa sistem komputer bergantung pada kemampuan mesin dan perilaku program. Kemampuan mesin dapat ditingkatkan dengan teknologi perangkat keras yang lebih baik, fitur arsitektur canggih, dan manajemen sumber daya yang efisien. Perilaku program tidak dapat diprediksi karena bergantung pada aplikasi dan kondisi waktu proses
Multiprosesor dan Multikomputer
Pada bagian ini, kita akan membahas dua jenis komputer paralel -
- Multiprosesor
- Multikomputer
Multikomputer Shared Memori
Tiga model multiprosesor memori bersama yang paling umum adalah -
Uniform Memory Access (UMA)
Dalam model ini, semua prosesor berbagi memori fisik secara seragam. Semua prosesor memiliki waktu akses yang sama ke semua kata memori. Setiap prosesor mungkin memiliki memori cache pribadi. Aturan yang sama diikuti untuk perangkat periferal.
Ketika semua prosesor memiliki akses yang sama ke semua perangkat periferal, sistem tersebut disebut multiprosesor simetris. Ketika hanya satu atau beberapa prosesor yang dapat mengakses perangkat periferal, sistem ini disebut multiprosesor asimetris.
Akses Memori Tidak Seragam (NUMA)
Dalam model multiprosesor NUMA, waktu akses bervariasi dengan lokasi kata memori. Di sini, memori bersama didistribusikan secara fisik di antara semua prosesor, yang disebut memori lokal. Pengumpulan semua memori lokal membentuk ruang alamat global yang dapat diakses oleh semua prosesor.
Cache Only Memory Architecture (COMA)
Model COMA adalah kasus khusus dari model NUMA. Di sini, semua memori utama yang didistribusikan diubah menjadi memori cache.
Terdistribusi - Memori Multikomputer - Sistem multikomputer memori terdistribusi terdiri dari beberapa komputer, yang dikenal sebagai node, yang saling terhubung oleh jaringan yang melewati pesan. Setiap node bertindak sebagai komputer otonom yang memiliki prosesor, memori lokal, dan terkadang perangkat I / O. Dalam hal ini, semua memori lokal bersifat pribadi dan hanya dapat diakses oleh prosesor lokal. Inilah sebabnya, mesin tradisional disebut mesin no-remote-memory-access (NORMA).
Komputer Multivector dan SIMD
Pada bagian ini, kita akan membahas superkomputer dan prosesor paralel untuk pemrosesan vektor dan paralelisme data.
Superkomputer Vektor
Di komputer vektor, prosesor vektor dipasang ke prosesor skalar sebagai fitur opsional. Komputer host pertama kali memuat program dan data ke memori utama. Kemudian unit kontrol skalar menerjemahkan semua instruksi. Jika instruksi yang didekodekan adalah operasi skalar atau operasi program, prosesor skalar menjalankan operasi tersebut menggunakan pipeline fungsional skalar.
Sebaliknya, jika instruksi yang didekodekan adalah operasi vektor maka instruksi tersebut akan dikirim ke unit kontrol vektor.
Superkomputer SIMD
Di komputer SIMD, sejumlah prosesor 'N' terhubung ke unit kontrol dan semua prosesor memiliki unit memori masing-masing. Semua prosesor dihubungkan oleh jaringan interkoneksi.
Model PRAM dan VLSI
Model ideal memberikan kerangka kerja yang sesuai untuk mengembangkan algoritme paralel tanpa mempertimbangkan batasan fisik atau detail implementasi.
Model dapat diterapkan untuk mendapatkan batasan kinerja teoritis pada komputer paralel atau untuk mengevaluasi kompleksitas VLSI pada area chip dan waktu operasional sebelum chip dibuat.
Mesin Akses Acak Paralel
Sheperdson dan Sturgis (1963) memodelkan komputer Uniprocessor konvensional sebagai mesin akses-acak (RAM). Fortune dan Wyllie (1978) mengembangkan model paralel random-access-machine (PRAM) untuk pemodelan komputer paralel ideal dengan overhead akses memori nol dan sinkronisasi.
Comments
Post a Comment