Kamis, 30 Juni 2016

TUGAS SOFTSKILL 4 “PARALLEL COMPUTATION”

Nama Kelompok :     Alif Nurrifqi (50412638)
                                    Bezaleel Hutasoit (51412444)
                                    Riki Apriadi (56412375)
Kelas                    :     4IA23
Dosen                   :     Dr. Rina Noviana, SKom,. MMSI
Mata Kuliah        :     Pengantar Komputasi Modern


Parallel computing adalah jenis perhitungan di mana banyak perhitungan dilakukan secara bersamaan, yang pada prinsip bahwa masalah besar sering dibagi menjadi lebih kecil, yang kemudian pada waktu yang sama untuk diselesaikan. Ada berbagai bentuk komputasi paralel: bit-tingkat, tingkat instruksi, data, dan tugas paralelisme. Paralelisme telah digunakan selama bertahun-tahun, terutama dalam komputasi kinerja tinggi, namun bunga telah berkembang akhir-akhir ini karena kendala fisik mencegah penskalaan frekuensi. Jika konsumsi arus (dan panas) oleh komputer telah menjadi perhatian dalam beberapa tahun terakhir komputasi paralel, paradigma dominan dalam arsitektur komputer, terutama dalam bentuk prosesor multi-core.
Komputasi paralel berkaitan erat dengan paralel komputasi, mereka sering digunakan bersama-sama dan sering digabungkan, tetapi keduanya berbeda: itu adalah paralelisme mungkin tanpa concurrency (seperti bit paralelisme) dan simultanitas tanpa paralelisme (seperti multitasking ditemukan oleh waktu-berbagi satu CPU core). Dalam komputasi paralel, tugas komputasi biasanya dibagi menjadi beberapa, sering banyak, sub-tugas yang sangat mirip yang dapat diproses secara independen dan hasil yang kemudian dirakit setelah selesai. Sebaliknya, dalam pemrograman terdistribusi, sering gagal untuk mengatasi tugas-tugas yang berhubungan dengan berbagai proses; Ketika mereka lakukan, seperti yang khas dalam komputasi terdistribusi, tugas individu dapat memiliki sifat bervariasi dan sering membutuhkan sejumlah komunikasi antar-proses selama pelaksanaan.
Komputer paralel secara kasar dapat diklasifikasikan menurut tingkat di mana perangkat keras mendukung paralelisme dengan komputer multi-core dan multi-prosesor dengan beberapa elemen pemrosesan dalam satu mesin, sedangkan cluster, MPP, dan grid menggunakan beberapa komputer untuk bekerja pada tugas yang sama. Khusus arsitektur komputer paralel kadang-kadang digunakan selain prosesor tradisional, untuk mempercepat tugas-tugas tertentu.
Dalam beberapa kasus sejajar transparan untuk programmer, seperti di tingkat bit atau instruksi paralelisme, tapi tegas algoritma paralel, menggunakan terutama simultanitas mereka, lebih sulit untuk menulis daripada proses berurutan, karena pengenalan simultanitas kelas baru kemungkinan kesalahan dalam perangkat lunak, yang kondisi balapan adalah yang paling umum. Komunikasi dan sinkronisasi antara sub-tugas yang berbeda biasanya beberapa kendala terbesar untuk mendapatkan kinerja program paralel yang baik.
Sebuah batas atas teoritis untuk percepatan program tunggal sebagai akibat dari paralelisasi diberikan oleh hukum Amdahl.


Parallelism Concept

