Rabu, 29 Juni 2016

PARALEL COMPUTATION



Paralel 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 padasaat kapasitas yang diperlukan sangat besar, baik karena pengolahan data dalam jumlah besar (di industri keuangan, bioinformatika, dll) 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, 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, perhitungan aerodinamika dan lain-lain.
    Konsep keparalelan itu sendiri dapat ditinjau dari aspek design mesin paralel, perkembangan bahasa pemrograman paralel atau dari aspek pembangunan dan analisis 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 di bidang fisika (fisika komputasi), kimia (kimia komputasi) dll.

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 masalah 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 terhubung melalui kecepatan tinggi koneksi ethernet ke hub sentral (Server) yang memberi masing-masing beberapa pekerjaan yang harus dilakukan. Metode cluster mirip dengan metode yang dijelaskan dalam paragraf di atas, kecuali bahwa semua CPU secara langsung terhubung ke server, dan satu-satunya tujuan mereka adalah untuk melakukan perhitungan yang diberikan kepada mereka. Parallel distributed computing dapat dibentuk dari :
l   Ada :        Digunakan konsep pertemuan yang menggabungkan fitur RPC dan                          monitor.
l   PVM (Parallel Virtual Machine) untuk mendukung workstation clusters.
l   MPI (Message-Passing Interface) programming GUI untuk parallel computers.
C. Architectural Parallel Computer
Arsitektur paralel komputer menurut Klasifikasi Flynn’s :
1.        SISD
Single Instruction – 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 UNIVAC1, 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 Instructions – 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 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, 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.

D. Implementasi Parallel Computation
Contoh Implementasi pada sebuah perusahaan yaitu :
Pada bagian ini penulis akan membahas salah satu implementasi komputasi parallel yang ada pada dunia bisnis yaitu didunia perfilman berupa rendering sebuah film. Kemajuan di bidang komputasi, khususnya dalam bidang komputer grafis memberikan kemudahan untuk memodelkan suatu benda dalam alam dua dimensi virtual di komputer. Seperti pada salah satu perusahaan ini yaitu WETA Digital, 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 suatu film dikerjakan dengan Personal Computer (PC) yang tercepat saat ini, maka dibutuhkan sekali waktu lebih dari 4 tahun untuk menyelesaikan suatu proses rendering terhadap pembuatan 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 komputasi 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 multiprocessor. 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 proses 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 diperlukan untuk membuat gambar yang utuh. Dan salah satu cara untuk memecahkan masalah tersebut adalah dengan menggunakan algoritma divide dan conquer yang diterapkan ke dalam metode komputasi parallel. Karena komputasi parallel terbukti jauh lebih efektif untuk melakukan rendering objek 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 paralel. Dimana pemrosesan paralel mampu menjalankan tugas atau aplikasi lebih dari satu aplikasi yang dijalankan secara simultan atau bersamaan pada sebuah komputer, sehingga saling terjadi tumpang tindih dan komputer dapat mengalami keterbatasan dalam hal kecepatan pemrosesan. Oleh karena itu sehingga 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, perhitungan aerodinamika dan lain-lain. Metode divide dan conquer juga sangat berperan penting dalam penyelesaian proses rendering pada suatu perusahaan perfilman.





Referensi :

Sabtu, 21 Mei 2016

Teori Quantum Computation



Teori Quantum Computation

Pendahuluan

Merupakan alat hitung yang menggunakan mekanika kuantum seperti superposisi dan keterkaitan, yang digunakan untuk peng-operasi-an data. Perhitungan jumlah data pada komputasi klasik dihitung dengan bit, sedangkan perhitungan jumlah data pada komputer kuantum dilakukan dengan qubit. Prinsip dasar komputer kuantum adalah bahwa sifat kuantum dari partikel dapat digunakan untuk mewakili data dan struktur data, dan bahwa mekanika kuantum dapat digunakan untuk melakukan operasi dengan data ini. Sehingga agar dapat mengembangkan komputer dengan sistem quantum, diperlukan logika bari sesuai dengan prinsip dari quantum.
Ide mengenai komputer kuantum ini berasal dari beberapa fisikawan antara lain Charles H. Bennett dari IBM, Paul A. Benioff dari Argonne National Laboratory, Illinois, David Deutsch dari University of Oxford, dan Richard P. Feynman dari California Institute of Technology (Caltech)

Entanglement


