Sabtu, 06 Mei 2017

Parallel Computation

Paralellism Concept

Teknologi komputasi parallel sudah berkembang lebih dari dua dekade, penggunaannya semakin beragam mulai dari kebutuhan perhitungan di laboratorium fisika nuklir,simulasi pesawat luar angkasa, hingga prakiraan cuaca. Komputasi parallel didefinisikan sebagai penggunaan sekumpulan sumber daya computer secara simultan untuk menyelesaikan permasalahan komputasi.

Secara prinsip computer parallel membagi permasalahan sehingga menjadi lebih kecil untuk dikerjakan oleh setiap prosesor (CPU) dalam waktu yang bersamaan / simultan (concurrent). Prinsip ini disebut paralelisme.

Paralelisme dalam komputasi parallel merupakan hal yang diciptakan dan dimanfaatkan. Sebenarnya prinsip paralelisme juga sudah diterapkan dalam computer serial missal dengan pipelining dan superscalar-nya namun demikian tidak memberikan solusi terbaik dalam hal meningkatkan performansi dikarenakan terbatasnya kemampuan untuk menambah kecepatan prosesor dan fenomena memory bottleneck.

Ada beberapa tingkatan paralelisme dalam komputasi khususnya pada prosesor, diantaranya : 1)Paralelisme bit-level. Contoh: prosesor 32bit dan prosesor64bit.
2)Paralelisme instructionset-level. Contoh: CISC dan RISC.
3)Paralelisme thread-level. Contoh: Intel hyperthreading

Paralelisme lain yang juga berkembang dalam komputasi parallel adalah paralelisme data dan paralelisme fungsi (task).

Perkembangan teknologi prosesor memberikan pengaruh yang besar pada komputasi paralel. Mulai dari prosesor single core super scalar, chip multi processor, prosesor multicore, hingga prosesor cell memberikan kontribusi terhadap peningkatan performa si computer paralel. Supercomputer seperti Roadrunner misalnya menggunakan teknologi multiprosesor, prosesor cell, atau gabungan dari keduanya (hybridsystem). Jumlah prosesor yang dipakai HPC juga semakin tidak terbatas sehingga arsitekturnya disebut Massively Parallel Processing (MPP). Namun demikian penggunaan cluster PC menjadi tren dalam komputasi parallel karena factor biaya dan skalabilitas. 

Distributed Processing


Didistribusikan 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 :
  • 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 Computer

Berdasarkan jumlah dan prinsip kerja prosesor pada computer paralel, A.J. Vander Steen dan J.Donggara menyebutkan terdapa tempat arsitektur utama computer parallel menurut Flynn (1972) yaitu :

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.

Sistem komputer paralel dibedakan dari cara kerja memorinya menjadi shared memory dan distributed memory. Shared memory berarti memori tunggal diakses oleh satu atau lebih prosesor untuk menjalankan instruksi sedangkan distributed memory berarti setiap prosesor memiliki memori sendiri untuk menjalankan instruksi. Adapun komponen-komponen utama dari arsitektur komputer paralel cluster PC antara lain :

  • Prosesor (CPU). Bagian paling penting dalam sistem, untuk multicore terdapat lebih dari satu core yang mengakses sebuah memori (shared memory).
  • Memori. Bagian ini dapat diperinci lagi menjadi beberapa bagian penyusunnya seperti RAM, cache memory dan memori eksternal.
  • Sistem Operasi. Software dasar untuk menjalankan sistem komputer.
  • Cluster Middleware. Antarmuka antara hardware dan software.
  • Programming Environment dan Software Tools. Software yang digunakan untuk pemrograman paralel termasuk software pendukungnya.
  • User Interface. Software yang menjadi perantara hardware dengan user.
  • Aplikasi. Software berisi program permasalahan yang akan diselesaikan.
  • Jaringan. Penghubung satu PC (prosesor) dengan PC yang lain sehingga memungkinkan pemanfaatan sumberdaya secara simultan.

Reffrensi :
http://docplayer.info/38365452-Bab-ii-landasan-teori.html
http://djuneardy.blogspot.co.id/2015/05/konsep-arsitektur-paralel-pemrosesan.html


Pengantar Quantum Computation

Pendahuluan


