Senin, 27 Juni 2016

Parallel Computation

Nama Kelompok :1. Aji Imam Sampurno [50412518]
  2. Diah Nurfatimah [52412016]
  3. Marihot Kaisar Nabuo [54412439]
  4. Yohanes William Silalahi [57412850]
Kelas    : 4IA24
Matkul : Pengantar Komputasi Modern#
Dosen   : Dr. Rina Noviana, Skom. MMSI

A. Parallelism Concept
    Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer independen secara bersamaan. Biasanya pada saat kapasitas yang diperlukan sangat besar, baik karena pengolahan data dalam jumlah besar (di industri keuangan, bioinformatika, dan lain-lain) ataupun karena proses komputasi yang banyak. Salah satu jenis penggunaan komputasi paralel adalah PVM (Parallel Virtual Machine) yaitu sebuah perangkat lunak yang mampu mensimulasikan pemrosesan paralel pada jaringan. Tujuan dari komputasi paralel ini adalah meningkatkan kinerja komputer dalam menyelesaikan berbagai masalah, dengan membagi sebuah masalah besar ke dalam beberapa masalah kecil sehingga membuat kinerja menjadi cepat.
       Sekalipun didukung oleh teknologi prosesor yang berkembang sangat pesat, komputer sekuensial tetap akan mengalami keterbatasan dalam hal kecepatan pemrosesannya. Hal ini menyebabkan lahirnya konsep keparalelan (parallelism) untuk menangani masalah dan aplikasi yang membutuhkan kecepatan pemrosesan yang sangat tinggi, seperti misalnya prakiraan cuaca, simulasi pada reaksi kimia, perhitunggan aerodinamika dan lain-lain.
     Konsep keparalelan itu sendiri dapat ditinjau dari aspek design mesin paralel, perkembangan bahasa pemrograman paralel atau dari aspek pembangunan dan nalisis 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. misalnya dalam kalkulasi numerik untuk menyelesaikan persamaan matematis dibidang fisika (fisika komputasi), kimia (kimia komputasi) dan lain-lain.

B. Distributed Processing
       Paralel Processing adalah kemampuan menjalankan tugas atau aplikasi lebih dari satu aplikasi dan dijalankan secara simultan atau bersamaan pada sebuah komputer. Secara umum, ini adalah sebuah teknik dimana sebuah masalah dibagi dalam beberapa maslaah kecil untuk mempercepat proses penyelesaian masalah. Maka diperlukan perangkat lunak pendukung yang disebut middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel.
        Distribusi pengolahan paralel menggunakan pemrosesan paralel pada beberapa mesin. Salah satu contoh dari hal ini adalah bagaimana beberapa komunitas memungkinkan pengguna untuk mendaftar dan mendedikasikan komputer mereka sendiri untuk memproses beberapa data set yang diberikan kepada mereka oleh server. Ketika ribuan pengguna mendaftar untuk ini, banyak data dapat diproses dalam jumlah yang sangat singkat.
        Tipe lain dari komputasi paralel yang kadang-kadang disebut "Didistribusikan" adalah gagasan dari sebuah komputer paralel cluster. Sebuah cluster akan banyak CPU yang terhubung melalui kecepatan tinggi koneksi ethernet ke hub sentarl (server) yang memberi masing-masing beberapa pekerjaan yang harus dilakukan. Metode cluster mirip dengan metode yang dijelaskan dalam paragraf diatas, kecuali bahwa semua CPU secara langsung terhubung ke server dan satu-satunya tujuan mereka adalah melakukan perhitungan yang diberikan kepada mereka. Parallel Distributed Computing dapt dibentuk dari :
  • Ada : Digunakan konsep pertemuan yang menggabungkan fitur RPC dan monitor.
  • PVM (Parallel Virtual Machine) untuk mendukung workstation clusters.
  • MPI (Message Passing Interface) programming GUI untuk parallel computers.

C. Architectural Parallel Computer
     Arsitektur paralel komputer menurut klasifikasi flynn's :

1. SISD (Single Intruction Single Data)
Komputer ini memiliki hanya satu prosesor dan satu instruksi yang dieksekusi secara serial. Komputer ini adalah tipe komputer konvensional. Menurut mereka tipe komputer ini tidak ada dalam praktik komputer paralel karena bahkan mainframe pun tidak lagi menggunakan satu prosesor. Klasifikasi ini sekedar untuk melengkapi definisi komputer paralel. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVACI, IBM 360, CDC 7600, Cray 1 dan PDP 1.

