2. Bambang Ari S P (51412358)
3. Mario Margo P (54412442)
4. Syam Agung P (57412253)
Pendahuluan
dalam bahasa indonesia komputasi bisa diarikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritma. hal ini ialah apa itu teori komputasi. komputasi paralel itu sendiri yaitu melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. komputasi paralel itu sendiri membutuhkan :
- Algoritma
- Bahasa Pemrograman
- Compiler
program komputer paralel lebih susah untuk dibangun dibandingkan dengan program komputer serial, hal ini disebabkan keserempakan menimbulkan masalah yang potensial di dalam membagi pekerjaan menjadi subpekerjaan dan menggabungkan kembali subpekerjaan tersebut menjadi hasil oleh perangkat lunak, diantaranya kondisi berebut (race condition). komunikasi dan sinkronisasi diantara unit pemroses (processing unit) menjadi satu diantara tantangan terbesar untuk menghasilkan program paralel dengan performa yang baik.
Sejarah singkat
pada tahun 1958, peneliti IBM, yang bernama John Cocke dan Daniel Slotnick membahas tentang pemanfaatan paralelisme di dalam komputasi numerik untuk pertama kalinya. Burroughs Coporation memperkenalkan D825 pada tahun 1962, sebuah komputer dengan empat buah prosessor yang mengakses 16 modul memori dengan bantuan skalar bar-silang (cossbar switch).
Latar Belakang
komputasi paralel memanfaatkan beberapa elemen pemroses secara berkesinambungan untuk menyelesaikan permasalahan, dengan cara menyelesaikan permasalahan, dengan cara memecah masalah menjadi bagian-bagian independen, kemudian masing-masing bagian tersebut diselesaikan oleh masing-masing elemen pemroses sesuai dengan algoritma secara serempak. elemen pemroses dapat terdiri dari unit pemroses yang heterogen dan dapat pula terdiri dari unit pemroses yang homogen. elemen pemroses dapat berupa komputer tunggal dengan banyak prosessor, beberapa komputer yang terhubung dalam suatu jaringan, perangkat keras yang dikhususkan untuk melakukan komputasi paralel, ataupun kombinasi dari perangkat-perangkat yang lainnya.
Pemrograman paralel
teknik pemrograman komputer yang memungkinkan eksekusi perintah atau operasi secara bersamaan baik dalam komputer dengan satu (prosessor tunggal) ataupun banyak (prosessor ganda dengan mesin paralel) CPU. bahasa pemrograman yang digunakan pada pemrograman paralel :
1. MPI (Message Passing Interface)
yaitu sebuah standard pemrograman yang memungkinkan pemrogram untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel. kegunaan MPI :
> menyediakan fungsi-fungsi untuk menukar pesan
> menulis kode paralel secara portable
> mendapatkan performa yang tinggi dalam pemrograman paralel
> menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang
tidak begitu cocok dengan model data paralel
implementasi MPI :
MPICH (MPI/Chameleon) MPICH2 adalah implementasi Message Passing Interface (MPI), yang merupakan standar spesifikasi library untuk program message-passing, yang diajukan sebagai standar oleh vendor, implementor dan user.
2. PVM (Parallel Virtual Machine)
suatu standar protokol yang digunakan untuk pemrograman paralel dan terdistribusi, proses pertukaran pesan atau data antar proses adalah dengan mengirimkan pesan melalui media komunikasi. model ini juga dapat diimplementasikan pada bermacam-macam plattform seperti shared memory.
Distributed Processing
Kata didistribusikan dalam istilah seperti "sistem terdistribusi", "didistribusikan pemrograman", dan "algoritma terdistribusi" awalnya merujuk pada jaringan komputer dimana setiap komputer yang didistribusikan secara fisik dalam beberapa wilayah geografis. Istilah yang saat ini digunakan dalam lebih luas akal, bahkan mengacu pada proses otonom yang dijalankan pada komputer fisik yang sama dan berinteraksi satu sama lain dengan pesan.
Model komputasi Paralel
> Embarasingly Parallel adalah pemrograman paralel yang
digunakan pada masalah
masalah yang bisa diparalelkan tanpa membutuhkan
komunikasi satu sama lain.
Sebenarnya pemrograman ini bisa dibilang sebagai
pemrograman paralel yang ideal,
karena tanpa biaya komunikasi, lebih banyak peningkatan kecepatan yang bisa dicapai.
karena tanpa biaya komunikasi, lebih banyak peningkatan kecepatan yang bisa dicapai.
> Taksonomi dari model pemrosesan paralel dibuat
berdasarkan alur instruksi dan alur data
yang digunakan:
1. 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.
2. 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 ).
3. 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.
4. 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.
Jenis-Jenis Komputer Paralel
Berdasarkan tingkatan perangkat keras yang mendukung
paralelisme, secara umum komputer-komputer paralel dapat diklasifikasikan:
1. Multicore processing
Merupakan prosesor yang memiliki beberapa unit pengeksekusi. Sebuah prosesor multicore dapat melakukan beberapa instruksi per siklus dari beberapa aliran instruksi.
Merupakan prosesor yang memiliki beberapa unit pengeksekusi. Sebuah prosesor multicore dapat melakukan beberapa instruksi per siklus dari beberapa aliran instruksi.
2. Symmetric multiprocessing
Merupakan sebuah sistem komputer dengan beberapa prosesor yang identik, dapat menggunakan struktur berbagi memori atau memori tersendiri yang saling terhubung melalui bus.
Merupakan sebuah sistem komputer dengan beberapa prosesor yang identik, dapat menggunakan struktur berbagi memori atau memori tersendiri yang saling terhubung melalui bus.
3. Distributed computing
Merupakan sebuah sistem komputer dengan memori terdistribusi, dimana masing-masing elemen pemrosesan dihubungkan oleh jaringan.
Merupakan sebuah sistem komputer dengan memori terdistribusi, dimana masing-masing elemen pemrosesan dihubungkan oleh jaringan.
4. Cluster computing
Merupakan sekumpulan komputer yang bekerja sama,dihubungkan oleh jaringan, sehingga dapat dipandang sebagai sebuah kesatuan, cluster komputer ini dikoordinasi oleh sebuah komputer induk yang bertugas untuk mendistribusikan pekerjaan kepada masing-masing komputer lainnya.
Merupakan sekumpulan komputer yang bekerja sama,dihubungkan oleh jaringan, sehingga dapat dipandang sebagai sebuah kesatuan, cluster komputer ini dikoordinasi oleh sebuah komputer induk yang bertugas untuk mendistribusikan pekerjaan kepada masing-masing komputer lainnya.
5. Massive parallel processing
Merupakan sebuah komputer tunggal dengan banyak prosesor yang terhubung dalam sebuah jaringan. Di dalam MPP, tiap CPU mempunyai memory tersendiri, sistem operasi dan aplikasi yang sama. Tiap subsistem berkomunikasi satu dengan yang lainnya melalui interkoneksi berkecepatan tinggi.
Merupakan sebuah komputer tunggal dengan banyak prosesor yang terhubung dalam sebuah jaringan. Di dalam MPP, tiap CPU mempunyai memory tersendiri, sistem operasi dan aplikasi yang sama. Tiap subsistem berkomunikasi satu dengan yang lainnya melalui interkoneksi berkecepatan tinggi.
6. Grid computing
Merupakan bentuk pemrosesan paralel yang paling terdistribusi. Grid computing memanfaatkan Internet sebagai saluran komunikasi antar komputer untuk menyelesaikan suatu permasalahan.
Merupakan bentuk pemrosesan paralel yang paling terdistribusi. Grid computing memanfaatkan Internet sebagai saluran komunikasi antar komputer untuk menyelesaikan suatu permasalahan.
7. Specialized parallel computer
Komputer paralel yang dikhususkan untuk menyelesaikan tugas khusus.
THREAD PROGRAMMING
Komputer paralel yang dikhususkan untuk menyelesaikan tugas khusus.
THREAD PROGRAMMING
Thread adalah bentuk
kecil dari program yang akan dieksekusi oleh processor. Pada sebuah single processor multi-threading
biasanya terjadi dengan pengaturan waktu pemrosesan thread. Jadi processor
berganti-ganti dan membagi waktu untuk menyelesaikan thread tetapi tidak pada
paralel computing. Dengan multi-processor atau multi-core, multi-threading bisa
berlangsung secara bersamaan, maka di situ lah tantangan untuk para programmer
agar dapat membuat program yang dapat di proses secara paralel.
MESSAGE PASSING OPENMP
Massage Passing
merupkan suatu teknik bagaimana mengatur suatu alur komunikasi messaging
terhadap proses pada system. Message passing dalam ilmu komputer adalah suatu
bentuk komunikasi yang digunakan dalam komputasi paralel, pemrograman-berorientasi
objek , dan komunikasi interprocess. Dalam model ini, proses atau benda dapat
mengirim dan menerima pesan yang terdiri dari nol atau lebih byte, struktur
data yang kompleks, atau bahkan segmen kode ke proses lainnya dan dapat
melakukan sinkronisasi.
IMPLEMENTASI KOMPUTASI PARALLEL PADA DUNIA PERFILMAN
Kemajuan di bidang komputasi, khususnya dalam bidang
komputer grafis memberikan kemudahan untuk memodelkan suatu benda dalam alam 3
dimensi virtual di komputer. Kita dapat membuat suatu benda dalam wujud 3
dimensi dan mengubah-ubah sudut pandang, menentukan pencahayaan, bahkan
menyusun gerakan benda dalam alam 3 dimensi virtual tersebut. Perkembangan ini
muncul dari kebutuhan di bidang manufaktur untuk memiliki komputer yang dapat
membantu perancangan (computer aided design-CAD). Ditemukannya teknik-teknik dan
metoda rendering suatu obyek 3 D ke dalam media 2 D membuat benda yang
dihasilkan oleh perangkat lunak ini menjadi semakin nyata dan menyerupai
aslinya.
Terdapat 2 klasifikasi parallel computer yang penting,
yaitu : Sebuah komputer dengan banyak unit komputasi internal, atau lebih
dikenal sebagai Shared Memory Multiprocessor. Beberapa komputer yang terhubung
melalui sebuah jaringan, atau lebih dikenal sebagai Distributed Memory
Multicomputer.
Pada bagian ini yaitu pada rendering Film digunakan unit
Komputasi parallel Distributed Memory Multicomputer. Hal ini dikarenakan
computer yang digunakan untuk membuat rendering filmnya adalah Kluster
Komputer. Kluster computer adalah proses menghubungkan beberapa computer agar
dapat bekerja secara bersama-sama dengan sebuah jaringan sebagai media
penghubungnya.
Komponen kluster biasanya saling terhubung dengan cepat
melalui sebuah interkoneksi yang sangat capat, atau juga melalui jaringan local
(LAN).
Keuntungan memakai Kluster Komputer ini yaitu pemrosesan
dapat dilakukan lebih cepat karena mempunyai mesin-mesin yang
masing-masing multiprocessor. Terdapat incremental Scalability dimana
penambahan system-sistem baru dengan inkremen yang kecil. Dalam Kluster
Komputer kegagalan yang terjadi di dalam satu node tidak berarti atau disebut
dengan “Loss of service”. Dan yang terakhir yaitu biaya yang dibutuhkan lebih
murah, hal ini dikarenakan Kluster computer dapat menghasilkan power komputasi
yang sama atau lebih tinggi dari computer parallel sebenarnya. 3D Rendering merupakan salah satu proses yang sangat
penting dalam melakukan pengolahan gambar 3D. Tanpa dirender suatu gambar yang
diolah oleh perangkat lunak animasi 3D hanya akan tampil dalam bentuk kumpulan
point dan wireframe sederhana. Proses render melakukan “pembungkusan” tekstur
pada objek yang bersesuaian sesuai cahaya yang datang pada objek tersebut.
Namun proses render membutuhkan daya komputasi yang sangat besar karena
banyaknya titik koordinat yang harus dikomputasi, terutama jika data 3D yang
diolah cukup rumit.
3D Rendering terdiri dari proses yang bertujuan untuk
membentuk sebuah gambar dari sebuah model yang dibentuk oleh perangkat lunak
animasi, model tersebut berisi data geometri, titik pandang, tekstur dan cahaya
yang diperlukan untuk membuat gambar yang utuh.3D Rendering merupakan proses
yang sangat penting dan telah digunakan untuk berbagai macam penggunaan,
seperti program permainan komputer, efek spesial pada film dan program
simulasi. 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 pemrosesannya 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. Sedangkan ketika perusahaan tersebut
menggunakan metode Komputasi Parallel, proses tersebut hanya membutuhkan waktu
1 tahun saja.
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.
Kesimpulan
Melakukan 3D Rendering tentu akan merupakan masalah yang
sangat merepotkan jika tidak menggunakan algoritma memadai, dikarenakan
banyaknya point dan polygon yang harus dikalkulasi 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 menggunaan sistem komputasi paralel di dalam perusahaan mereka.
Daftar Pustaka
http://adifahmi379.blogspot.co.id/2016/04/parallel-processing-dan-kontribusinya.html
http://ninasuri.blogspot.co.id/2013/06/komputasi-paralel-prosessing-dan.html
https://rayenmaulana.wordpress.com/2016/06/06/komputasi-dan-parallel-processing/
Disusun oleh :
> Amil Bayu P
> Bambang Ari SP
> Mario Margo P
> Syam Agung
4ia24
Follow Us
Were this world an endless plain, and by sailing eastward we could for ever reach new distances