Rangkuman Komputer Paralel

Definisi Komputer Paralel

Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer independen secara bersamaan. Ini umumnya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar (di industri keuangan, bioinformatika, dll) ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua umum ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi) dll.

Tujuan Komputer Paralel

Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan. Analogi yang paling gampang adalah, bila anda dapat merebus air sambil memotong-motong bawang saat anda akan memasak, waktu yang anda butuhkan akan lebih sedikit dibandingkan bila anda mengerjakan hal tersebut secara berurutan (serial). Atau waktu yg anda butuhkan memotong bawang akan lebih sedikit jika anda kerjakan berdua.

Performa dalam pemrograman paralel diukur dari berapa banyak peningkatan kecepatan (speed up) yang diperoleh dalam menggunakan tehnik paralel. Secara informal, bila anda memotong bawang sendirian membutuhkan waktu 1 jam dan dengan bantuan teman, berdua anda bisa melakukannya dalam 1/2 jam maka anda memperoleh peningkatan kecepatan sebanyak 2 kali.

Arsitektur Komputer Paralel:

  • Embarasingly Parallel adalah pemrograman paralel yang digunakan pada masalah-masalah yang bisa diparalelkan tanpa membutuhkan komunikasi satu sama lain. Sebenarnya pemrograman ini bisa dibilang sebagai pemrograman paralel yang ideal, karena tanpa biaya komunikasi, lebih banyak peningkatan kecepatan yang bisa dicapai.
    • Taksonomi dari model pemrosesan paralel dibuat berdasarkan alur instruksi dan alur data yang digunakan:
  • SISD Single Instruction Single Datapath, ini prosesor tunggal, yang bukan paralel.
  • SIMD Single Instruction Multiple Datapath, alur instruksi yang sama dijalankan terhadap banyak alur data yang berbeda. Alur instruksi di sini kalau tidak salah maksudnya ya program komputer itu. trus datapath itu paling ya inputnya, jadi inputnya lain-lain tapi program yang digunakan sama.
  • MIMD Multiple Instruction Multiple Datapath, alur instruksinya banyak, alur datanya juga banyak, tapi masing-masing bisa berinteraksi.
  •  MISD Multiple Instruction Single Datapath, alur instruksinya banyak tapi beroperasi pada data yang sama.

Proses distribusi

Kata didistribusikan dalam istilah seperti “sistem terdistribusi”, “didistribusikan pemrograman”, dan “algoritma terdistribusi” awalnya merujuk pada jaringan komputer dimana setiap komputer yang didistribusikan secara fisik dalam beberapa wilayah geografis. Istilah yang saat ini digunakan dalam lebih luas akal, bahkan mengacu pada proses otonom yang dijalankan pada komputer fisik yang sama dan berinteraksi satu sama lain dengan pesan lewat Meskipun tidak ada definisi tunggal dari sistem terdistribusi, [6] mendefinisikan sifat berikut yang umum digunakan.:

Ada beberapa entitas komputasi otonom, masing-masing memiliki memori lokal sendiri. Entitas berkomunikasi satu sama lain dengan pesan yang lewat. entitas komputasi disebut komputer atau node. Sebuah sistem terdistribusi mungkin memiliki tujuan bersama, seperti pemecahan masalah komputasi yang besar. [9] Atau, setiap komputer mungkin memiliki pengguna sendiri dengan kebutuhan individu, dan tujuan dari sistem terdistribusi adalah untuk mengkoordinasikan penggunaan sumber daya bersama atau memberikan layanan komunikasi kepada pengguna.

Sifat khas lain dari sistem terdistribusi adalah sebagai berikut:

  •  Sistem ini harus mentolerir kegagalan dalam komputer pribadi.

  • Struktur sistem (topologi jaringan, latency jaringan, jumlah komputer) tidak diketahui sebelumnya, sistem dapat terdiri dari berbagai jenis komputer dan link jaringan, dan sistem dapat berubah selama pelaksanaan program didistribusikan.

  • Setiap komputer hanya memiliki terbatas, pandangan yang tidak lengkap dari sistem. Setiap komputer mungkin tahu hanya satu bagian dari input.

Paralel dan komputer terdistribusi

