Quantum Gates
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.
Algoritma Shor
Algoritma
Shor, dinamai oleh 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 bilangan integer 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 mengalami 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.
Algoritma
Shor yang paling sederhana adalah menemukan faktor-faktor untuk bilangan
15, di mana membutuhkan sebuah
komputer kuantum dengan tujuh qubit.
Para ahli kimia mendesain dan menciptakan sebuah
molekul yang memiliki tujuh putaran nukleus. Nukleus dari lima atom fluorin dan
dua atom karbon yang dapat berinteraksi satu dengan yang lain sebagai qubit,
dapat diprogram dengan menggunakan denyut-denyut frekuensi radio dan dapat dideteksi melalui
peralatan resonansi magnetis nuklir
(nuclear magnetic resonance, atau NMR) yang mirip dengan yang banyak digunakan
di rumah-rumah sakit dan laboratorium-laboratorium kimia.
Parallelism Concept
Komputasi
paralel didefinisikan sebagai penggunaan sekumpulan sumberdaya komputer secara
simultan untuk menyelesaikan permasalahan komputasi. Secara prinsip komputer
paralel membagi permasalahan sehingga menjadi lebih kecil untuk dikerjakan oleh
setiap prosesor / CPU dalam waktu yang bersamaan/simultan / concurrent dan
prinsip ini disebut paralelisme. Konsep program parallel :
– Memerintahkan set instruksi (pandangan
programmer).
– File executable (pandangan sistem operasi)
Pada
dasarnya, konsep parallel system merupakan suatu bentuk penawaran solusi dari
proses computing yang terlalu berat, sehingga dapat dipecah sedemikian hingga
tidak memberatkan system kerja komputer itu sendiri
Berdasarkan
tingkat paralelismenya prosesor paralel dapat dibagi menjadi beberapa tingkat(level)
sebagai berikut :
1.
Komputer Array :
a.
Prosesor array : beberapa prosesor yang bekerja sama untuk mengolah set
instruksi yang sama dan data yang berbeda – beda atau biasa disebut SIMD
(Single Instruction-stream Multiple Data)
b.
Prosesor vektor : beberapa prosesor yang disusun seperti pipeline.
2.
Multiprosesor, yaitu sebuah sistem yang memiliki 2 prosesor atau lebih yang
saling berbagi memori.
3.
Multikomputer, yaitu sebuah sistem yang memiliki 2 prosesor atau lebih yang
masing-masing prosesor memiliki memori sendiri.
Jenis-Jenis
Pemrosesan Paralel
Pemrosesan
paralel dapat dibagi ke dalam beberapa klasifikasi, sebagai berikut :
1.
Berdasarkan simetri penjadwalannya, pemrosesan parallel dapat dibagi dalam
beberapa jenis:
a)
Asymmetric Multiprocessing (ASMP)
b)
Symmetric Multiprocessing (SMP)
c)
ClusteringPoliteknik Telkom Sistem Komputer
2.
Berdasarkan aliran instruksi dan datanya, pemrosesan parallel dapat dibagi
dalam beberapa jenis:
a)
SISD (Single Instruction on Single Data Stream)
b)
SIMD (Single Instruction on Multiple Data Stream)
c)
MISD (Multiple Instruction on Single Data Stream)
d)
MIMD (Multiple Instruction on Multiple Data Stream)
3.
Berdasarkan kedekatan antar prosesor, pemrosesan parallel dapat dibagi dalam
beberapa jenis:
a)
Multikomputer (Loosely Coupled/ local memory) dengan memori yang terdistribusi
b) Multiprosesor (Tightly Coupled/ global memory) dengan memori yang dapat digunakan bersama (shared memory)
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.
Architectural Parallel Computer
Arsitektur komputer paralel ada beberapa versi
pengertian. Di sini akan menjelaskan sedikit tentang arsitektur komputer
menurut Flynn. Sesuai taksonomi Flynn, seorang Designer Processor, Organisasi
Prosesor dibagi menjadi 4 :
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. 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. Sampai saat ini belum ada
komputer yang menggunakan model MISD karena sistemnya tidak mudah.
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.
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.
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.
Karakteristik Thread
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.
Jenis-jenis Thread Berdasarkan Waktu Penciptaannya
1. Static threads
Jumlah thread yang akan dibuat ditentukan saat penulisan
dan kompilasi program. Tiap thread langsung dialokasikan stack tetap.
• Keunggulan = sederhana.
• Kelemahan = tidak fleksibel.
2. Dynamic threads
Penciptaan dan penghancuran thread “on-the-fly” saat
eksekusi. Penciptaan thread biasanya menspesifikasikan fungsi utama thread
(seperti pointer ke procedure) dan ukuran stack, dapat juga ditambah
parameter-parameter lan seperti prioritas panjadwalan.
• Keunggulan = fleksibel.
• Kelemahan = lebih rumit.
Jenis – Jenis Proses Thread
A. Single Thread Process
Sebuah proses tradisional atau heavyweight process
mempunyai single thread yang berfungsi sebagai pengendali. Dapat diartikan
sebagai proses yang bekerja secara berurutan sesuai dengan urutan masing-masing
thread (terstruktur) dan hanya mengerjakan satu tugas dalam satu waktu.
B. Multithread Process
Merupakan satu atau beberapa thread yang dijalankan
secara bersamaan(multiproses), dimana masing-masing thread tersebut dijalankan
pada jalur masing-masing. Setiap thread pada multithread menjalankan kode atau script
program secara berurutan. Multithread dapat diartikan juga sebagai suatu proses
dengan thread banyak dapat mengerjakan lebih dari satu tugas pada satu satuan
waktu. Multithread sering pula disebut dengan multiproses atau multitasking
pada system operasi.
Berdasarkan Pemetaan Thread
Model multithreading berdasarkan dengan pemetaan
dibedakan menjadi tiga bagian, yaitu:
1. Many-to-One
Banyaknya User-Level thread yang dipetakan ke kernel
thread tunggal, akan tetapi dari beberapa user thread dapat menggunakan satu
kernel thread saja.
Contoh :
• Solaries Green Thread
• GNU Portable Thread
2. One-to-One
Setiap user-level thread memetakan ke kernel thread, akan
tetapi user thread hanya dapat menggunakan satu kernel thread.
Contoh :
• Windows NT/XP/2000
• Linux
• Solaris 9 and later
3. Many-to-Many
• Mengijinkan beberapa user-level thread memakai beberapa
kernel thread.
• Mengijinkan system operasi untuk menciptakan beberapa
kernel thread.
• Keuntungan dari sistem ini ialah kernel thread yang
bersangkutan dapat berjalan secara paralel pada multiprosessor.
Pengantar
Massage Passing
Message Parsing dalam ilmu komputer adalah suatu bentuk
komunikasi yang digunakan dalam komputasi paralel, pemrograman berorientasi
obyek, dan komunikasi antar. 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. Dengan menunggu pesan,
proses juga dapat menyinkronkan.
Message passing adalah paradigma komunikasi di mana pesan
dikirim dari pengirim ke satu atau lebih penerima. Bentuk pesan termasuk
(remote) pemanggilan metode, sinyal, dan paket data.
Referensi :
https://www.slideshare.net/IrfannurCahyo3/quantum-gates
http://aliciaos.blogspot.com/2018/04/parallelism-concept.html
http://ridwanraa.blogspot.com/2015/12/parallelism-concept.html
http://muhammadmiftahpratama.blogspot.com/p/pengertian-distributedprocessing.html
https://fikrinm93.wordpress.com/2016/06/17/242/
https://dindajsmn.wordpress.com/2019/06/16/analisis-jurnal-pengantar-message-passing-openmp/
Tidak ada komentar:
Posting Komentar