Komputasi dan Parallel Processing

Komputasi
Komputasi adalah proses menghitung, membandingkan dan berbagai operasi perhitungan matematika dan logika yang bertujuan untuk menyelesaikan suatu masalah yang dikerjakan dengan program komputer yang sudah disusun sesuai dengan Algoritma yang benar. 
Setiap jenis perhitungan atau penggunaan teknologi komputer dalam pengolahan informasi. Perhitungan adalah proses setelah yang jelas model yang dipahami dan dinyatakan dalam suatu algoritma , protokol , topologi jaringan , dll Perhitungan juga merupakan subyek utama dari ilmu komputer: menyelidiki apa yang dapat atau tidak dapat dilakukan dengan cara komputasi.
Dalam prakteknya, perhitungan digital sering digunakan untuk mensimulasikan proses alam (misalnya, perhitungan Evolusi ), termasuk yang lebih alami dijelaskan oleh model analog perhitungan (misalnya, jaringan syaraf tiruan ).

Komputasi Parallel
Komputasi parallel 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. Untuk melakukan aneka jenis komputasi parallel ini diperlukan infrastruktur mesin parallel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara parallel 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 parallel. Selanjutnya pemakai harus membuat pemrograman parallel untuk merealisasikan komputasi. Tidak berarti dengan mesin parallel semua program yang dijalankan diatasnya otomatis akan diolah secara parallel.
Di dalam komputasi parallel ada yang dinamakan dengan pemrograman parallel. Pemrograman parallel 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 merah 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 merah akan lebih sedikit jika anda kerjakan berdua.
Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel computing. Pada system komputasi parallel terdiri dari beberapa unit prosesor dan beberapa unit memori. Ada dua teknik yang berbeda untuk mengakses data di unit memori, yaitu shared memory address dan message passing. Berdasarkan cara mengorganisasikan memori ini computer parallel dibedakan menjadi shared memory parallel machine dan distributed memory parallel machine.
Prosesor dan memori ini didalam mesin paralel dapat dihubungkan (interkoneksi) secara statis maupun dinamis. Interkoneksi statis umumnya digunakan oleh distributed memory system (sistem memori terdistribusi). Sambungan langsung peer to peer digunakan untuk menghubungkan semua prosesor. Interkoneksi dinamis umumnya menggunakan switch untuk menghubungkan antar prosesor dan memori. Yang perlu diingat adalah komputasi paralel berbeda dengan multitasking. Pengertian multitasking adalah komputer dengan processor tunggal mengeksekusi beberapa tugas secara bersamaan. Walaupun beberapa orang yang bergelut di bidang sistem operasi beranggapan bahwa komputer tunggal tidak bisa melakukan beberapa pekerjaan sekaligus, melainkan proses penjadwalan yang berlakukan pada sistem operasi membuat komputer seperti mengerjakan tugas secara bersamaan. Sedangkan komputasi paralel sudah dijelaskan sebelumnya, bahwa komputasi paralel menggunakan beberapa processor atau komputer. Selain itu komputasi paralel tidak menggunakan arsitektur Von Neumann. Untuk lebih memperjelas lebih dalam mengenai perbedaan komputasi tunggal (menggunakan 1 processor) dengan komputasi paralel (menggunakan beberapa processor), maka kita harus mengetahui terlebih dahulu pengertian mengenai model dari komputasi. Ada 4 model komputasi yang digunakan, yaitu:

1. SISD (Single Instruction, Single Data) adalah satu-satunya yang menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa processor. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.

2. SIMD(Single Instruction, Multiple Data) menggunakan banyak processor dengan instruksi yang sama, namun setiap processor mengolah data yang berbeda. Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain. 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).

3. MISD(Multiple Instruction, Single Data) menggunakan banyak processor dengan setiap processor menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang sama pada contoh model SIMD namun cara penyelesaian yang berbeda. Pada MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer yang menggunakan model MISD.

4. MIMD( Multiple Instruction, Multiple Data) menggunakan banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.

 Berikut ini adalah gambar perbedaa antara komputasi tunggal dengan parallel komputasi :
a)        komputasi tunggal/serial










b)        komputasi parallel











Perbandingan antara serial komputasi dan parallel komputasi
            Pada sistem komputasi parallel terdiri dari beberapa unit prosesor dan beberapa unit memori. Ada dua teknik yang berbeda untuk mengakses data di unit memori, yaitu shared memory address dan message passing. Berdasarkan cara mengorganisasikan memori ini komputer paralel dibedakan menjadi shared memory parallel machine dan distributed memory parallel machine.
            Prosesor dan memori ini didalam mesin paralel dapat dihubungkan (interkoneksi) secara statis maupun dinamis. Interkoneksi statis umumnya digunakan oleh distributed memory system (sistem memori terdistribusi). Sambungan langsung peer to peer digunakan untuk menghubungkan semua prosesor. Interkoneksi dinamis umumnya menggunakan switch untuk menghubungkan antar prosesor dan memori.
           Komunikasi data pada sistem paralel memori terdistribusi, memerlukan alat bantu komunikasi. Alat bantu yang sering digunakan oleh sistem seperti PC Jaringan pada saat ini adalah standar MPI (Message Passing Interface) atau standar PVM (Parallel Virtual Machine)yang keduanya bekerja diatas TCP/IP communication layer. Kedua standar ini memerlukan fungsi remote access agar dapat menjalankan program pada masing-masing unit prosesor.
         Salah satu protocol yang dipergunakan pada komputasi parallel adalah Network File System (NFS), NFS adalah protokol yang dapat membagi sumber daya melalui jaringan. NFS dibuat untuk dapat independent dari jenis mesin, jenis sistem operasi, dan jenis protokol transport yang digunakan. Hal ini dilakukan dengan menggunakan RPC. NFS memperbolehkan user yang telah diijinkan untuk mengakses file-file yang berada di remote host seperti mengakses file yang berada di lokal. Protokol yang digunakan protokol mount menentukan host remote dan jenis file sistem yang akan diakses dan menempatkan di suatu direktori, protokol NFS melakukan I/O pada remote file system. Protokol mount dan protokol NFS bekerja dengan menggunakan RPC dan mengiri dengan protokol TCP dan UDP. Kegunaan dari NFS pada komputasi parallel adalah untuk melakukan sharing data sehingga setiap node slave dapat mengakses program yang sama pada node master.
           Software yang diperlukan untuk Parallel komputasi adalah PGI CDK, dimana aplikasi ini telah dilengkapi dengan Cluster Development Kit dimana software ini telah memiliki feature yang lengkap bila ingin melakukan komputasi dengan parallel prosessing karena software ini telah mensupport MPI untuk melakukan perhitungan komputasi.