Sistem terdistribusi adalah kelompok jaringan komputer, yang memiliki tujuan yang sama untuk pekerjaan mereka. Istilah “komputasi bersamaan”, “komputasi paralel”, dan “komputasi terdistribusi” memiliki banyak tumpang tindih, dan tidak ada perbedaan yang jelas antara mereka ada Sistem yang sama dapat dicirikan baik sebagai “parallel” dan “didistribusikan”.; prosesor dalam sistem terdistribusi khas berjalan bersamaan secara paralel komputasi paralel dapat dilihat sebagai bentuk tertentu erat komputasi terdistribusi, dan komputasi terdistribusi dapat dilihat sebagai bentuk longgar ditambah komputasi paralel. Namun demikian, adalah mungkin untuk mengklasifikasikan sistem kira-kira bersamaan sebagai “paralel” atau “didistribusikan” dengan kriteria sebagai berikut:

Dalam komputasi paralel, semua prosesor mungkin memiliki akses ke memori bersama untuk bertukar informasi antara prosesor.

Dalam komputasi terdistribusi, masing-masing prosesor memiliki memori pribadi (memori terdistribusi). Informasi dipertukarkan dengan melewatkan pesan antara prosesor.

setiap komputer memiliki memori lokal sendiri, dan informasi dapat dipertukarkan hanya dengan melewatkan pesan dari satu node ke yang lain dengan menggunakan link komunikasi yang tersedia.

Situasi ini semakin rumit oleh penggunaan tradisional istilah paralel dan algoritma terdistribusi yang tidak cukup cocok dengan definisi di atas sistem paralel dan terdistribusi, lihat dasar-dasar Teoritis bawah untuk pembahasan lebih rinci. Namun demikian, sebagai aturan praktis, komputasi paralel kinerja tinggi dalam shared-memory multiprosesor menggunakan algoritma paralel sedangkan koordinasi dari sistem terdistribusi skala besar menggunakan algoritma didistribusikan.

Pengantar Thread Programming

Dalam ilmu komputer, sebuah thread eksekusi adalah urutan terkecil instruksi diprogram yang dapat dikelola secara independen oleh sistem operasi scheduler. Sebuah thread adalah proses ringan. Pelaksanaan threads dan proses berbeda dari satu sistem operasi yang lain, tetapi dalam banyak kasus, thread yang terkandung di dalam proses. Beberapa threads bisa ada dalam proses yang sama dan berbagi sumber daya seperti memori, sedangkan proses yang berbeda tidak berbagi sumber daya tersebut. Secara khusus, threads-threads proses berbagi petunjuk yang terakhir (kode) dan konteksnya (nilai-nilai yang variabel yang referensi pada saat tertentu).

Pada prosesor tunggal, multithreading umumnya terjadi pada saat-division multiplexing (seperti dalam multitasking): switch prosesor antara threads yang berbeda. Konteks ini beralih umumnya terjadi cukup sering bahwa pengguna merasakan threads atau tugas sebagai berjalan pada waktu yang sama. Pada sistem multiprosesor atau multi-core, threads dapat benar-benar bersamaan, dengan setiap prosesor atau inti mengeksekusi thread terpisah secara bersamaan.

Banyak sistem operasi modern langsung mendukung baik time-sliced dan multiprosesor threading dengan scheduler proses. Kernel sistem operasi memungkinkan programmer untuk memanipulasi threads melalui antarmuka system call. Beberapa implementasi yang disebut kernel thread, sedangkan proses ringan (LWP) adalah jenis spesifik kernel thread yang berbagi negara dan informasi yang sama.

Program dapat memiliki threads user-space ketika threading dengan timer, sinyal, atau metode lain untuk menghentikan eksekusi mereka sendiri, melakukan semacam ad-hoc time-slicing.

Pengantar Message Parsing, OpenMP

Message Parsing dalam ilmu komputer adalah suatu bentuk komunikasi yang digunakan dalam komputasi paralel, pemrograman berorientasi obyek, dan komunikasi antar. Dalam model ini, proses atau benda dapat mengirim dan menerima pesan (yang terdiri dari nol atau lebih byte, struktur data yang kompleks, atau bahkan segmen kode) ke proses lainnya. Dengan menunggu pesan, proses juga dapat menyinkronkan

Message passing adalah paradigma komunikasi di mana pesan dikirim dari pengirim ke satu atau lebih penerima. Bentuk pesan termasuk (remote) pemanggilan metode, sinyal, dan paket data. Ketika merancang sebuah sistem lewat pesan beberapa pilihan yang dibuat:

  •  Apakah pesan ditransfer andal
  •  Apakah pesan dijamin akan disampaikan dalam rangka
  • Apakah pesan yang melewati satu-ke-satu (unicast), satu-ke-banyak (multicast atau broadcast), banyak-ke-satu (client-server), atau banyak-ke-banyak (All-to-Semua).
  • Apakah komunikasi sinkron atau asinkron