1. Single Instruction, Single Data (SISD):
  • Sebuah serial (non-paralel) komputer
  • Single Instruction: Hanya satu instruksi aliran ditangani oleh CPU dalam satu siklus clock
  • Single Data: Hanya satu aliran data yang digunakan sebagai bahan awal selama satu siklus clock tunggal
  • Ini adalah jenis tertua dari komputer
  • Contoh: mainframe generasi tua, minicomputer, workstation dan single-prosesor PC / inti.
 2. Single Instruction, Multiple Data (SIMD):
  • Sebuah jenis komputer paralel
  • Instruksi Single: untuk melaksanakan semua unit pengolahan instruksi yang sama pada setiap siklus clock yang diberikan
  •  Beberapa Data: Setiap unit pengolahan dapat bekerja pada elemen data lain
  • Paling cocok untuk masalah-masalah khusus yang ditandai dengan tingkat tinggi keteraturan, seperti grafik / pengolahan gambar.
  •  Synchronous (berbaris) dan eksekusi deterministik
  •  Dua varian: Array Processor dan Vector Pipa
  • Sebagian besar komputer modern, terutama mereka dengan unit pengolahan grafis (GPU) layanan SIMD instruksi dan eksekusi unit.
  • contoh:  Processor Array: Mesin Berpikir CM-2 MasPar MP-1 dan MP-2, ILLIAC IV
 3. Multiple Instruction, Single Data (MISD):
  •  Sebuah jenis komputer paralel
  • Beberapa Instruksi: Setiap unit pengolahan beroperasi pada data independen melalui aliran instruksi terpisah.
  • Single Data: Sebuah aliran data tunggal dimasukkan ke beberapa unit pengolahan.
  • Sedikit (atau tidak) contoh konkret kelas ini masih ada komputer paralel.
  • Beberapa aplikasi bisa dipertimbangkan: filter frekuensi yang berbeda yang aliran sinyal tunggal dan  beberapa algoritma kriptografi mencoba untuk memecahkan kode pesan.
4. Multiple Instruction, Multiple Data (MIMD):
  • Sebuah jenis komputer paralel
  • Beberapa Instruksi: Setiap prosesor dapat melakukan streaming instruksi yang berbeda
  • Data beberapa: Setiap prosesor dapat bekerja dengan aliran data yang berbeda
  •  Eksekusi bisa sinkron atau asynchronous, deterministik atau non-deterministik
  • Saat ini, jenis yang paling umum dari komputer paralel - mayoritas superkomputer modern termasuk dalam kategori ini.
  • Contoh: kebanyakan superkomputer saat ini, jaringan cluster komputer paralel dan "grid", komputer SMP multi-prosesor, PC multi-core.
Distibuted Processing

Model ini menunjukkan karakteristik sebagai berikut:
  1. Satu set tugas yang menggunakan memori lokal mereka sendiri selama perhitungan. Beberapa tugas mungkin terletak pada mesin fisik yang sama dan / atau dalam jumlah mesin.
  2. Tugas bertukar data melalui komunikasi dengan mengirim dan menerima pesan.
  3. Transfer data biasanya memerlukan tindakan kooperatif dilakukan oleh setiap proses. Sebagai operasi send harus memiliki pencocokan yang menerima operasi.
Implementasi :
  • Dari perspektif pemrograman, lewat pesan implementasi biasanya terdiri perpustakaan subrutin. Panggilan ke subrutin ini tertanam dalam kode sumber. programmer bertanggung jawab untuk menentukan semua paralelisme.
  • Secara historis, pesan lewat perpustakaan yang berbeda sejak 1980-an implementasi ini berbeda secara signifikan dari satu sama lain sehingga sulit untuk aplikasi programmer portabel.
  • Pada tahun 1992, Forum MPI dibentuk dengan tujuan utama membangun antarmuka standar untuk implementasi pesan lewat.
  • Bagian 1 dari Message Passing Interface (MPI) dirilis pada tahun 1994. Bagian 2 (MPI-2) dirilis pada tahun 1996 dan tiga pada tahun 2012. spesifikasi Semua MPI MPI yang tersedia di web di http: //www.mpi- forum.org/docs/.
  • MPI adalah "de facto" standar untuk pesan lewat, menggantikan implementasi hampir semua pesan lainnya lewat untuk pekerjaan produksi. MPI implementasi ada untuk platform komputasi paralel hampir semua populer. Tidak semua implementasi terdiri segala sesuatu di MPI-1, 2, atau MPI-MPI-3.
Architectural Parallel Computer

1. Shared Memory

Karakteristik umum:
  1. Memori bersama komputer paralel bervariasi, tetapi umumnya memiliki kesamaan kemampuan untuk semua prosesor untuk mengakses semua ruang alamat memori global.
  2. Beberapa prosesor dapat beroperasi secara independen tetapi berbagi sumber daya memori yang sama
  3. Perubahan lokasi memori yang diatur oleh prosesor diakses oleh semua prosesor lainnya
  4. Secara historis, mesin memori bersama diklasifikasikan sebagai UMA dan NUMA, berdasarkan waktu akses memori.
2. Distributed Memory 

