Academia.eduAcademia.edu

Paralell Computer

PEMROSESAN PARALELL Candra Aditama 2014.02477.11.0703 STMIK JENDERAL ACHMAD YANI YOGYAKARTA A.    PENGERTIAN PEMROSESAN PARALEL Pengertian pemrosesan parallel  adalah : Suatu operasi computer dengan 2 program atau lebih yang di kerjakan secara seretak atau bersama – sama dengan menggunakan lebih dari satu unit pengolah. Tujuan pemrosesan parallel adalah : memiliki kecepatan kemampuan pemrosesan dan menaikkannya dimana sejumlah pemrosesan dapat di kerjakan selama waktu interval tertentu sehingga di peroleh waktu eksekusi lebih cepat. Para perancang komputer selalu berusaha untuk meningkatkan kinerja mesin-mesin yang dirancangnya.Satu cara yang dilakukan adalah membuat chip-chip agar bekerja lebih cepat dengan menambah kecepatan detaknya, namun untuk semua desain baru, cara tersebut masih sulit untuk dilakukan. Oleh karena itu, sebagian besar arsitektur komputer beralih ke paralelisme (melakukan dua hal atau lebih secara sekaligus) sebagai suatu cara untuk mencapai kinerja yang lebih tinggi pada suatu kecepatan detak tertentu. Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam praktek, seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbeda-beda tanpa berkaitan di antaranya. Konsep keparalelan itu sendiri dapat ditinjau dari aspek design mesin paralel, perkembangan bahasa pemrograman paralel atau dari aspek pembangunan dan analisis algoritma paralel. Algoritma paralel itu sendiri lebih banyak difokuskan kepada algoritma untuk menyelesaikan masalah numerik karena masalah numerik merupakan salah satu masalah yang memerlukan kecepatan komputasi yang sangat tinggi. Sebagian besar komputer hanya mempunyai satu CPU, namun ada yang mempunyai lebih dari satu. Bahkan juga ada komputer buan CPU. Komputer dengan satu CPU dapat melakukan parallel processing dengan menghubungkannya dengan komputer lain pada jaringan. Namun, parallel processing ini memerlukan software canggih yang disebut distributed processing software. Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel computing. Komputer dikatakan sebagai mesin komputasi paralel jika memenuhi beberapa syarat berikut ini: Data yang diproses dipecah menjadi bagian-bagian terpisah yang bekerja secara independen dan terus-menerus. Proses pengeksekusian instruksi ganda. Sehingga dalam sekali waktu, bisa dihasilkan 2 atau lebih suatu output data. Untuk lebih detilnya bisa dibaca pada sub bab taksonomi Flynn. Yang dalam hal ini sangat berbeda dengan paradigma perkembangan pengolahan data yang berkisar pelebaran jalur data, bukan penjamakan instruksi. Contohnya adalah dimulai dari 8 bit pemroses kemudian berkembang menjadi 16 bit, 32 bit, dan sekarang ini yang sedang populer, 64 bit. Dapat menyelesaikan tugas lebih cepat daripada dengan perangkat serial. Bentuk fisik komputer paralel sendiri bisa dalam beberapa bentuk: Sebuah komputer dengan prosesor ganda. Bukan prosesor dengan inti ganda. Beberapa komputer yang terpisah tetapi terkoneksi dengan jaringan. Jaringan ini, bisa merupakan jaringan lokal, atau pun jaringan global. Gabungan keduanya. B. ARSITEKTUR KOMPUTER PARALEL Pengelompokan Komputer Berdasarkan jumlah aliran instruksi dan aliran datanya, Michael J. Flynn pada tahun 1966 mengelompokkan komputer digital menjadi empat golongan besar [Hwa85]. Aliran instruksi (instruction stream) adalah urutan instruksi yang dieksekusi oleh sistem komputer, sedangkan aliran data (data stream) adalah urutan data yang diolah termasuk data masukan, bagian dari data, maupun data sementara yang dipanggil atau digunakan oleh aliran instruksi. Keempat kelompok komputer tersebut adalah : Komputer SISD (Single Instruction stream-Single Data stream) Pada komputer jenis ini semua instruksi dikerjakan terurut satu demi satu, tetapi juga dimungkinkan adanya overlapping dalam eksekusi setiap bagian instruksi (pipelining). Pada umumnya komputer SISD berupa komputer yang terdiri atas satu buah pemroses (single processor). Namun komputer SISD juga mungkin memiliki lebih dari satu unit fungsional (modul memori, unit pemroses, dan lain-lain), selama seluruh unit fungsional tersebut berada dalam kendali sebuah unit pengendali. Skema arsitektur global komputer SISD. Komputer SIMD (Single Instruction stream-Multiple Data stream) Pada komputer SIMD terdapat lebih dari satu elemen pemrosesan yang dikendalikan oleh sebuah unit pengendali yang sama. Seluruh elemen pemrosesan menerima dan menjalankan instruksi yang sama yang dikirimkan unit pengendali, namun melakukan operasi terhadap himpunan data yang berbeda yang berasal dari aliran data yang berbeda pula. Komputer MISD (Multiple Instruction stream-Single Data stream) Komputer jenis ini memiliki n unit pemroses yang masing-masing menerima dan mengoperasikan instruksi yang berbeda terhadap aliran data yang sama, dikarenakan setiap unit pemroses memiliki unit pengendali yang berbeda. Keluaran dari satu pemroses menjadi masukan bagi pemroses berikutnya. Belum ada perwujudan nyata dari komputer jenis ini kecuali dalam bentuk prototipe untuk penelitian. Komputer MIMD (Multiple Instruction stream-Multiple Data stream) Pada sistem komputer MIMD murni terdapat interaksi di antara n pemroses. Hal ini disebabkan seluruh aliran dari dan ke memori berasal dari space data yang sama bagi semua pemroses. Komputer MIMD bersifat tightly coupled jika tingkat interaksi antara pemroses tinggi dan disebut loosely coupled jika tingkat interaksi antara pemroses rendah. C. KOMPUTASI PARALEL Komputer sekuensial - berdasarkan klasifikasi Flynn adalah kelompok komputer SISD – hanya mempunyai satu unit pengendali untuk menentukan instruksi yang akan dieksekusi. Pada setiap satuan waktu hanya satu instruksi yang dapat dieksekusi, dimana kecepatan akses ke memori dan kecepatan piranti masukan dan keluaran dapat memperlambat proses komputasi. Beberapa metode dibangun untuk menghindari masalah tersebut, seperti penggunaan cache memory. Namun komputer sekuensial ini tetap mengalami keterbatasan jika menangani masalah yang memerlukan kecepatan tinggi. Hal-hal tersebut di atas pada akhirnya melatarbelakangi lahirnya sistem komputer paralel. Berdasarkan klasifikasi Flynn, komputer paralel termasuk kelompok SIMD atau MIMD. Komputer paralel mempunyai lebih dari satu unit pemroses dalam sebuah komputer yang sama. Halyang membuat suatu komputer dengan banyak prosesor disebut sebagai komputer paralel adalah bahwa seluruh prosesor tersebut dapat beroperasi secara simultan. Jika tiap-tiap prosesor dapat mengerjakan satu juta operasi tiap detik, maka sepuluh prosesor dapat mengerjakan sepuluh juta operasi tiap detik, seratus prosesor akan dapat mengerjakan seratus juta operasi tiap detiknya [Les93]. Pada dasarnya aktivitas sebuah prosesor pada komputer paralel adalah sama dengan aktivitas sebuah prosesor pada komputer sekuensial. Tiap prosesor membaca (read) data dari memori, memprosesnya dan menuliskannya (write) kembali ke memori. Aktivitas komputasi ini dikerjakan oleh seluruh prosesor secara paralel. Paralelisme Ada dua bentuk umum paralelisme: paralelisme instruksi-level dan paralelisme prosesor-level. Pada bentuk pertama, paralelisme dimanfaatkan dalam instruksi-instriuksi individu agar dapat mngeksekusi lebih banyak instruksi per detikdari mesin tersebut. Pada betuk kedua, berbagai macam CPU bersama-sama menangani masalah yang sama. Setiap pendekatan memiliki keunggulannya masing-masing. D. MULTIPROSESOR DAN MULTIKOMPUTER Multiprosesor yaitu suatu sistem dengan lebih dari satu CPU yang memiliki sebuah memori bersama, seperti sekelompok orang dalam suatu ruangan yang memiliki papan tulis bersama. Prosesor berkomunikasi dengan prosesor lain dengan menulis pesan ke memori global dimana prosesor kedua dapat membaca pesan tersebut pada lokasi memori yang sama. Skema arsitektur memori bersama dapat dilihat pada gambar . Memori Bersama Prosesor1, Prosesor2, Prosesor3 Semua prosesor dapat melakukan komputasi secara paralel dan masing-masing dapat mengakses memori melalui bus. Bus bertanggung jawab mengatur permintaan pemakaian memori yang berlangsung secara simultan oleh beberapa prosesor. Bus juga bertanggung jawab untuk meyakinkan bahwa semua prosesor dilayani secara adil dengan waktu tunda (delay) akses yang minimum. Sedangkan Multikomputer adalah sistem-sistem yang terdiri dari banyak komputer yang saling terhubung, yang masing-masing memiliki memorinya sendiri-sendiri. Masing-masing prosesor mempunyai satu atau lebih hubungan langsung ke prosesor lain untuk transmisi data. Jika prosesor tidak mempunyai koneksi langsung ke prosesor lain, komunikasi dapat dilangsungkan melalui prosesor antara (intermediate processor) untuk mengirim data. Transmisi data antar prosesor membutuhkan sejumlah waktu yang selanjutnya disebut waktu tunda komunikasi. Jika selama eksekusi program sering terjadi komunikasi antar prosesor, maka jumlah waktu tunda komunikasi akan menambah waktu eksekusi program. Pada dasarnya waktu komunikasi sebuah message pada multicomputer, terdiri dari tiga komponen, yaitu waktu transmisi (transmision time), waktu proses (processing time) dan waktu tunggu (waiting time). Waktu transmisi adalah waktu yang dibutuhkan untuk transmisi secara fisik sejumlah bit message melalui saluran komunikasi. Waktu proses adalah waktu yang diperlukan untuk memproses suatu komputasi. Sedangkan waktu tunggu adalah waktu yang diperlukan untuk menunda pengiriman pesan. Peristiwa penundaan ini disebabkan karena prosesor tersebut sedang menerima message dari prosesor lainnya, atau karena prosesor tersebut sedang sibuk. Peristiwa penundaan ini disebut kongesti (congestion). Penundaan message dalam perjalanannya melalui prosesor-prosesor akan tergantung pada ratarata waktu tunda komunikasi yang dibutuhkan untuk transmisi setiap saluran komunikasi dan juga jumlah total saluran yang dilalui antara prosesor sumber dan prosesor tujuan. Jumlah saluran yang dilalui akan tergantung pada struktur keseluruhan jaringan komunikasi, yang disebut topologi dari multikomputer. Salah satu parameter yang penting dari topologi multikomputer ini adalah jumlah saluran yang terhubung pada setiap antar muka prosesor, yang disebut keterhubungan (connectivity) topologi. Keterhubungan ini menjadi faktor yang penting untuk menentukan beban jaringan. Parameter penting lainnya adalah diameter dari topologi, yaitu jumlah maksimum saluran yang dibutuhkan untuk mengirim suatu message pada jarak terjauh prosesor. Diameter menjadi faktor penting kinerja jaringan. Tentang MultiCore Akhir-akhir ini, prosesor lebih menekankan pada multiple core. Tetapi hal tersebut belum termasuk dalam komputasi paralel karena prosesor tersebut masih menggunakan basic pemrosesan serial. Meskipun bisa dikatakan, multicore merupakan pendekatan perlahan menuju ke pemrosesan berorientasi paralel. Kita lihat saja skema MultiCore yang dikembangkan Intel maupun AMD. Keduanya masih menggunakan basis pemrosesan sequensial. Tetapi dengan level atas pemrosesan yang tidak tunggal seperti pada komputasi PC pada umumnya. Oleh karena itu, mengapa komputasi multicore masih bisa compatible dengan perangkat lunak yang ada sebelumnya yang digunakan untuk single core. Begitu juga halnya berlaku untuk lebar jalur data. Sedangkan berdasar wikipedia tetap membagi multicore termasuk dalam komputasi paralel, yang hampir sama dengan komputer multiprosesor, karena masih dalam satu mesin komputer. Dalam hal ini wikipedia lebih menekankan pembagian berdasar penggunaan jaringan atau tidak. Antara Komputasi Serial dan Komputasi Paralel Tentu ada kekurangan pada sistem komputasi serial dan komputasi paralel. Pada komputasi serial, kekurangannya adalah ketika ingin membangun komputer dengan kecepatan tinggi: Kecepatan transmisi – kecepatan komputer berbasis serial sangat tergantung seberapa cepat data dapat berpindah dari hardware tersebut. Batas kecepatan yang pasti adalah kecepatan cahaya (30 cm/nanosecond) untuk transmisi yang bermedia cahaya atau 9 cm/nanosecond untuk transmisi yang terbuat dari tembaga. Keterbatasan pada ukuran fisik – teknologi prosesor terkini selalu bertumpukan pada seberapa banyak jumlah transistor dalam satu chip. Meskipun ukuran atomic atau molecular dapat tercapai, tetapi batas minimum dari ukuran chip tersebut akan terlampaui juga. Ekonomi – menggunakan satu buah chip prosesor dengan kecepatan lebih tinggi membuat harga prosesor itu sendiri naik dengan drastis. Sedangkan menggunakan prosesor yang tersedia dipasaran tetapi relatif cepat dan jumlah yang lebih banyak bisa menyamai kecepatan super komputer, dengan harga yang relatif lebih murah. Meskipun demikian, komputasi paralel juga memiliki kekurangan: Komputasi parallel masih kurang populer dibandingkan dengan komputasi sekuensial atau serial, seperti halnya Personal Computer. Sehingga harga setiap komponen untuk perangkat paralel tersebut masih mahal. Pemrograman paralel yang masih kurang populer. Sehingga pembuatan perangkat lunak untuk perangkat paralel masih sangat mahal, begitu juga dengan perawatan dan modifikasinya. Begitu juga dengan tenaga ahli dibidang ini sangat kecil porsinya dibandingkan dengan tenaga ahli dibidang komputasi serial. Namun, pada perkembangannya kedua komputasi tersebut akan terus mengalami perbaikan demi perbaikan yang membuat komputer semakin canggih. KESIMPULAN Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam praktek, seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbea-beda tanpa berkaitan di antaranya. Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanya di perlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak. Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan. Komputasi Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU. 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. 9