2. SIMD (Single Instruction Multiple Data)
Komputer ini memiliki lebih dari satu prosesor, tetapi hanya mengeksekusi satu instruksi 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).

3. MISD (Multiple Instruction Single Data)
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. Sampai saat ini belum ada komputer yang menggunakan model MISD.

4. MIMD (Multiple Instruction Multiple Data)
Komputer ini memiliki lebih dari satu prosesor dan mengeksekusi lebih dari satu instruksi secara paralel. 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 POWERS, HP/Compaq AlphaServer, Intel IA23, AMD Opteron, Cray XT3 dan IBM BG/L.

D. Implementasi Parallel Computation
Contoh Implementasi pada sebuah perusahaan :
      Pada bagian ini penulis akan membahas salah satu implementasi komputasi parallel yang ada pada dunia bisnis perfilm'an yaitu berupa proses rendering 3D pada sebuah film. Kemajuan dibidang komputasi, khususnya dalam bidang komputer grafis memberikan kemudahan untuk memodelkan suatu benda dalam alam dua dimensi virtual dikomputer. Seperti pada salah satu perusahaan ini ialah WETA Digital merupakan sebuah perusahaan animasi dan spesial efek yang bermarkas di selandia baru dalam membangun fasilitas render farm berbasis cluster hingga skalabilitas ribuan prosesor untuk mengerjakan sebuah film.
     Jika sekuel pada sebuah film dikerjakan personal computer (PC) yang tercepat saat ini, maka dibutuhkan sekali waktu lebih dari 4 tahun untuk menyelesaikan suatu proses rendering terhadap pembuatan animasi film. Oleh karena itu dibutuhkan konsep komputasi paralel, karena komputasi paralel mempunyai prinsip yang bersesuaian dengan algoritma divide and conquer yaitu membagi proses menjadi bagian-bagian yang cukup kecil sehingga memungkinkan untuk dapat dikerjakan oleh sebuah unit komputasi.
        Proses rendering film menggunakan unit komputasu parallel distributed memory multicomputer. Dikarenakan komputer digunakan untuk membuat rendering filmnya yaitu kluster komputer. Kluster komputer adalah proses menghubungkan beberapa komputer agar dapat bekerja secara bersama - sama dengan sebuah jaringan sebagai media penghubungannya. Sehingga pemrosesan dapat dilakukan lebih cepat karena mempunyai mesin-mesin yang masing-masing multoprocessor. Salah satu proses yang sangat penting dalam melakukan pengolahan gambar 3D yaitu dengan 3D rendering. Tanpa dirender suatu gambar yang diolah oleh perangkat lunak animasi 3D hanya akan tampil dalam bentuk kumpulan point dan wireframe sederhana saja.
      Proses render dilakukan dalam pembungkusan tekstur pada objek yang bersesuaian dengan cahaya yang datang pada objek tersebut. Namun proses render membutuhkan daya komputasi yang sangat besar karena banyaknya titik koordinat yang harus dikomputasikan, terutama jika data 3D yang diolah cukup rumit. Model 3D rendering yang dihasilkan berupa data geometri, titik pandang, tekstur dan cahaya yang diperlikan untuk membuat gambar yang utuh. Dan salah satu cara untuk memecahkan masalahnya yaitu dengan menggunakan algoritma divide and conquer yang diterapkan ke dalam metode komputasi parallel. Karena komputasi parallel terbukti lebih efektif untuk melakukan ojek 3D dibanding hanya dengan menggunakan sebuah unit komputasi. 

Jadi, kesimpulan dari pembahasan materi komputasi pararel ini adalah bahwa perkembangan pada arsitektur komputer membutuhkan suatu konsep pemrosesan pararel. Dimana pemrosesan pararel mampu menjalankan tugas atau aplikasi lebih dari satu aplikasi yang dijalankan secara simultan atau mengalami keterbatasan dalam hal kecepatan pemrosesan. Oleh karena itu sehingga dapat menyebabkan lahirnya konsep keparalelan (parallelism) untuk menangani masalah dan aplikasi yang membutuhkan kecepatan pemrosesan yang sangat tinggi, seperti misalnya prakiran prakiraan cuaca, simulasi pada reaksi kimia, perhitungan aeridinamika dan lain-lain. Metode dan conquer juga sangat berperan penting pnyelesaian proses rendering pada suatu perusahaan perfilm'an. 


Referensi :