Karakteristik umum:
  1. Seperti sistem memori bersama, sistem memori terdistribusi bervariasi namun memiliki satu karakteristik umum. sistem memori terdistribusi perlu terhubung ke jaringan komunikasi pada memori antar-prosesor
  2. Prosesor memiliki memori lokal sendiri. alamat memori dalam satu prosesor tidak ditugaskan untuk prosesor lain, sehingga tidak ada konsep ruang alamat global untuk semua prosesor.
  3. Karena setiap prosesor memori lokal sendiri, yang bekerja secara independen. Perubahan yang memberikan ke memori lokal tidak berpengaruh pada memori prosesor lainnya. Oleh karena itu, konsep cache koherensi tidak berlaku.
  4. Ketika prosesor untuk mengakses data dalam prosesor lain yang diperlukan, biasanya tugas programmer untuk secara eksplisit menentukan bagaimana dan kapan data dikomunikasikan. Sinkronisasi antara tugas-tugas juga merupakan tanggung jawab dari programmer.
  5. Jaringan "debu" yang digunakan untuk transmisi data sangat bervariasi, meskipun dapat sesederhana Ethernet.
3. Hybrid Distributed-Shared Memory

Karakteristik umum:
  1. Yang terbesar dan tercepat komputer di dunia kerja baik bersama dan arsitektur memori terdistribusi hari ini.
  2. Komponen memori bersama adalah mesin memori bersama dan / atau Graphics Processing Unit (GPU) yang.
  3. Komponen memori terdistribusi adalah jaringan dari beberapa mesin memori / GPU bersama yang hanya sekitar memori mereka sendiri - bukan memori di komputer lain. Oleh karena itu, jaringan komunikasi diperlukan untuk mentransfer data dari satu komputer ke komputer lain.
  4. Tren saat ini menunjukkan bahwa jenis arsitektur memori akan terus menang dan meningkat pada ujung yang tinggi dari komputer di masa mendatang.
Implemantasi Parallel Computing

1. Menghemat waktu dan / atau uang:
  • Secara teori, melemparkan lebih banyak sumber daya untuk tugas akan mempersingkat waktu untuk penyelesaian, dengan potensi penghematan biaya.
  • Komputer paralel dapat dibangun dari biaya rendah, komponen komoditas.
2. Memecahkan lebih besar / masalah yang kompleks:
  • Banyak masalah yang begitu besar dan / atau kompleks yang tidak praktis atau tidak mungkin untuk memperbaikinya pada satu komputer, terutama dalam pandangan dari memori komputer yang terbatas.
  • Contoh: "Grand Challenge masalah" (en.wikipedia.org/wiki/Grand_Challenge) yang petaflops dan petabyte sumber daya TI.
  •  Contoh: mesin pencari Web / database untuk memproses jutaan transaksi per detik
3. Penawaran Concurrency:
  • Sebuah sumber daya komputasi tunggal hanya satu hal pada suatu waktu. Beberapa sumber dapat menghitung banyak hal sekaligus.
  • Contoh: Collaborative Networks, tempat global di mana orang-orang dari seluruh dunia dapat bertemu dan melakukan pekerjaan "hampir".
4. Manfaat sumber non-lokal:
  • Menggunakan sumber daya komputasi pada wide area network atau bahkan Internet ketika sumber daya lokal menghitung langka atau tidak memadai.
  • Contoh: SETI @ home (setiathome.berkeley.edu) lebih dari 1,5 juta pengguna di hampir setiap negara di dunia. Sumber: www.boincsynergy.com/stats/ (Juni 2015).
5. Untuk membuat lebih baik menggunakan hardware paralel mendasari:
  • Komputer modern, bahkan laptop, yang arsitektur paralel dengan prosesor ganda / core.
  • Software paralel dirancang khusus untuk perangkat paralel dengan beberapa core, benang, dll
  • Dalam kebanyakan kasus, menjalankan program serial pada komputer modern "buang" kekuatan potensial.
Implemantasi Pada Perusahaan

Secara historis, komputasi paralel dianggap "high end komputasi," dan digunakan untuk model masalah kompleks di banyak bidang ilmu pengetahuan dan teknologi:
  1.  Suasana, bumi, lingkungan
  2. Fisika - diterapkan, nuklir, partikel, benda terkondensasi, tekanan tinggi, fusion, Photonics
  3. Bioscience, Bioteknologi, Genetika
  4. Kimia, Ilmu Molekuler
  5. Geologi, seismologi
  6. Teknik Mesin - prosthetics untuk pesawat ruang angkasa
  7. Teknik Elektro, Circuit Design, Microelectronics
  8.  Ilmu Komputer, Matematika
  9. Pertahanan, senjata