TUGAS SOFTSKILL 3
“PARALLEL
COMPUTATION”
Pengantar Komputasi Modern
Gambar 1. Penyelesaian Sebuah Masalah pada Komputasi Tunggal
Nama
Anggota :
1.
Deva
Prananda (51415750)
2.
Lidya
Cahyani (53415825)
3.
Medi
Saputra
(54415099)
4.
Sella
Melinda
(56415454)
5. Tirta Bery Nurmana (56415907)
Kelas
: 4IA22
Mata
Kuliah : Pengantar Komputasi Modern
Dosen : Dr. Rina Noviana, SKom,. MMSI
Teknik
Informatika
Universitas Gunadarma
2019
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:
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.
Parallel distributed computing dapat 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.
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)
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: