Quantum Computation
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. Dalam hal ini untuk mengembangkan komputer dengan sistem kuantum diperlukan suatu logika baru yang sesuai dengan prinsip kuantum.
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 bergantung pada hasil dari teori bilangan. Hasil ini adalah: fungsi periodik. Dalam konteks algoritma Shor, n akan menjadi bilangan yang akan difaktorkan. Jika dua bilangan tersebut adalah coprime itu berarti bahwa pembagi umumnya adalah 1. Perhitungan fungsi ini untuk jumlah eksponensial, dari itu akan mengambil waktu eksponensial pada komputer klasik. Algoritma Shor memanfaatkan paralelisme kuantum untuk melakukan jumlah eksponensial operasi dalam satu langkah.
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 :
- Komputer Array.
- 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)
- Prosesor vektor : beberapa prosesor yang disusun seperti pipeline.
- Multiprosesor, yaitu sebuah sistem yang memiliki 2 prosesor atau lebih yang saling berbagi memori.
- Multikomputer, yaitu sebuah sistem yang memiliki 2 prosesor atau lebih yang masing-masing prosesor memiliki memori sendiri.
Distributed Processing
Yang dimaksud Distribusi Processing adalah 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.
Contoh dari Distributed Data Processing System adalah: ATM, komputer yang dirancang untuk tugas-tugas melaksanakan proyek, analisis finansial, penjadwalan waktu dan akuntansi. Contoh lainnya, pengolahan data pada server yahoo yang tersebar hampir di seluruh dunia secara distribusi, setiap wilayah mempunyai server masing-masing. Seperti di indonesia mempunyai server tersendiri sehingga pengolahan data tidak di pusat melainkan di wilayah masing-masing.
Distributed data processing / pemrosesan data terdistribusi
Merupakan sekumpulan peralatan pemrosesan yang saling terhubung melalui jaringan yang mengerjakan tugas-tugas tertentu.
Pemrosesan terdistribusi dapat dikelompokan berdasarkan beberapa kriteria yaitu :
- Struktur antar hubungan
- Kesaling tergantungan komponen-komponen.
- Keselarasan antar komponen.
Architectural Parallel Computer
Arsitektur Komputer Paralel adalah sekumpulan elemen pemroses (Processing Elements) yang bekerjasama dalam menyelesaikan sebuah masalah besar. Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak.
Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi. Untuk melakukan berbagai jenis komputasi paralel diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk digunakan perangkat lunak pendukung yang biasa disebut middleware yang berperan mengatur distribusi antar titik dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi.
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.
Terdapat beberapa metode dalam pengiriman pesan yaitu :
· 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.
· 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.
Tidak ada komentar:
Posting Komentar