1. Quantum Gates dan Algoritma Shor
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 terhadap
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:
·
Penurunan yang bisa dilakukan pada komputer
klasik, dari masalah anjak untuk masalah ketertiban temuan.
·
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.
Quantum Gates
Quantum Gates / Gerbang Quantum
merupakan sebuah aturan logika / gerbang logika yang berlaku pada quantum
computing. Prinsip kerja dari quantum gates hampir sama dengan gerbang logika
pada komputer digital. Jika pada komputer digital terdapat beberapa operasi
logika seperti AND, OR, NOT, pada quantum computing gerbang quantum terdiri
dari beberapa bilangan qubits, sehingga quantum gates lebih susah untuk
dihitung daripada gerang logika pada komputer digital.
Prosedur berikut menunjukkan
bagaimana cara untuk membuat sirkuit reversibel yang mensimulasikan dan sirkuit
ireversibel sementara untuk membuat penghematan yang besar dalam jumlah
ancillae yang digunakan.
·
Pertama mensimulasikan gerbang di babak pertama
tingkat
·
Jauhkan hasil gerbang di tingkat d/2 secara
terpisah
·
Bersihkan bit ancillae
·
Gunakan mereka untuk mensimulasikan gerbang di babak
kedua tingkat
·
Setelah menghitung output, membersihkan bit
ancillae
·
Bersihkan hasil tingkat d/2
Melihat gerbang reversibel
ireversibel klasik dan klasik, memiliki konteks yang lebih baik untuk
menghargai fungsi dari gerbang kuantum. Sama seperti setiap perhitungan klasik
dapat dipecah menjadi urutan klasik gerbang logika yang bertindak hanya pada
bit klasik pada satu waktu, sehingga juga bisa setiap kuantum perhitungan dapat
dipecah menjadi urutan gerbang logika kuantum yang bekerja pada hanya beberapa
qubit pada suatu waktu. Perbedaan utama adalah bahwa gerbang logika klasik
memanipulasi nilai bit klasik, 0 atau 1, gerbang kuantum dapat sewenang-wenang
memanipulasi nilai kuantum multi-partite termasuk superposisi dari komputasi
dasar yang juga dilibatkan. Jadi gerbang logika kuantum perhitungannya jauh
lebih bervariasi daripada gerbang logika perhitungan klasik.
2.
Parallelism Concept
Paralelisme (parallelism) lahir
dari pendekatan yang biasa dipergunakan oleh para perancang sistem untuk menerapkan
konsep pemrosesan konkuren. Teknik ini meningkatkan kecepatan proses dengan
cara memperbanyak jumlah modul perangkat keras yang dapat beroperasi secara
simultan disertai dengan membentuk beberapa proses yang bekerja secara simultan
pada modul-modul perangkat keras tersebut. Secara formal, pemrosesan paralel
adalah sebuah bentuk efisien pemrosesan informasi yang menekankan pada
eksploitasi dari konkurensi kejadian-kejadian dalam proses komputasi.Pemrosesan
paralel dapat terjadi pada beberapa tingkatan (level) proses. Tingkatan
tertinggi pemrosesan paralel terjadi pada proses di antara banyak job
(pekerjaan) atau pada program yang menggunakan multiprogramming, time sharing,
dan multiprocessing. Multiprogramming kemampuan eksekusi terhadap beberapa proses
perangkat lunak dalam sebuah system secara serentak, jika dibandingkan dengan
sebuah proses dalam satu waktu, dan timesharing berarti menyediakan pembagian
selang waktu yang tetap atau berubah-ubah untuk banyak program. Multiprocessing
adalah dukungan sebuah sistem untuk mendukung lebih dari satu prosesor dan
mengalokasikan tugas kepada prosesor-prosesor tersebut. Multiprocessing sering
diimplementasikan dalam perangkat keras (dengan menggunakan beberapa CPU
sekaligus), sementara multiprogramming sering digunakan dalam perangkat lunak.
Sebuah sistem mungkin dapat memiliki dua kemampuan tersebut, salah satu di
antaranya, atau tidak sama sekali. Pemrosesan paralel dapat juga terjadi pada
proses di antara prosedurprosedur atau perintah perintah (segmen program) pada
sebuah program.
3.
Distributed Processing
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.
4.
Architectural Parallel Computer
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. Teorinya komputer ini memiliki satu prosesor dan mengeksekusi beberapa
instruksi secara paralel. Sampai saat ini belum ada komputer yang menggunakan
model MISD karena sistemnya tidak mudah.
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. Komponen-komponen utama
dari arsitektur komputer paralel cluster PC antara lain:
1. Prosesor (CPU). Bagian paling penting dalam
sistem, untuk multicore terdapat lebih dari satu core yang mengakses sebuah
memori (shared memory).
2. Memori. Bagian ini dapat diperinci lagi menjadi
beberapa bagian penyusunnya seperti RAM, cache memory dan memori eksternal.\
3. Sistem Operasi. Software dasar untuk menjalankan
sistem komputer.
4. Cluster Middleware. Antarmuka antara hardware
dan software.
5. Programming Environment dan Software Tools.
Software yang digunakan untuk pemrograman paralel termasuk software
pendukungnya.
6. User Interface. Software yang menjadi perantara
hardware dengan user.
7. Aplikasi. Software berisi program permasalahan
yang akan diselesaikan.
8. Jaringan. Penghubung satu PC (prosesor) dengan
PC yang lain sehingga memungkinkan pemanfaatan sumberdaya secara simultan.
5.
Pengantar Thread Programming
Thread dalam sistem operasi dapat
diartikan sebagai sekumpulan perintah (instruksi) yang dapatdilaksanakan
(dieksekusi) secara sejajar dengan ulir lainnya, dengan menggunakan cara time
slice (ketika satu CPU melakukan perpindahan antara satu ulir ke ulir lainnya)
atau multiprocess (ketika ulir-ulir tersebut dilaksanakan oleh CPU yang berbeda
dalam satu sistem). Ulir sebenarnya mirip dengan roses, tapi cara berbagi
sumber daya antara proses dengan ulir sangat berbeda. Multiplethread
dapat dilaksanakan secara sejajar pada sistem komputer. Secara umum
multithreading melakukan time-slicing (sama dengan time-division
multipleks), di manasebuah CPU bekerja pada ulir yang berbeda, di mana suatu
kasus ditangani tidak sepenuhnya secara serempak, untuk CPU tunggal pada
dasarnya benar-benar melakukan sebuah pekerjaan pada satu waktu. Thread saling
berbagi bagian program, bagian data dan sumber daya sistem operasi denganthread
lain yang mengacu pada proses yang sama. Thread terdiri atas ID thread, program
counter, himpunan register, dan stack. Dengan banyak kontrol thread proses
dapat melakukan lebih dari satu pekerjaan pada waktu yang sama. Proses
merupakan lingkungan eksekusi bagi thread-thread yang dimilikinya.
Thread-thread di satu proses memakai bersama sumber daya yang dimiliki proses,
yaitu :
·
Ruang alamat.
·
Himpunan berkas yang dibuka.
·
Proses-proses anak.
·
Timer-timer.
·
Sinyal-sinyal.
·
Sumber daya-sumber daya lain milik proses.
6.
Pengantar Massage Passing
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. Paradigma Message passing yaitu :
· Banyak contoh dari paradigma sekuensial
dipertimbangkan bersama-sama.
· Programmer membayangkan beberapa prosesor,
masing-masing dengan memori, dan menulis sebuah program untuk berjalan pada
setiap prosesor.
· Proses berkomunikasi dengan mengirimkan pesan
satu sama lain.
Terdapat beberapa metode dalam
pengiriman pesan yaitu :
1.
Synchronous Message Passing
Pengirim menunggu untuk mengirim
pesan sampai penerima siap untuk menerima pesan. Oleh karena itu tidak ada
buffering. Selain itu Pengirim tidak bisa mengirim pesan untuk dirinya sendiri.
2.
Ansynchronous Message Passing
Pengirim akan mengirim pesan kapanpun
dia mau. Pengirim tidak peduli ketika penerima belum siap untuk menerima pesan.
Oleh karena itu diperlukan buffering untuk menampung pesan sementara sampai
penerima siap menerima pesan. Selain itu pengirim dapat pesan untuk dirinya
sendiri.
Peter
Cabauy. 2002. Cyclic Network of Quantum Gates. Inggris: Universitas
Michigan
Dayat
Suryana. 2012. Mengenal Komputer. Jakarta: CreateSpace Independent
Publishing Platform
Expertise
International. 1978. Distributerd Processing: Technical report. Inggris:
Q.E.D. Information Sciences
Barry
Wilkinson, Michael Allen. Parallel Programming - Teknik dan Aplikasi
Menggunakan Jaringan Workstation & Komputer Paralel. Indonesia: Andi
Tidak ada komentar:
Posting Komentar