Dasar teoritis yang menonjol perhitungan bersamaan, seperti model Aktor dan bate proses didasarkan pada pesan lewat. Implementasi sistem konkuren yang menggunakan pesan lewat dapat memiliki pesan lewat sebagai bagian integral dari bahasa, atau sebagai rangkaian perpustakaan panggilan dari bahasa. Contoh mantan meliputi banyak sistem objek terdistribusi. Contoh yang terakhir termasuk sistem operasi mikrokernel yang menyampaikan pesan antara satu kernel dan satu atau lebih blok Server, dan Message Passing Antarmuka yang digunakan dalam komputasi kinerja tinggi.

OpenMP adalah Application Program Interface (API), bersama-sama didefinisikan oleh sekelompok perangkat keras komputer utama dan vendor perangkat lunak. OpenMP menyediakan portabel, model yang terukur untuk pengembang aplikasi paralel memori bersama. API mendukung C / C + + dan Fortran pada berbagai arsitektur. Tutorial ini mencakup sebagian besar fitur utama OpenMP, termasuk berbagai konstruksi dan arahan untuk menentukan daerah paralel, pembagian kerja, sinkronisasi dan lingkungan data. Fungsi perpustakaan runtime dan variabel lingkungan juga dibahas. Tutorial ini mencakup baik C dan Fortran kode contoh dan latihan laboratorium.

Tingkat / Prasyarat: Tutorial ini adalah salah satu dari delapan tutorial dalam 4 + hari “Menggunakan Superkomputer LLNL” lokakarya. Hal ini ditujukan untuk mereka yang baru untuk pemrograman paralel dengan OpenMP. Pemahaman dasar pemrograman paralel dalam C atau Fortran diperlukan. Bagi mereka yang tidak terbiasa dengan Pemrograman Paralel pada umumnya, materi yang dibahas dalam EC3500: Pengantar Komputasi Paralel akan sangat membantu.

Pemrogramman CUDA GPU

CUDA adalah arsitektur komputasi paralel NVIDIA yang memungkinkan peningkatan dramatis dalam kinerja komputasi dengan memanfaatkan kekuatan GPU (graphics processing unit).

Dengan jutaan CUDA-enabled GPU terjual hingga saat ini, pengembang perangkat lunak, ilmuwan dan peneliti yang menemukan penggunaan yang luas-luas untuk CUDA, termasuk gambar dan pemrosesan video, biologi komputasi dan kimia, simulasi dinamika fluida, CT rekonstruksi citra, analisis seismik, ray tracing , dan masih banyak lagi.

Komputer Paralel menggunakan CUDA

Komputasi berkembang dari “central processing” pada CPU untuk “co-processing” pada CPU dan GPU. Untuk mengaktifkan ini paradigma komputasi baru, NVIDIA menemukan arsitektur komputasi paralel CUDA yang sekarang pengiriman di GeForce, ION Quadro, dan Tesla GPU, mewakili dasar terinstal signifikan untuk pengembang aplikasi. Di pasar konsumen, hampir setiap aplikasi video yang konsumen utama telah, atau akan segera, dipercepat oleh CUDA, termasuk produk dari Teknologi Elemental, MotionDSP dan LoiLo, CUDA telah antusias diterima di bidang penelitian ilmiah. Misalnya, CUDA sekarang mempercepat AMBER, sebuah program simulasi dinamika molekuler digunakan oleh lebih dari 60.000 peneliti dalam dunia akademis dan perusahaan farmasi di seluruh dunia untuk mempercepat penemuan obat baru.Di pasar keuangan, Numerix dan CompatibL mengumumkan dukungan CUDA untuk aplikasi counterparty risk baru dan mencapai speedup 18X. Numerix digunakan oleh hampir 400 lembaga keuangan. Indikator adopsi CUDA adalah jalan dari Tesla GPU untuk komputasi GPU. Sekarang ada lebih dari 700 kelompok GPU terpasang di seluruh dunia di Fortune 500 perusahaan mulai dari Schlumberger dan Chevron di sektor energi untuk BNP Paribas di bidang perbankan.

Dan dengan peluncuran terbaru dari Microsoft Windows 7 dan Apple Snow Leopard, komputasi GPU akan mainstream. Dalam sistem operasi baru, GPU tidak hanya akan menjadi prosesor grafis, tetapi juga tujuan paralel prosesor umum dapat diakses oleh aplikasi apapun.

Article written by

Strong personality may ruin your Adult Standart

Please comment with your real name using good manners.

Leave a Reply