Quantum Gates dan Algoritma Shor, Parallelism Concept, Distributed Processing, Architectural Parallel Computer, Pengantar Thread Programming, Pengantar Massage Passing
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:
- 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.
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.
- Snyal-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 :
1.
Banyak
contoh dari paradigma sekuensial dipertimbangkan bersama-sama.
2.
Programmer
membayangkan beberapa prosesor, masing-masing dengan memori, dan menulis sebuah
program untuk berjalan pada setiap prosesor.
3.
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.
Sumber :
Barry Wilkinson, Michael Allen. Parallel Programming - Teknik dan Aplikasi Menggunakan Jaringan Workstation & Komputer Paralel. Indonesia: Andi
Dayat Suryana. 2012. Mengenal Komputer. Jakarta: CreateSpace Independent Publishing Platform
https://www.academia.edu/32862097/PENGANTAR_KOMPUTASI_MODERN_Quantum_Computation
http://publication.gunadarma.ac.id/bitstream/123456789/1277/1/50407705.pdf
https://elib.unikom.ac.id/download.php?id=34561
https://www.slideshare.net/ranjitbanshpal/parallelization-using-open-mp


Komentar
Posting Komentar