Komputer Kuantum (Computer Quantum) adalah salah satu komputer yang belum sama sekali ada di dunia ini. Karena ini merupakan komputer yang sangat mustahil di ciptakan. Tapi mungkin saja ini bisa tercipta. Jika dikatakan, komputer kuantum hanya butuh waktu 20 menit untuk mengerjakan sebuah proses yang butuh waktu 1025 tahun pada komputer saat ini, kita tentu akan tercengang. Hal inilah yang membuat para ilmuwan begitu tertarik untuk mengembangkan kemungkinan terbentuknya komputer kuantum. Meskipun hingga saat ini belum tercipta sebuah komputer kuantum yang dibayangkan oleh para ilmuwan, kemajuan ke arah sana terus berlangsung. Bahkan yang menarik, ternyata perkembangan komputer kuantum juga mengikuti apa yang dikatakan oleh Gordan Moore sang Genius IBM “Kemampuan Prosesor akan meningkat dua kali lipat dalam jangka waktu 18 bulan”. Jika hal ini benar, para ilmuwan akan dapat membangun sebuah komputer kuantum hanya dalam waktu lima tahun ke depan.

Pengertian sederhana dari computer quantum adalah jenis chip processor terbaru yang diciptakan berdasar perkembangan mutakhir dari ilmu fisika (dan matematika) quantum. Singkatnya, chip konvensional sekarang ini perlu diganti dengan yang lebih baik. Pengertian komputer kuantum adalah merupakan suatu alat hitung yang menggunakan sebuah fenomena mekanika kuantum, misalnya superposisi dan keterkaitan, untuk melakukan operasi data. Dalam komputasi klasik, jumlah data dihitung dengan bit; dalam komputer kuantum, hal ini dilakukan dengan qubit.

Sejarah Singkat Komputer Kuantum

Pada tahun 1982 R.P.Feynman menyajikan sebuah ide yang menarik yaitu bagaimana sistem kuantum dapat digunakan untuk penalaran komputasi. Dia juga memberikan penjelasan bagaimana efek fisika kuantum dapat disimulasikan oleh computer kuantum tersebut. Hal tersebut merupakan ide yang sangat menarik yang dapat digunakan untuk penelitian efek kuantum masa depan.

Setiap percobaan yang menyelidiki efek dan hukum fisika kuantum adalah rumitdan mahal. Komputer Kuantum akan menjadi sebuah sistem yang mampu melakukan percobaan tersebut secara permanen. Kemudian pada akhir tahun 1985, terbukti bahwa computer kuantum akan jauh lebih kuat (powerful) daripada computer klasik.

Entanglement

Menurut mekanika kuantum kekuatan luar yang bekerja pada dua partikel dari sistem kuantum dapat menyebabkan mereka menjadi terbelit. Keadaan kuantum dari sistem ini dapat berisi semua posisi spin (momen magnetic internal) dari setiap partikel. Spin total sistem hanya bisa sama untuk nilai diskrit tertentu dengan probabilitas yang berbeda. Pengukuran spin total sistem kuantum tertentu menunjukkan bahwa posisi spin beberapa partikel tidak independen dari yang lainnya. Untuk sistem tersebut, ketika orientasi spin dari satu partikel diubah dengan beberapa alasan, orientasi spin dari partikel lain akan berubah secara otomatis dan cepat. Hukum yang telah dikembangkan sejauh ini tentang kecepatan cahaya tidak taati dalam kasus ini, karena perubahan orientasi spin terjadi segera. Setidaknya ada hipotesis untuk menggunakan fenomena ini dalam komputasi kuantum.              
Entanglement (belitan) merupakan fenomena ‘aneh’ yang terjadi pada Quantum Computing, fenomena ini dimanfaatkan oleh ilmuan dalam pembuatan Quantum Computing.
Jika dua atom mendapatkan gaya tertentu (outside force) kedua atom tersebut bisa masuk pada keadaan ‘entangled’. Atom-atom yang saling terhubungkan dalam entanglement ini akan tetap terhubungkan walaupun jaraknya berjauhan. Dalam keadaan ini, perilaku dua atom yang saling berkaitan akan sama dengan atom pasangannya. Jika pada atom 1 mengalami perubahan, maka atom pasangannya juda akan berperilaku sama seperti atom 1. Keadaan ini dimanfaatkan untuk mempercepat komunikasi data pada komputer. Komunikasi menggunakan komputer kuantum bisa mencapai kecepatan yang begitu luar biasa karena informasi dari satu tempat ke tempat lain dapat ditransfer secara instant. Begitu cepatnya sehingga terlihat seakan-akan mengalahkan kecepatan cahaya.

