1 / 51

Komputer Paralel

Chapter 1. Komputer Paralel. Tuntutan Terhadap Kecepatan Komputasi. Tuntutan yang terus mendesak agar sistem komputer menunjukkan kecepatan komputasi yang lebih besar dari saat ini.

Télécharger la présentation

Komputer Paralel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 1 Komputer Paralel

  2. Tuntutan Terhadap Kecepatan Komputasi • Tuntutan yang terus mendesak agar sistem komputer menunjukkan kecepatan komputasi yang lebih besar dari saat ini. • Bidang yang membutuhkan kecepatan komputasi yang tinggi mencakup pemodelan numerik dan simulasi masalah ilmiah dan teknik. • Komputasi harus diselesaikan dalam waktu yang “masuk akal”.

  3. Masalah yang Merupakan Tantangan Besar … adalah masalah yang tidak dapat diselesaikan dalam waktu yang masuk akal dengan kecepatan komputer yang sekarang … → berkisar sekitar 10 tahun waktu eksekusi. Contoh • Pemodelan struktur DNA yang besar • Peramalan cuaca global • Pemodelan gerakan benda luar angkasa.

  4. Peramalan Cuaca • Atmosfir dimodelkan dengan membaginya menjadi sel-sel 3-dimensi. • Perhitungan setiap sel diulang-ulang to memodelkan perjalanan waktu.

  5. Contoh Peramalan Cuaca Global • Misalkan keseluruhan atmosfir global dibagi menjadi sel sebesar 1 mile  1 mile  1 mile dengan ketinggian 10 miles (tinggi 10 sel) - sekitar 5  108 sel. • Misalkan setiap perhitungan membutuhkan 200 operasi floating point. Dalam satu tahap, diperlukan 1011 operasi floating point. • Untuk meramalkan cuaca 7 hari dengan interval 1 menit, komputer dengan kecepatan 1Gflops (109 operasi floating point / detik) membutuhkan waktu 106 detik atau lebih dari 10 hari. • Untuk melakukan perhitungan tersebut dalam waktu 5 menit dibutuhkan komputer yang beroperasi dengan kecepatan 3.4 Tflops (3.4  1012 operasi floating point / detik).

  6. Pemodelan Gerakan Benda Luar Angkasa • Setiap benda saling menarik dengan gaya gravitasi. Gerakan setiap benda diprediksi dengan menghitung gaya total pada setiap benda. • Jika ada N benda, diperlukan perhitungan N - 1 gaya untuk setiap benda, atau sekitar N2 perhitungan. (N log2 N untuk algoritma aproksimasi yang efisien.) • Setelah menentukan posisi baru untuk setiap benda, perhitungan diulang kembali.

  7. Satu galaksi bisa memiliki sekitar 1011 bintang. • Bahkan jika satu perhitungan dilakukan dalam waktu 1 ms (angka yang sangat optimistik), diperlukan 109 tahun untuk satu iterasi dengan menggunakan algoritma N2 algorithm dan hampir satu tahun untuk satu iterasi dengan menggunakan algoritma aproksimasi N log2 N yang efisien.

  8. Simulasi Astrofisika N-benda oleh Scott Linssen (mahasiswa undergraduate UNC-Charlotte).

  9. Komputasi Paralel • Menggunakan lebih dari 1 komputer, atau komputer dengan lebih dari 1 prosesor, untuk menyelesaikan masalah. Motif • Biasanya komputasi yang lebih cepat – ide yang sangat sederhana – bahwa n komputer yang beroperasi secara simultan dapat memberikan hasil n kali lebih cepat – walaupun tidak akan mencapai n kali lebih cepat dengan berbagai alasan. • Motif lain mencakup: toleransi kesalahan, kapasitas memori yang tersedia lebih besar, ...

  10. Latar Belakang • Komputer paralel – komputer dengan lebih dari satu prosesor – dan pemrogramannya – pemrograman paralel – telah ada selama lebih dari 40 tahun.

  11. Gill menulis pada tahun 1958: “... Dengan demikian tidak ada hal baru dalam gagasan pemrograman paralel, selain penerapannya pada komputer. Penulis tidak menganggap akan ada kesulitan besar dalam perluasannya pada komputer. Tidak diharapkan bahwa teknik pemrograman yang diperlukan akan ditemukan dalam semalam. Banyak eksperimen yang masih harus dilakukan. Bagaimanapun, teknik yang biasanya digunakan dalam pemrograman saat ini didapat dengan usaha keras beberapa tahun yang lalu. Pada kenyataannya, munculnya pemrograman paralel bisa berperan dalam menghidupkan kembali semangat perintis dalam pemrograman yang tampaknya menjadi membosankan dan hanya rutin saja ...” Gill, S. (1958), “Parallel Programming,” The Computer Journal, vol. 1, April, pp. 2-10.

  12. Faktor Speedup ts Waktu eksekusi dengan 1 prosesor (algoritma sekuensial terbaik) S(p) = dengan ts adalah waktu eksekusi pada prosesor tunggal dan tp adalah waktu eksekusi pada multiprosesor. S(p) menunjukkan bertambahnya kecepatan dengan menggunakan multiprosesor. Gunakan algoritma sekuensial terbaik dengan sistem prosesor tunggal. Algoritma yang mendasari untuk implementasi paralel bisa (dan biasanya) berbeda. tp Waktu eksekusi multiprosesor dengan p prosesor

  13. Faktor speedup juga bisa dinyatakan dalam langkah komputasi: Kompleksitas waktu juga dapat diperluas dengan komputasi paralel. Jumlah langkah komputasi dengan satu prosesor S(p) = Jumlah langkah komputasi paralel dengan p prosesor

  14. Speedup Maksimum Speedup maksimum biasanya p dengan p prosesor (linear speedup). Dapat dicapai superlinear speedup (lebih besar dari p) tetapi biasanya dengan kondisi tertentu seperti: • Memori ekstra pada sistem multiprosesor • Algoritma nondeterministik

  15. Speedup Maksimum Hukum Amdahl t s ft (1 - f ) t s s Bagian serial Bagian yang dapat diparalelisasi (a) Satu prosesor (b) Multiple prosesor p prosesor (1 - f ) t / p s t p

  16. Faktor speedup dinyatakan dengan: Persamaan ini dikenal sebagai hukum Amdahl

  17. Speedup terhadap jumlah prosesor f = 0% 20 16 12 f = 5% 8 f = 10% f = 20% 4 4 8 12 16 20 Jumlah prosesor , p

  18. Bahkan dengan jumlah prosesor tak terbatas, speedup maksimum tetap terbatas sampai 1/f. Contoh Dengan hanya 5% komputasi yang serial, speedup maksimum adalah 20, berapapun jumlah prosesor.

  19. Contoh Superlinear Speedup - Searching (a) Searching setiap sub-space secara sekuensial Start Waktu t s t /p s Sub-space  t search x t /p s Solusi ditemukan x indeterminate

  20. (b) Searching setiap sub-space secara paralel  t Solusi ditemukan

  21. Dengan demikian, Speedup dinyatakan dengan t s   x + t p S(p) =  t

  22. Worst case untuk search sekuensial dengan solusi ditemukan di sub-space terakhir. Pada kasus ini, versi paralel memberikan keuntungan terbesar, yaitu p – 1   t + t s p   S(p) =  t  as t tends to zero

  23. Keuntungan terkecil versi paralel ialah jika solusi ditemukan pada sub-space pertama dari search sekuensial, yaitu Speed-up yang sebenarnya bergantung pada subspace yang mana yang menyimpan solusi, tetapi mungkin banyak sekali.  t S(p) = = 1  t

  24. Tipe Komputer Paralel Dua tipe utama: • Shared memory multiprocessor • Distributed memory multicomputer

  25. Shared Memory Multiprocessor

  26. Komputer Konvensional Terdiri dari satu prosesor yang mengeksekusi program yang tersimpan pada memori (utama): Setiap lokasi memori utama ditentukan oleh alamatnya. Alamat dimulai dari 0 sampai 2b - 1 jika ada b bit (digit biner) alamat. Memori Utama Instruksi(ke prosesor) Data (ke atau dari prosesor) Prosesor

  27. Shared Memory Multiprocessor System Cara natural untuk mengembangkan model prosesor tunggal - multiple processor dihubungkan ke multiple memory modules, sedemikian sehingga setiap prosesor dapat mengakses memory module yang manapun: Memory module One address space Interconnection network Processors

  28. Ilustrasi shared memory multiprocessor kecil yang disederhanakan Contoh: • Dual Pentium • Quad Pentium Processors Shared memory Bus

  29. Quad Pentium Shared Memory Multiprocessor Processor Processor Processor Processor L1 cache L1 cache L1 cache L1 cache L2 Cache L2 Cache L2 Cache L2 Cache Bus interface Bus interface Bus interface Bus interface Processor/ memory b us I/O interf ace Memory controller I/O b us Memory Shared memory

  30. Pemrograman Shared Memory Multiprocessors • Threads - programmer membagi program menjadi urutan paralel individu (threads), masing-masing dapat mengakses variabel yang dideklarasikan di luar thread. Contoh: Pthreads • Bahasa pemrograman sekuensial dengan preprocessor compiler directives untuk mendeklarasikan variabel yang dipakai bersama (shared variables) dan menspesifikasi paralelisme. Contoh: OpenMP – standard industri – membutuhkan compiler OpenMP

  31. Bahasa pemrograman sekuensial dengan syntax tambahan untuk mendeklarasikan variabel yang dipakai bersama dan menspesifikasi paralelisme. Contoh: UPC (Unified Parallel C) – membutuhkan compiler compiler. • Bahasa pemrograman paralel dengan syntax untuk menyatakan paralelisme - compiler membuat executable code untuk setiap prosesor (sekarang tidak umum) • Bahasa pemrograman sekuensial dan meminta parallelizing compiler untuk mengubahnya menjadi parallel executable code. - sekarang tidak umum

  32. Message-Passing Multicomputer Komputer lengkap dihubungkan melalui interconnection network: Interconnection network Messages Processor Local memory Computers

  33. Interconnection Networks • Interkoneksi yang terbatas dan lengkap • Mesh 2- dan 3-dimensi • Hypercube (sekarang tidak umum) • Menggunakan switch: • Crossbar • Tree • Multistage interconnection network

  34. Array dua-dimensi (mesh) Computer/ Links processor Juga tiga-dimensi – digunakan pada beberapa sistem dengan kinerja tinggi.

  35. Hypercube Tiga Dimensi

  36. Hypercube Empat Dimensi Hypercube yang populer pada tahun 1980-an – sekarang tidak

  37. Crossbar switch Memor ies Switches Processors

  38. Tree Root Switch Links element Processors

  39. Multistage Interconnection NetworkExample: Omega network 2 ´ 2 switch elements (straight-through or crossover connections) 000 000 001 001 010 010 011 011 Inputs Outputs 100 100 101 101 110 110 111 111

  40. Distributed Shared Memory Membuat main memory dari kelompok interconnected computers seakan-akan seperti satu memory dengan satu address space. Selanjutnya dapat digunakan teknik pemrograman shared memory. Interconnection netw or k Messages Processor Shared memory Computers

  41. Klasifikasi Flynn Flynn (1966) membuat klasifikasi komputer berdasarkan aliran instruksi dan aliran data: • Single instruction stream-single data stream (SISD) computer Komputer prosesor tunggal – dibuat satu aliran instruksi dari program. Instruksi beroperasi pada satu aliran data.

  42. Multiple Instruction Stream-Multiple Data Stream (MIMD) Computer Sistem multiprosesor general-purpose – setiap prosesor memiliki program sendiri dan dibuat satu aliran instruksi dari setiap program untuk setiap prosesor. Setiap instruksi beroperasi pada data yang berbeda. Multiprosesor shared memory dan message-passing yang telah dibahas sebelum ini termasuk dalam klasifikasi MIMD.

  43. Single Instruction Stream-Multiple Data Stream (SIMD) Computer • Komputer yang dirancang khusus – datu aliran instruksi dari satu program, tetapi terdapat banyak aliran data. Instruksi dari program di-broadcast ke lebih dari satu prosesor. Setiap prosesor mengeksekusi instruksi yang sama secara sinkron, tetapi menggunakan data yang berbeda. • Dikembangkan karena banyak aplikasi penting yang beroperasi pada banyak data.

  44. Struktur Multiple Program Multiple Data (MPMD) Termasuk klasifikasi MIMD, setiap prosesor memiliki program sendiri untuk dieksekusi: Program Program Instructions Instructions Processor Processor Data Data

  45. Struktur Single Program Multiple Data (SPMD) Terdapat satu source program yang copy-nya dieksekusi oleh setiap prosesor secara independen dan tidak sinkron. Source program dapat dibuat sedemikian rupa sehingga bagian-bagiannya dieksekusi oleh komputer-komputer tertentu bergantung pada identitas komputer tersebut.

  46. Networked Computers sebagai Computing Platform • Jaringan komputer menjadi alternatif yang sangat menarik bagi superkomputer dan sistem komputer paralel yang mahal untuk melakukan for high-performance computing di awal tahun 1990-an. • Beberapa proyek awal: • Berkeley NOW (network of workstations) project. • NASA Beowulf project.

  47. Keuntungan utama: • Workstation dan PC berkinerja tinggi tersedia dengan harga murah. • Prosesor terbaru dapat digabungkan dengan sistem jika telah tersedia. • Software yang sudah ada dapat dipakai atau dimodifikasi.

  48. Software Tools for Clusters • Berdasarkan pada Message Passing Parallel Programming: • Parallel Virtual Machine (PVM) – dikembangkan pada akhir 1980-an. Menjadi sangat populer. • Message-Passing Interface (MPI) – standardnya didefinisikan pada tahun 1990-an. • Keduanya menyediakan satu set user-level library untuk message passing. Digunakan dengan bahasa pemrograman umum (C, C++, ...).

  49. Beowulf Clusters* • Sekelompok interconnected “commodity” computers yang dapat mencapai kinerja tinggi dengan harga murah. • Biasanya menggunakan commodity interconnects - high speed Ethernet, dan Linux OS. * Beowulf merupakan nama yang diberikan oleh NASA Goddard Space Flight Center cluster project.

  50. Cluster Interconnects • Awalnya merupakan fast Ethernet on low cost clusters • Gigabit Ethernet - easy upgrade path More Specialized/Higher Performance • Myrinet - 2.4 Gbits/sec - disadvantage: single vendor • cLan • SCI (Scalable Coherent Interface) • QNet • Infiniband - may be important as infininband interfaces may be integrated on next generation PCs

More Related