Quantum Entanglement adalah bagian dari fenomena quantum mechanical yang menyatakan bahwa satu atau lebih objek memiliki suatu hubungan antara objek lain meskipun setiap objek tersebut berdiri sendiri dan terpisah dengan objek – objek yang lain.
Penggunaan quantum entanglement diimplementasikan dalam berbagai bidang salah satunya adalah untuk pengiriman pesan rahasia yang sulit untuk di-enkripsi dan pembuatan komputer yang memiliki performa sangat cepat.

Pengoperasian Data Qubit



Komputer kuantum memelihara urutan qubit. Sebuah qubit tunggal dapat mewakili satu, nol, atau, penting, setiap superposisi quantum ini, apalagi sepasang qubit dapat dalam superposisi kuantum dari 4 negara, dan tiga qubit dalam superposisi dari 8. Secara umum komputer kuantum dengan qubit n bisa dalam superposisi sewenang-wenang hingga 2 n negara bagian yang berbeda secara bersamaan (ini dibandingkan dengan komputer normal yang hanya dapat di salah satu negara n 2 pada satu waktu). Komputer kuantum yang beroperasi dengan memanipulasi qubit dengan urutan tetap gerbang logika quantum. Urutan gerbang untuk diterapkan disebut algoritma quantum.

Algoritma Quantum Computing
Para ilmuwan mulai melakukan riset mengenai sistem kuantum tersebut, mereka juga berusaha untuk menemukan logika yang sesuai dengan sistem tersebut. Sampai saat ini telah dikemukaan dua algoritma baru yang bisa digunakan dalam sistem kuantum yaitu :

- Algoritma Shor
Algoritma yang ditemukan oleh Peter Shor pada tahun 1995. Dengan menggunakan algoritma ini, sebuah komputer kuantum dapat memecahkan sebuah kode rahasia yang saat ini secara umum digunakan untuk mengamankan pengiriman data. Kode yang disebut kode RSA ini, jika disandikan melalui kode RSA, data yang dikirimkan akan aman karena kode RSA tidak dapat dipecahkan dalam waktu yang singkat. Selain itu, pemecahan kode RSA membutuhkan kerja ribuan komputer secara paralel sehingga kerja pemecahan ini tidaklah efektif.
Algoritma Shor adalah contoh lanjutan paradigma dasar (berapa banyak waktu komputasi diperlukan untuk menentukan faktor bilangan bulat n-bit?), tapi algoritma ini tampak terisolir dari kebanyakan temuan lain ilmu informasi quantum.

- Algoritma Grover
Algoritma Grover adalah sebuah algoritma kuantum yang menawarkan percepatan kuadrat dibandingkan pencarian linear klasik untuk list tak terurut. Algoritma Grover menggambarkan bahwa dengan menggunakan pencarian model kuantum, pencarian dapat dilakukan lebih cepat dari model komputasi klasik. Dari banyaknya algoritma kuantum, algoritma grover akan memberikan jawaban yang benar dengan probabilitas yang tinggi. Kemungkinan kegagalan dapat dikurangi dengan mengulangi algoritma. Algoritma Grover juga dapat digunakan untuk memperkirakan rata-rata dan mencari median dari serangkaian angka, dan untuk memecahkan masalah Collision.
Algoritma Grover adalah sebuah algoritma quantum untuk mencari database disortir dengan entri N di O (N1 / 2) waktu dan memakai O (Log N) ruang penyimpanan.

Implementasi Quantum Computing
Pada tahun 2000, IBM sudah membuat quantum computer dengan 5 qubits dengan atom sebagai prosesornya dan D-Wave perusahaan komputer asal Vancouver canada merilis kabar bahwa pihaknya telah mampu untuk beroperasi dengan prinsip quantum yang jauh lebih cepat dari komputer yang ada saat ini.
Komputer yang diberi nama “Orion” ini memakai teknik cetakan rata yang sistematis, dipadukan dengan sebuah chip niobium superkonduksi dan suhu ultra rendah, dapat mengerjakan 16 qubit. Chip inti harus dingin hingga mendekati titik nol absolut agar supaya dalam proses perhitungannya tetap dalam kondisi kuantum







From :
http://djuneardy.blogspot.co.id/2015/04/quantum-computing-entanglement.html
http://maya-ardiati-fst12.web.unair.ac.id/artikel_detail-117049-Prokom-Artikel%20Quantum%20Computing%20Dan%20Quantum%20Crypto.html
https://id.wikipedia.org/wiki/Komputer_kuantum
http://www.metode-algoritma.com/2013/02/algoritma-quantum.html