TUGAS SOFTSKILL PARALLEL COMPUTATION
PARALLEL COMPUTATION
Komputasi parallel merupakan proses komputasi yang dilakukan secara bersamaan dengan menggunakan beberapa komputer secara bersamaan. Mekanisme dari komputasi paralalel ini adalah beberapa infra struktur komputer dihubungkan ke dalam suatu jaringan yang sama dimana beberapa komputer tersebut dapat saling terhubung untuk bekerja sama secara parallel untuk menyelesaikan suatu masalah. Proses kumputasi parallel ini memerlukan kapasitas yang besar karena harus mengolah data dalam jumlah besar seperti (misalkan industri keuangan) dan umum ditemui juga di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi) dll.
Fungsi Paralel Processing
Paralel Processing merupakan salah satu teknik yang digunakan dalam komputasi, yaitu teknik yang menggunakan dua atau lebih processor dalam melakukan komputasi dan dilakukan secara bersamaan. Selain itu, komputasi adalah suatu aktifitas penghitungan atau pemecahan masalah dan prosessor merupakan sumber semua perintah. Jika diibaratkan dalam makhluk hidup, prosessor merupakan otaknya. Idealnya satu komputer hanya memiliki satu prosesor saja, namun dengan berkembangnya teknologi, munculah multi-prosesor dimana dalam satu komputer terdapat dua prosessor yang digabung menjadi satu, contohnya Dual Core, Core 2 Duo, Quad Core, dan lain sebagainya. Dalam paralel processing ini juga memiliki berbagai kelemahan dan kelebihan dimana, untuk memiliki banyak prosessor memerlukan biaya yang tidak sedikit, tetapi dengan banyaknya prosessor maka proses komputasinya pun semakin cepat.
Tujuan Paralel Processing
Tujuan utama dari pemrosesan 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 mudah untuk diingat adalah, bila kita dapat merebus air sebelum memotong-motong bawang saat kamu akan masak, waktu yang kamu butuhkan akan lebih sedikit dibandingkan bila kamu mengerjakan hal tersebut secara berurutan (serial). Atau waktu yang kamu butuhkan pada saat memotong bawang akan lebih sedikit jika kamu kerjakan berdua.
Kinerja Komputasi dengan Parallel Processing
Komputasi Paralel merupakan salah satu teknologi paling menarik sejak ditemukannya komputer pada tahun 1940-an. Terobosan dalam pemorosesan paralel selalu berkembang dan mendapatkan tempat disamping teknologi-teknologi lainnya sejak Era Kebangkitan (1950-an), Era Mainframe (1960-an), Era Minis (1970-an), Era PC (1980-an), dan Era Komputer Paralel (1990-an). Dengan berbagai pengaruh atas perkembangan teknologi lainnya, dan bagaimana teknologi ini mengubah persepsi terhadap komputer, dapat dimengerti betapa pentingnya komputasi parallel itu. Inti dari komputasi parallel yaitu hardware, software, dan aplikasinya. Paralel prosesing merupakan suatu pemrosesan informasi yang lebih mendekatkan pada manipulasi rata-rata dari elemen data terhadap satu atau lebih penyelesaian proses dari sebuah masalah. Dengan kata lain komputasi parallel adalah komputer dengan banyak processor dapat melakukan parallel processing dengan cara membagi-bagi proses ke source-source yang dimiliki. Paradigma pemrosesan parallel bergantung pada model SIMD (Single Instruction Multiple Data), dan paradigma fungsional dataflow yang memperkenalkan konsep modelMIMD (Multiple Instrution Multiple Data). Suatu program paralel memerlukan koordinasi ketika sebuah tugas bergantung pada tugas lainnya. Ada dua macam bentuk koordinasi pada komputer paralel, yaitu asynchronous dan synchronous. Bentuksynchronous merupakan koordinasi pada hardware yang memaksa semua tugas agar dilaksanakan pada waktu yang bersamaan dengan mengesampingkan adanya ketergantungan tugas yang satu dengan yang lainnya. Sementara bentuk asynchronousmengandalkan mekanisme pengunci untuk mengkoordinasikan processor tanpa harus berjalan bersamaan.
Hubungan Antara Komputasi Modern dan Parallel Processing
Pemrosesan paralel juga disebut komputasi paralel. Dalam upaya lebih murah pengolahan komputasi paralel menyediakan alternatif pilihan yang layak. Waktu idle siklus prosesor di seluruh jaringan dapat digunakan secara efektif oleh perangkat lunak komputasi terdistribusi yang canggih. Pengolahan paralel istilah digunakan untuk mewakili kelas besar teknik yang digunakan untuk memberikan tugas pengolahan simultan data untuk tujuan meningkatkan kecepatan komputasi dari sistem komputer.
Kelebihan dan Kekurangan Paralel Processing
Kelebihan :
Waktu eksekusi lebih cepat
Throughput jadi lebih tinggi
Kerugian :
Perangkat keras lainnya yang dibutuhkan
Kebutuhan daya juga lebih
Tidak baik untuk daya rendah dan perangkat mobile
Paralel processing adalah salah satu teknik komputasi modern
Karena membutuhkan banyak prosesor maka biaya mahal
A. Parallelism Concept
Komputasi paralel merupakan salah satu teknik komputasi, dimana proses komputasinya dilakukan oleh beberapa resources ( komputer ) yang independen, secara bersamaan. Komputasi paralel biasanya diperlukan pada saat terjadinya pengolahan data dalam jumlah besar ( di industri keuangan, bioinformatika, dll ) atau dalam memenuhi proses komputasi yang sangat banyak. Selanjutnya, komputasi paralel ini juga dapat ditemui dalam kasus kalkulasi numerik dalam penyelesaian persamaan matematis di bidang fisika ( fisika komputasi ), kimia ( kimia komputasi ), dll. Dalam menyelesaikan suatu masalah, komputasi paralel memerlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel.
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. Tidak berarti dengan mesin paralel semua program yang dijalankan diatasnya otomatis akan diolah secara paralel. Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah / operasi secara bersamaan ( komputasi paralel ), baik dalam komputer dengan satu ( prosesor tunggal ) ataupun banyak ( prosesor ganda dengan mesin paralel ) CPU. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam suatu jaringan komputer lebih sering istilah yang digunakan adalah sistem terdistribusi ( distributed computing ). 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 yang 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.
B. Distributed Processing
Distributed Processing adalah aktivitas memproses informasi dalam suatu organisasi yang dijalankan oleh jaringan komputer yang tersambung oleh saluran telekomunikasi yang terpusat pada fasilitas induk komputer.
Proses ini menggunakan pemrosesan paralel pada beberapa mesin. Misalnya proses transaksi yang terjadi pada beberapa mesin ATM sebuah bank. Ketika ribuan nasabah menggunakan mesin ATM pada saat yang bersamaan, bayangkan berapa banyak proses yang harus dikerjakan jika hanya terdapat 1 komputer server. Oleh karena itu dengan menggunakan Distributed Processing, beban pemrosesan yang besar dapat di kerjakan oleh beberapa komputer yang terhubung oleh jaringan dalam waktu yang bersamaan secara simultan. Beban pemrosesan yang besar itu dipecah menjadi beberapa beban kecil guna mempercepat proses.
C. Architectural Parallel Computer
Arsitektur paralel komputer menurut Klasifikasi Flynn’s :
SISD
Single Instruction – Single Data. Komputer jenis ini hanya memiliki satu prosesor ( single processor ). Dimana semua instruksi di eksekusi secara serial ( terurut satu demi satu ) dan memungkinkan adanya overlapping di setiap bagian instruksi dalam pelaksanaan eksekusi. Komputer ini adalah tipe komputer konvensional. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.
SIMD
Single Instruction – Multiple Data. Komputer jenis ini hanya dapat mengeksekusi satu instruksi dan memiliki lebih dari satu prosesor. Satu eksekusi dilakukan secara paralel pada data yang berbeda pada level lock-step. Komputer vektor adalah salah satu komputer paralel yang menggunakan arsitektur ini. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor ( GPU ).
MISD
Multiple Instructions – Single Data. Belum ada perwujudan nyata dari komputer jenis ini kecuali dalam bentuk prototipe untuk penelitian. Teorinya komputer ini memiliki satu prosesor dan mengeksekusi beberapa instruksi secara paralel tetapi praktiknya tidak ada komputer yang dibangun dengan arsitektur ini karena sistemnya tidak mudah dipahami.
MIMD
Multiple Instructions – Multiple Data. Komputer jenis ini dapat mengeksekusi lebih dari satu instruksi secara paralel dengan lebih dari satu prosesor. Tipe komputer ini yang paling banyak digunakan untuk membangun komputer paralel, bahkan banyak supercomputer yang menerapkan arsitektur ini. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.
D. Pengantar Thread Programming
Threading / Thread adalah sebuah alur kontrol dari sebuah proses. Konsep threading adalah menjalankan 2 proses ( proses yang sama atau proses yang berbeda ) dalam satu waktu. Contohnya sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network. Threading dibagi menjadi 2 :
Static Threading
Teknik ini biasa digunakan untuk komputer dengan chip multiprocessors dan jenis komputer shared-memory lainnya. Teknik ini memungkinkan thread berbagi memori yang tersedia, menggunakan program counter dan mengeksekusi program secara independen. Sistem operasi menempatkan satu thread pada prosesor dan menukarnya dengan thread lain yang hendak menggunakan prosesor itu.
Dynamic Multithreading
Teknik ini merupakan pengembangan dari teknik sebelumnya yang bertujuan untuk kemudahan karena dengannya programmer tidak harus pusing dengan protokol komunikasi, load balancing, dan kerumitan lain yang ada pada static threading. Concurrency platform ini menyediakan scheduler yang melakukan load balacing secara otomatis. Walaupun platformnya masih dalam pengembangan namun secara umum mendukung dua fitur : nested parallelism dan parallel loops.
SUMBER :
http://okyasha7.blogspot.com/2016/06/tugas-softskill-parallel-computation.html?m=1
https://www.google.com/amp/s/krustybrain.wordpress.com/2013/05/25/tugas-4-softskill-pengantar-komputasi-modern-sem-8/amp/
http://bramantyads.blogspot.com/2012/05/paralel-processing.html?m=1
















