TUGAS SOFTSKILL 3
“PARALLEL COMPUTATION”
PENGANTAR KOMPUTASI MODERN
- Deva Prananda : 51415750
- Lidya Cahyani : 53415825
- Medi Saputra : 54415099
- Sella Melinda : 56415454
- Tirta Bery Nurmana : 56415907
Kelas : 4IA22
Mata Kuliah : Pengantar Komputasi Modern
Dosen : Dr. Rina Noviana, SKom,. MMSI
Teknik Informatika
Universitas Gunadarma
2019
Parallelism concept
Komputasi paralel merupakan salah satu teknik komputasi, dimana proses komputasi nya dilakukan oleh beberapa resources ( komputer ) yang independen, secara bersamaan. Komputasi paralel biasanya diperlukan pada saat terjadinya pengolahan data dalam jumlah besar ( di industri keuangan, bio informatika, dll ) atau dalam memenuhi proses komputasi yang sangat banyak. diperlukan perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel.
Pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi. Tidak berarti dengan mesin paralel semua program yang dijalankan di atas nya 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.
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.
Singkatnya untuk perbedaan antara komputasi tunggal dengan komputasi paralel, bisa digambarkan pada gambar di bawah ini :
Pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi. Tidak berarti dengan mesin paralel semua program yang dijalankan di atas nya 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.
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.
Singkatnya untuk perbedaan antara komputasi tunggal dengan komputasi paralel, bisa digambarkan pada gambar di bawah ini :
Gambar 1 Penyelesaian Sebuah Masalah pada Komputasi Tunggal |
Gambar 2 Penyelesaian Sebuah Masalah pada Komputasi Paralel |
Dari perbedaan kedua gambar di atas, kita dapat menyimpulkan bahwa kinerja komputasi paralel lebih efektif dan dapat menghemat waktu untuk pemrosesan data yang banyak daripada komputasi tunggal.
Dari penjelasan-penjelasan di atas, kita bisa mendapatkan jawaban mengapa dan kapan kita perlu menggunakan komputasi paralel. Jawabannya adalah karena komputasi paralel jauh lebih menghemat waktu dan sangat efektif ketika kita harus mengolah data dalam jumlah yang besar. Namun keefektifan akan hilang ketika kita hanya mengolah data dalam jumlah yang kecil, karena data dengan jumlah kecil atau sedikit lebih efektif jika kita menggunakan komputasi tunggal.
Distributed Processing
Distributed Processing adalah mengerjakan semua proses pengolahan data secara bersama antara komputer pusat dengan beberapa komputer yang lebih kecil dan saling dihubungkan melalui jalur komunikasi. Setiap komputer tersebut memiliki prosesor mandiri sehingga mampu mengolah sebagian data secara terpisah, kemudian hasil pengolahan tadi digabungkan menjadi satu penyelesaian total.
Jika salah satu prosesor mengalami kegagalan atau masalah yang lain akan mengambil alih tugasnya. Tujuan dari komputasi terdistribusi adalah menyatukan kemampuan dari sumber daya (sumber komputasi atau sumber informasi) yang terpisah secara fisik, ke dalam suatu sistem gabungan yang terkoordinasi dengan kapasitas yang jauh melebihi dari kapasitas individual komponen-komponennya.
Beberapa contoh dari Distributed Data Processing System adalah:
ATM, komputer yang dirancang untuk tugas-tugas melaksanakan proyek, analisis finansial, penjadwalan waktu dan akuntansi.
Pengolahan data pada server yahoo yang tersebar hampir di seluruh dunia secara distribusi, setiap wilayah mempunyai server masing-masing. Seperti di indonesia mempunyai server tersendiri sehingga pengolahan data tidak di pusat melainkan di wilayah masing-masing.
Pernyataan di atas adalah jaringan saraf tiruan pendekatan yang menekankan sifat paralel pengolahan saraf, dan sifat didistribusikan representasi saraf. Ini memberikan kerangka matematika umum bagi para peneliti untuk beroperasi dalam rangka melibatkan delapan aspek utama :
- Satu set unit pengolahan, diwakili oleh set bilangan bulat.
- Aktivasi untuk setiap unit, diwakili oleh vektor waktu tergantung fungsi .
- Fungsi output untuk setiap unit, diwakili oleh vektor fungsi pada aktivasi.
- Pola konektivitas antar unit, diwakili oleh matriks bilangan real yang menunjukkan kekuatan koneksi.
- Aturan propagasi menyebarkan aktivasi melalui koneksi, diwakili oleh fungsi pada output dari unit.
- Aturan aktivasi untuk menggabungkan input ke unit untuk menentukan aktivasi baru, diwakili oleh fungsi pada aktivasi saat ini dan propagasi.
- Sebuah aturan belajar untuk memodifikasi koneksi berdasarkan pengalaman, diwakili oleh perubahan bobot berdasarkan pada sejumlah variabel.
- Lingkungan yang menyediakan sistem dengan pengalaman, diwakili oleh set vektor aktivasi untuk beberapa bagian dari unit.
- Ada : digunakan konsep pertemuan yang menggabungkan fitur RPC dan monitor.
- PVM (Parallel Virtual Machine) untuk mendukung workstation cluster.
- MPI (Message-Passing Interface) programming GUI untuk parallel computers.
Architectural Parallel Computation
Michael J. Flynn menciptakan satu diantara sistem klasifikasi untuk komputer dan program paralel yang dikenal dengan sebutan Taksonomi Flynn. Flynn mengelompokkan komputer dan program berdasarkan banyaknya set instruksi yang dieksekusi dan banyaknya set data yang digunakan oleh instruksi tersebut.Arsitektur paralel komputer menurut Klasifikasi Flynn’s:
SISD (Single Instruction – Single Data)
Komputer ini memiliki hanya satu prosesor dan satu instruksi yang dieksekusi secara serial. 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 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).
MISD (Multiple Instructions – Single Data)
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.
MIMD (Multiple Instructions – Multiple Data)
MIMD (Multiple Instructions – 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.
Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.
Implementasi Parallel Computation
IMPLEMENTASI KOMPUTASI PARALEL PADA DUNIA BISNIS KHUSUSNYA ANIMASI DAN PERFILM-AN
Komputasi Paralel mempunyai prinsip yang bersesuaian dengan algoritma Divide and Conquer, yaitu membagi-bagi proses menjadi bagian-bagian yang cukup kecil dan memungkinkan untuk dikerjakan oleh sebuah unit komputasi.
Salah satu cara untuk memecahkan masalah tersebut adalah dengan menggunakan algoritma Divide and Conquer yang diterapkan kedalam metode Komputasi Parallel. Divide and Conquer merupakan salah satu strategi algoritma yang memecah suatu masalah besar menjadi beberapa bagian untuk kemudian dikerjakan satu persatu.
Dalam Komputasi Parallel tiap-tiap bagian dikerjakan oleh unit pemrosesan nya masing-masing, sesuai dengan kesepakatan Divide pada awal komputasi. Komputasi Parallel terbukti jauh lebih efektif untuk melakukan rendering objek 3D dibanding hanya menggunakan sebuah unit komputasi. Sebagai contoh suatu perusahaan animasi asal Jepang, membutuhkan waktu 165 tahun jika proses render yang dilakukan untuk membuat animasi berdurasi 100 menit hanya menggunakan sebuah unit komputasi.
Salah satu masalah kompleks yang hingga kini masih membutuhkan kemampuan komputasi yang besar adalah melakukan proses render terhadap objek 3D. Proses render objek 3D sendiri membutuhkan waktu yang cukup lama, terlebih jika objek yang diberikan cukup rumit. Sebenarnya operasi render objek 3D hanya merupakan kumpulan dari beberapa operasi primitif, namun operasi primitif yang dilakukan pada proses render sangatlah banyak.
Untuk itu digunakan metode Komputasi Parallel sehingga tiap-tiap operasi primitif yang dilakukan dapat dikerjakan dengan menggunakan algoritma Divide and Conquer agar tiap bagian dari operasi Divide pada perhitungan yang dilakukan dapat dikerjakan oleh masing-masing unit komputasi. Beberapa operasi primitif yang digunakan dalam 3D Rendering adalah operasi penghitungan jarak antara 2 titik, operasi perkalian bilangan bulat yang besar. Tentunya hampir ke semua operasi primitif tersebut dapat dipecahkan dengan menggunakan algoritma Divide and Conquer sehingga menjadikan proses 3D Rendering sangat cocok untuk diselesaikan dengan algoritma Divide and Conquer.
Pemodelan merupakan bagian yang terpenting dalam proses pembuatan gambar 3D dalam komputer. Dari model inilah semuanya bermula. Semakin baik dan presisi proses modeling semakin baik pula kualitas gambar/animasi yang dihasilkan. Pemodelan dapat dilakukan dengan alat bantu seperti digitizer 2D/3D atau scanner 3D maupun dibuat secara manual di komputer. Demi kecepatan dan ketelitian memang akan lebih baik jika kita menggunakan alat bantu, tetapi karena harga perangkat digitizer ini tidak dapat dibilang murah, maka pemodelan secara manual kadang menjadi pilihan yang paling tepat.
Melakukan 3D Rendering tentu akan merupakan masalah yang sangat merepotkan jika tidak menggunakan algoritma memadai, dikarenakan banyaknya point dan polygon yang harus di kalkulasi setiap proses. Penggunaan algoritma Divide and Conquer tentu sangat membantu agar pekerjaan penghitungan yang sangat banyak dalam proses render dapat dikerjakan oleh beberapa unit komputasi sekaligus secara bersamaan. Hal ini juga telah dibuktikan dengan banyaknya perusahaan animasi dan film yang sering melakukan pekerjaan proses render menggunakan sistem komputasi paralel di dalam perusahaan mereka.
Sumber:
No comments:
Post a Comment
Terimakasih atas kritik/saran