Parallel Processing
Parallel Processing adalah menggunakan 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 berbeda-beda tanpa berkaitan di antaranya. Dalam komputer, pemrosesan paralel merupakan pengolahan dari Program instruksi dengan membagi mereka di antara beberapa prosesor dengan tujuan untuk menjalankan program dalam waktu kurang. Dalam komputer paling awal, hanya satu program berlari pada suatu waktu. Sebuah program komputasi-intensif yang memakan waktu satu jam untuk menjalankan dan menyalin Program tape yang mengambil satu jam untuk menjalankan akan mengambil total dua jam untuk menjalankan. Bentuk awal dari pemrosesan paralel memungkinkan eksekusi interleaved kedua program bersama-sama. Komputer akan memulai operasi I / O, dan sementara itu sedang menunggu operasi untuk menyelesaikan, itu akan mengeksekusi program prosesor-intensif. Waktu eksekusi total untuk dua pekerjaan akan menjadi sedikit lebih dari satu jam.

Peningkatan berikutnya multiprogramming. Dalam sistem multiprogramming, beberapa program telah dikirim pengguna yang masing-masing diperbolehkan untuk menggunakan prosesor untuk waktu yang singkat. Untuk pengguna tampak bahwa semua program yang melaksanakan pada saat yang sama. Masalah pertama muncul pertentangan sumber daya di sistem ini. Permintaan eksplisit untuk sumber daya menyebabkan masalah dari kebuntuan.Kompetisi untuk sumber daya pada mesin tanpa dasi-melanggar instruksi mengarah pada rutin critical section.
Langkah berikutnya dalam pengolahan paralel adalah pengenalan multiprocessing. Dalam sistem ini, dua atau lebih prosesor berbagi pekerjaan yang akan dilakukan. Versi awal memiliki master / slave konfigurasi. Salah satu prosesor (master) diprogram untuk bertanggung jawab atas semua pekerjaan dalam sistem, yang lain (budak) dilakukan hanya tugas-tugas itu diberikan oleh master. Pengaturan ini diperlukan karena tidak kemudian mengerti bagaimana program mesin sehingga mereka bisa bekerja sama dalam pengelolaan sumber daya sistem.

Hubungan antara komputasi modern dengan paralel processing
Hubungan antara komputasi modern dan parallel processing sangat berkaitan, karena penggunaan komputer saat ini atau komputasi dianggap lebih cepat dibandingkan dengan penyelesaian masalah secara manual. Dengan begitu peningkatan kinerja atau proses komputasi semakin diterapkan, dan salah satu caranya adalah dengan meningkatkan kecepatan perangkat keras. Dimana komponen utama dalam perangkat keras komputer adalah processor. Sedangkan parallel processing adalah penggunaan beberapa processor (multiprocessor atau arsitektur komputer dengan banyak processor) agar kinerja computer semakin cepat.
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. Keuntungan: waktu eksekusi lebih cepat, throughput jadi lebih tinggi.
Kekurangan: perangkat keras lainnya yang dibutuhkan, kebutuhan daya juga lebih. Tidak baik untuk daya rendah dan perangkat mobile. Sehingga dikarenakan adanya keuntungan dan kemampuan dari parallel processing, maka dianggap parallel processing adalah salah satu teknik komputasi modern.

Kinerja Komputasi Modern dengan menggunakan Paralel Processing
Kinerja komputasi dengan menggunakan paralel processing itu menggunakan dan memanfaatkan beberapa komputer atau CPU untuk menemukan suatu pemecahan masalah dari masalah yang ada. Sehingga dapat diselesaikan dengan cepat daripada menggunakan satu komputer saja. Komputasi dengan paralel processing akan menggabungkan beberapa CPU, dan membagi-bagi tugas untuk masing-masing CPU tersebut. Jadi, satu masalah terbagi-bagi penyelesaiannya. Tetapi ini untuk masalah yang besar saja, komputasi yang masalah kecil, lebih murah menggunakan satu CPU saja.

Komentar :
Menurut saya Komputasi dan Parallel Processing, Komputasi ialah mengitung operasi hitungan matematika dan logika yang bertujuan untuk menyelesaikan suatu masalah, komputasi parallel itu melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer independen secara bersamaan dan parallel processing itu  adalah menggunakan lebih dari satu CPU untuk menjalankan sebuah program , dan membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan, dengan membagi- bagi tugas di masing cpu hingga lebih cepat berjalannya sebuah program.



Komentar

Postingan populer dari blog ini

Sejarah, Pengertian, Macam-macam Komputasi Modern, Kelebihan dan kekurangan Komputasi Modern

E-Agriculture, E-Health, dan E-government beserta contoh aplikasinya

Salah Satu Contoh Kasus Ketidakadilan Hukum di Indonesia