"Secara fakta, teori tentang belitan (entanglement) telah menyebabkan para ilmuwan untuk percaya bahwa ada cara untuk mempercepat komputasi. Bahkan computer saat ini telah mendekati titik di mana kecepatan mereka dibatasi oleh seberapa cepat electron dapat bergerak melalui kabel ‐ kecepatan cahaya. Baik dalam komputer kuantum atau tradisional, belitan (entanglement) bisa memecahkan masa lalu yang membatasi "(Manay, 1998).

Quantum Gates


Gerbang kuantum gerbang logika adalah dasar sirkuit kuantum yang beroperasi pada sejumlah kecil qubit. Mereka adalah blok bangunan sirkuit kuantum, seperti klasik gerbang logika yang untuk sirkuit digital konvensional. Tidak seperti banyak gerbang logika klasik, logika kuantum gerbang reversibel. Namun, adalah mungkin untuk melakukan komputasi klasik menggunakan gerbang hanya reversibel.

Sebagai contoh, reversibel gerbang Toffoli dapat melaksanakan semua fungsi Boolean. Gerbang ini memiliki setara kuantum langsung, menunjukkan bahwa sirkuit kuantum dapat melakukan semua operasi yang dilakukan oleh sirkuit klasik.

Quantum gerbang logika yang diwakili oleh matriks kesatuan . Gerbang kuantum yang paling umum beroperasi pada ruang satu atau dua qubit, seperti biasa klasik gerbang logika beroperasi pada satu atau dua bit. Ini berarti bahwa sebagai matriks, gerbang kuantum dapat dijelaskan oleh 2 × 2 atau 4 × 4 matriks kesatuan.

Algoritma Shor

Algoritma Shor, dinamai matematikawan Peter Shor , adalah algoritma kuantum yaitu merupakan suatu algoritma yang berjalan pada komputer kuantum yang berguna untuk faktorisasi bilangan bulat. Algoritma Shor dirumuskan pada tahun 1994.  Inti dari algoritma ini merupakan bagaimana cara menyelesaikan faktorisasi terhaadap bilanga interger atau bulat yang besar.

Efisiensi algoritma Shor adalah karena efisiensi kuantum Transformasi Fourier , dan modular eksponensial. Jika sebuah komputer kuantum dengan jumlah yang memadai qubit dapat beroperasi tanpa mengalah kebisingan dan fenomena interferensi kuantum lainnya, algoritma Shor dapat digunakan untuk memecahkan kriptografi kunci publik skema seperti banyak digunakan skema RSA. Algoritma Shor terdiri dari dua bagian:
  1. Penurunan yang bisa dilakukan pada komputer klasik, dari masalah anjak untuk masalah ketertiban -temuan.
  2. Sebuah algoritma kuantum untuk memecahkan masalah order-temuan.
Hambatan runtime dari algoritma Shor adalah kuantum eksponensial modular yang jauh lebih lambat dibandingkan dengan kuantum Transformasi Fourier dan pre-/post-processing klasik. Ada beberapa pendekatan untuk membangun dan mengoptimalkan sirkuit untuk eksponensial modular. Yang paling sederhana dan saat ini yaitu pendekatan paling praktis adalah dengan menggunakan meniru sirkuit aritmatika konvensional dengan gerbang reversibel , dimulai dengan penambah ripple-carry. Sirkuit Reversible biasanya menggunakan nilai pada urutan n ^ 3, gerbang untuk n qubit. Teknik alternatif asimtotik meningkatkan jumlah gerbang dengan menggunakan kuantum transformasi Fourier , tetapi tidak kompetitif dengan kurang dari 600 qubit karena konstanta tinggi.

Step demi step yang ada pada Algoritma Shor :


Reffrensi :
  • ilmuti.org/wp-content/uploads/.../Thiofany_Angelius_Dachi_Komputer_Kuantun.pdf
  • http://ikipmataram.ac.id/berita-376-komputasi-awan-icloud-definition-and-utilization.html
  • http://seto.citravision.com/berita-39-pengantar-komputasi-cloud--map-reduce-dan-nosql-not-only-sql.html
  • http://agunghidden.blogspot.co.id/2016/04/pengantar-quantum-computation.html