Senin, 09 Mei 2016

Komputasi Paralel


Definisi Komputer Paralel
Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer independen secara bersamaan. Ini umumnya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar (di industri keuangan, bioinformatika, dll) ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua umum ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi) dll.

Tujuan Komputer Paralel
Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan. Analogi yang paling gampang adalah, bila anda dapat merebus air sambil memotong-motong bawang saat anda akan memasak, waktu yang anda butuhkan akan lebih sedikit dibandingkan bila anda mengerjakan hal tersebut secara berurutan (serial). Atau waktu yg anda butuhkan memotong bawang akan lebih sedikit jika anda kerjakan berdua.

Performa dalam pemrograman paralel diukur dari berapa banyak peningkatan kecepatan (speed up) yang diperoleh dalam menggunakan tehnik paralel. Secara informal, bila anda memotong bawang sendirian membutuhkan waktu 1 jam dan dengan bantuan teman, berdua anda bisa melakukannya dalam 1/2 jam maka anda memperoleh peningkatan kecepatan sebanyak 2 kali.

Arsitektur Komputer Paralel:
·         Embarasingly Parallel adalah pemrograman paralel yang digunakan pada masalah-masalah yang bisa diparalelkan tanpa membutuhkan komunikasi satu sama lain. Sebenarnya pemrograman ini bisa dibilang sebagai pemrograman paralel yang ideal, karena tanpa biaya komunikasi, lebih banyak peningkatan kecepatan yang bisa dicapai. 
·     Taksonomi dari model pemrosesan paralel dibuat berdasarkan alur instruksi dan alur data yang digunakan:
·         SISD Single Instruction Single Datapath, ini prosesor tunggal, yang bukan paralel.
·    SIMD Single Instruction Multiple Datapath, alur instruksi yang sama dijalankan terhadap banyak alur data yang berbeda. Alur instruksi di sini kalau tidak salah maksudnya ya program komputer itu. trus datapath itu paling ya inputnya, jadi inputnya lain-lain tapi program yang digunakan sama.
·    MIMD Multiple Instruction Multiple Datapath, alur instruksinya banyak, alur datanya juga banyak, tapi masing-masing bisa berinteraksi.

Proses distribusi
Kata didistribusikan dalam istilah seperti "sistem terdistribusi", "didistribusikan pemrograman", dan "algoritma terdistribusi" awalnya merujuk pada jaringan komputer dimana setiap komputer yang didistribusikan secara fisik dalam beberapa wilayah geografis. Istilah yang saat ini digunakan dalam lebih luas akal, bahkan mengacu pada proses otonom yang dijalankan pada komputer fisik yang sama dan berinteraksi satu sama lain dengan pesan lewat Meskipun tidak ada definisi tunggal dari sistem terdistribusi, [6] mendefinisikan sifat berikut yang umum digunakan.:

Ada beberapa entitas komputasi otonom, masing-masing memiliki memori lokal sendiri. Entitas berkomunikasi satu sama lain dengan pesan yang lewat. entitas komputasi disebut komputer atau node. Sebuah sistem terdistribusi mungkin memiliki tujuan bersama, seperti pemecahan masalah komputasi yang besar. [9] Atau, setiap komputer mungkin memiliki pengguna sendiri dengan kebutuhan individu, dan tujuan dari sistem terdistribusi adalah untuk mengkoordinasikan penggunaan sumber daya bersama atau memberikan layanan komunikasi kepada pengguna.

Sifat khas lain dari sistem terdistribusi adalah sebagai berikut:

·         Sistem ini harus mentolerir kegagalan dalam komputer pribadi.
·  Struktur sistem (topologi jaringan, latency jaringan, jumlah komputer) tidak diketahui sebelumnya, sistem dapat terdiri dari berbagai jenis komputer dan link jaringan, dan sistem dapat berubah selama pelaksanaan program didistribusikan.
·         Setiap komputer hanya memiliki terbatas, pandangan yang tidak lengkap dari sistem. Setiap komputer mungkin tahu hanya satu bagian dari input.

Paralel dan komputer terdistribusi
Sistem terdistribusi adalah kelompok jaringan komputer, yang memiliki tujuan yang sama untuk pekerjaan mereka. Istilah "komputasi bersamaan", "komputasi paralel", dan "komputasi terdistribusi" memiliki banyak tumpang tindih, dan tidak ada perbedaan yang jelas antara mereka ada Sistem yang sama dapat dicirikan baik sebagai "parallel" dan "didistribusikan".; prosesor dalam sistem terdistribusi khas berjalan bersamaan secara paralel komputasi paralel dapat dilihat sebagai bentuk tertentu erat komputasi terdistribusi, dan komputasi terdistribusi dapat dilihat sebagai bentuk longgar ditambah komputasi paralel. Namun demikian, adalah mungkin untuk mengklasifikasikan sistem kira-kira bersamaan sebagai "paralel" atau "didistribusikan" dengan kriteria sebagai berikut:

Dalam komputasi paralel, semua prosesor mungkin memiliki akses ke memori bersama untuk bertukar informasi antara prosesor.

Dalam komputasi terdistribusi, masing-masing prosesor memiliki memori pribadi (memori terdistribusi). Informasi dipertukarkan dengan melewatkan pesan antara prosesor.
setiap komputer memiliki memori lokal sendiri, dan informasi dapat dipertukarkan hanya dengan melewatkan pesan dari satu node ke yang lain dengan menggunakan link komunikasi yang tersedia.

Situasi ini semakin rumit oleh penggunaan tradisional istilah paralel dan algoritma terdistribusi yang tidak cukup cocok dengan definisi di atas sistem paralel dan terdistribusi, lihat dasar-dasar Teoritis bawah untuk pembahasan lebih rinci. Namun demikian, sebagai aturan praktis, komputasi paralel kinerja tinggi dalam shared-memory multiprosesor menggunakan algoritma paralel sedangkan koordinasi dari sistem terdistribusi skala besar menggunakan algoritma didistribusikan.

Pengantar Thread Programming
Dalam ilmu komputer, sebuah thread eksekusi adalah urutan terkecil instruksi diprogram yang dapat dikelola secara independen oleh sistem operasi scheduler. Sebuah thread adalah proses ringan. Pelaksanaan threads dan proses berbeda dari satu sistem operasi yang lain, tetapi dalam banyak kasus, thread yang terkandung di dalam proses. Beberapa threads bisa ada dalam proses yang sama dan berbagi sumber daya seperti memori, sedangkan proses yang berbeda tidak berbagi sumber daya tersebut. Secara khusus, threads-threads proses berbagi petunjuk yang terakhir (kode) dan konteksnya (nilai-nilai yang variabel yang referensi pada saat tertentu).

Pada prosesor tunggal, multithreading umumnya terjadi pada saat-division multiplexing (seperti dalam multitasking): switch prosesor antara threads yang berbeda. Konteks ini beralih umumnya terjadi cukup sering bahwa pengguna merasakan threads atau tugas sebagai berjalan pada waktu yang sama. Pada sistem multiprosesor atau multi-core, threads dapat benar-benar bersamaan, dengan setiap prosesor atau inti mengeksekusi thread terpisah secara bersamaan.

Banyak sistem operasi modern langsung mendukung baik time-sliced dan multiprosesor threading dengan scheduler proses. Kernel sistem operasi memungkinkan programmer untuk memanipulasi threads melalui antarmuka system call. Beberapa implementasi yang disebut kernel thread, sedangkan proses ringan (LWP) adalah jenis spesifik kernel thread yang berbagi negara dan informasi yang sama.

Program dapat memiliki threads user-space ketika threading dengan timer, sinyal, atau metode lain untuk menghentikan eksekusi mereka sendiri, melakukan semacam ad-hoc time-slicing.

Pengantar Message Parsing, OpenMP
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. Ketika merancang sebuah sistem lewat pesan beberapa pilihan yang dibuat:
·         Apakah pesan ditransfer handal
·         Apakah pesan dijamin akan disampaikan dalam rangka
·  Apakah pesan yang melewati satu-ke-satu (unicast), satu-ke-banyak (multicast atau broadcast), banyak-ke-satu (client-server), atau banyak-ke-banyak (All-to-Semua).
·         Apakah komunikasi sinkron atau asinkron

Dasar teoritis yang menonjol perhitungan bersamaan, seperti model Aktor dan bate proses didasarkan pada pesan lewat. Implementasi sistem konkuren yang menggunakan pesan lewat dapat memiliki pesan lewat sebagai bagian integral dari bahasa, atau sebagai rangkaian perpustakaan panggilan dari bahasa. Contoh mantan meliputi banyak sistem objek terdistribusi. Contoh yang terakhir termasuk sistem operasi mikrokernel yang menyampaikan pesan antara satu kernel dan satu atau lebih blok Server, dan Message Passing Antarmuka yang digunakan dalam komputasi kinerja tinggi.

OpenMP adalah Application Program Interface (API), bersama-sama didefinisikan oleh sekelompok perangkat keras komputer utama dan vendor perangkat lunak. OpenMP menyediakan portabel, model yang terukur untuk pengembang aplikasi paralel memori bersama. API mendukung C / C + + dan Fortran pada berbagai arsitektur. Tutorial ini mencakup sebagian besar fitur utama OpenMP, termasuk berbagai konstruksi dan arahan untuk menentukan daerah paralel, pembagian kerja, sinkronisasi dan lingkungan data. Fungsi perpustakaan runtime dan variabel lingkungan juga dibahas. Tutorial ini mencakup baik C dan Fortran kode contoh dan latihan laboratorium.

Tingkat / Prasyarat: Tutorial ini adalah salah satu dari delapan tutorial dalam 4 + hari "Menggunakan Superkomputer LLNL" lokakarya. Hal ini ditujukan untuk mereka yang baru untuk pemrograman paralel dengan OpenMP. Pemahaman dasar pemrograman paralel dalam C atau Fortran diperlukan. Bagi mereka yang tidak terbiasa dengan Pemrograman Paralel pada umumnya, materi yang dibahas dalam EC3500: Pengantar Komputasi Paralel akan sangat membantu.

Pemrogramman CUDA GPU
CUDA adalah arsitektur komputasi paralel NVIDIA yang memungkinkan peningkatan dramatis dalam kinerja komputasi dengan memanfaatkan kekuatan GPU (graphics processing unit).

Dengan jutaan CUDA-enabled GPU terjual hingga saat ini, pengembang perangkat lunak, ilmuwan dan peneliti yang menemukan penggunaan yang luas-luas untuk CUDA, termasuk gambar dan pemrosesan video, biologi komputasi dan kimia, simulasi dinamika fluida, CT rekonstruksi citra, analisis seismik, ray tracing , dan masih banyak lagi.

Komputer Paralel menggunakan CUDA
Komputasi berkembang dari "central processing" pada CPU untuk "co-processing" pada CPU dan GPU. Untuk mengaktifkan ini paradigma komputasi baru, NVIDIA menemukan arsitektur komputasi paralel CUDA yang sekarang pengiriman di GeForce, ION Quadro, dan Tesla GPU, mewakili dasar terinstal signifikan untuk pengembang aplikasi. Di pasar konsumen, hampir setiap aplikasi video yang konsumen utama telah, atau akan segera, dipercepat oleh CUDA, termasuk produk dari Teknologi Elemental, MotionDSP dan LoiLo, CUDA telah antusias diterima di bidang penelitian ilmiah. Misalnya, CUDA sekarang mempercepat AMBER, sebuah program simulasi dinamika molekuler digunakan oleh lebih dari 60.000 peneliti dalam dunia akademis dan perusahaan farmasi di seluruh dunia untuk mempercepat penemuan obat baru.Di pasar keuangan, Numerix dan CompatibL mengumumkan dukungan CUDA untuk aplikasi counterparty risk baru dan mencapai speedup 18X. Numerix digunakan oleh hampir 400 lembaga keuangan. Indikator adopsi CUDA adalah jalan dari Tesla GPU untuk komputasi GPU. Sekarang ada lebih dari 700 kelompok GPU terpasang di seluruh dunia di Fortune 500 perusahaan mulai dari Schlumberger dan Chevron di sektor energi untuk BNP Paribas di bidang perbankan.

Dan dengan peluncuran terbaru dari Microsoft Windows 7 dan Apple Snow Leopard, komputasi GPU akan mainstream. Dalam sistem operasi baru, GPU tidak hanya akan menjadi prosesor grafis, tetapi juga tujuan paralel prosesor umum dapat diakses oleh aplikasi apapun.

Minggu, 17 April 2016

FILE SISTEM TERDISTRIBUSI



Hasil dari Kelompok :
- Andy Kembara Putra
- Adeline Fadila
- Chriselda Wildij Jennifer
- Michael Leo V
- Joana


File Sistem Terdistribusi ( Distributed File System , disingkat DFS - penulis akan
menggunakan kata ini selanjutnya) adalah file sistem yang mendukung sharing files dan
resources dalam bentuk penyimpanan persistent di sebuah network. File server pertama kali
didevelop pada tahun 1970 dan Sun NFS (Network File System) menjadi DFS pertama yang
banyak digunakan setelah awal pemunculannya di tahun 1985. DFS yang terkenal selain NFS
adalah AFS (Andrew File System) dan CIFS (Common Internet File System).
Sebuah file server menyediakan file service ke client. Dari sisi client terdapat interface
untuk file service dalam hal operasi primitif file, seperti membuat file (create), menghapus
(delete) dan read / write file. Komponen perangkat keras utama yang mana file server mengontrolnya adalah sebuah local storage (umumnya disk drive / HDD). Ditempat itulah
file-file tersimpan dan dari tempat tersebut request client meretrive file. Pada DFS client, server dan juga perangkat penyimpanan merupakan mesin terpisah dalam sebuah lingkungan
terdistribusi (Intranet). Jadi, aktifitas layanan (service) dibawa melewati jaringan (network),
jadi selain sistem memiliki satu data terpusat, sistem memiliki beberapa perangkat penyimpanan independent. Konfigurasi konkret dan juga implementasi dari sebuah DFS dapat
beragam bentuknya. Dalam beberapa konfigurasi, server berjalan sebagai dedicated machine
(layanan terpusat) atau juga menjadi server dan client. DFS dapat diimplementasikan sebagai
bagian dari Sistem Operasi Terdistribusi dengan sebuah layer software yang tugasnya mengatur komunikasi antara sistem operasi konvensional dan file system.
File system yang terdistribusi mengemulasikan fungsionalitas dari file sistem tak terdistribusi untuk program client yang berjalan pada komputer remote. File sistem terdistribusi juga menyediakan hal-hal pokok untuk pengorganisasian komputer yang berbasiskan jaringan
intranet.
Pengenalan File Service
File service adalah suatu  perincian  atau  pelayanan dari file system yang ditawarkan pada komputer client.  Suatu file server adalah implementasi dari file service dan berjalan pada satu atau lebih mesin. File itu sendiri berisi dari nama, data dan atribut file seperti kepemilikan file, ukuran, waktu pembuatan file dan hak akses file. File sistem merupakan mekanisme penyimpanan on-line serta untuk akses, baik data maupun program yang berada dalam sistem operasi.

Karakteristik dari File System
File Sistem adalah bertanggung jawab untuk pengorganisasian, penyimpanan, pencarian keterangan, penamaan, sharing atau pembagian dan protection atau perlindungan dari file-file. File berisi dari dua bagian penting yaitu data dan atribut. File sistem didesain untuk menyimpan dan mengatur banyak dan besar file dengan fasilitas untuk membuat, memberi nama dan menghapus file. File system juga bertanggung jawab untuk pengontrolan dari akses file, akses terbatas ke file oleh user yang berhak dan tipe-tipe dari akses yang diminta.
- Operasi pada file (=data + atribut)
·         Create / delete
·         Query / Modifikasi Atribut
·         Open / Close
·         Read / Write
·         Akses Kontrol
- Organisasi penyimpanan
·         Struktur direktori (hirarki, pathname)
·         Metadata (pengaturan informasi file) : atribut file, informasi struktur direktori, Dll.

Atribut File
1.      File adalah kumpulan informasi berkait yang diberi nama dan direkam pada penyimpanan sekunder. Atribut file terdir dari :
2.      Nama Merupakan satu-satunya informasi yang tetap dalam bentuk yang bisa  dibaca oleh manusia (human readable form)
3.      Type Dibutuhkan untuk sistem yang mendukung beberapa tipe berbeda Lokasi Merupakan pointer atau penunjuk ke device dan lokasi file pada device tersebut berada
4.      Ukuran (Size) Ukuran file pada saat itu, baik dalam byte, huruf ataupun blok Proteksi Informasi mengenai kontrol akses, misalnya siapa saja yang boleh membaca, menulis dan mengeksekusi file
5.      Waktu, tanggal dan identifikasi pengguna Informasi ini biasanya disimpan untuk :
- Pembuatan file
- Modifikasi terakhir yang dilakukan pada file
- Penggunaan terakhir file

Atribute file
·         Panjang File
·         Creation Timestamp
·         Read Timestamp
·         Write Timestamp
·         Attribute Timestamp
·         Reference Count
·         Owner
·         Tipe File
·         Daftar Akses Kontrol

Struktur File System
- Modul direktori : menghubungkan nama file dengan ID file
- Modul File : menghubungkan ID dengan file tertentu
- Modul Akses Kontrol : memeriksa permission utuk operasi yang diminta
- Modul Akses File : read / write data file atau atribut
- Modul Blok : akses dan alokasi blok disk
- Modul Perangkat : disk I/O dan buffering

Komponen File service
Komponen-komponen file service adalah terdiri dari :
·         File Service
Pengoperasian dari masing-masing file.
·         Directory Service
Management atau pengaturan direktori


·         Naming Service
- Location Independence :
§  File dapat dipindahkan tanpa penggantian nama
- Hal yang umum untuk penamaan file dan directori :
§  Mesin + nama path e.g / machine / path atau machine : path
§  Mounting File sistem secara remote kedalam hirarki local file.
§  Single name space yang sama pada semua mesin.
- Dua level penamaan :
§  Nama simbolik yang dilihat user dan nama binary yang dilihat oleh sistem.

Jumat, 08 April 2016

Pengantar Quantum Computation

A. Pendahuluan

Komputasi kuantum merupakan bidang studi yang memfokuskan pada bidang teknologi komputer yang berkembang atas dasar prinsip-prinsip dasar teori kuantum, misalnya superposisi dan keterkaitan untuk melakukan operasi data. Teori kuantum menjelaskan sifat dan perilaku energi dan materi pada kuantum.

Prinsip dasar komputer kuantum adalah sifat kuantum dari partikel dapat digunakan untuk mewakili data dan struktur data, serta mekanika kuantum dapat digunakan untuk melakukan operasi dengan data ini. Untuk mengembangkan komputer dengan sistem kuantum diperlukan suatu logika yang baru yang sesuai dengan prinsip kuantum.

Teori Kuantum

Sejak tahun 1990, teori kuantum mulai berkembang dengan presentasi oleh Max Planck ke himpunan Fisika Jerman. Max Planck memperkenalkan ide bahwa energi ada dalam uni individu ('kuanta'). Perkembangan selanjutnya yang dilakukan oleh sejumlah ilmuwan selama tiga puluh tahun berikutnya menyebabkan pemahaman modern tentang teori kuantum.

B. Entaglement

Entanglement atau ketertarikan kuantum adalah salah satu prinsip utama dari fisika kuantum. Entanglement kuantum adalah beberapa partikel terkait dalam sedemikian rupa sehingga pengukuran keadaan kuantum satu partikel menentukan kemungkinan keadaan kuantum dari partikel lainnya.

Secara keseluruhan, superposisi kuantum dan entanglement menciptakan daya komputasi yang sangat ditingkatkan. Dimana 2 bit di komputer biasa dapat menyimpan hanya satu dari empat konfigurasi biner (00,01,10 atau 11) pada waktu tertentu, register 2 qubit dalam sebuah koputer kuantum dapat menyimpan semua empat nomor secara bersamaan, karena qubit masing-masing mewakili dua nilai. Jika lebih qubit ditambahkan, kapasitas meningkat diperluas secara eksponensial.

C. Pengoperasian Data Qubit

Qubit (kuantum bit), adalah mitra dalam komputasi kuantum dengan biner atau bit dari komputasi klasik. Qubit adalah unit dasar informasi dalam komputer kuantum. Dua aspek yang paling relevan dengan fisika kuantum adalah prinsip superposisi dan entanglement.

D. Quantum Gates

Quantum Logic Gates, 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.

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.

E. Algoritma Shor

Sebuah komputer kuantum tidaklah sama dengan komputer klasik. Hal ini tidak dalam hal kecepatan saja, namun juga dalam hal pemrosesan informasi. Sebuah komputer kuantum dapat mensimulasikan sebuah proses yang tidak dapat dilakukan oleh komputer klasik. Hal ini membuat para ilmuwan harus memiliki paradigma baru dalam hal permrosesan informasi.
Selama ini, sebuah komputer bekerja didasarkan hukum-hukum fisika klasik. Informasi didefinisikan secara positif, direpresentasikan secara material dan diproses berdasarkan hukum-hukum fisika klasik. Ketika para fisikawan masuk ke dalam teori kuantum dalam pemrosesan informasi, mereka diharuskan untuk mengubah pandangan mereka mengenai pemrosesan informasi. Lebih jauh lagi, mereka harus mengembangkan sebuah sistem logika baru yang mengikuti hukum-hukum fisika kuantum. Sistem logika baru ini disebut dengan logika kuantum. Sistem logika kuantum berbeda sama sekali dengan sistem logika yang selama ini dipakai, yaitu sistem logika yang dikembangkan oleh Aristoteles.
Dengan sistem logika yang baru, para ilmuwan harus memikirkan sebuah algoritma yang berbeda untuk memproses informasi. Inilah yang sebenarnya merupakan inti dari komputer kuantum. Beberapa algoritma telah dikembangkan dan yang di antaranya telah berhasil ditemukan adalah algoritma Shor yang ditemukan oleh Peter Shor pada tahun 1995. Lewat algoritma Shor ini, sebuah komputer kuantum dapat memecahkan sebuah kode rahasia yang saat ini secara umum digunakan untuk mengamankan pengiriman data. Kode ini disebut kode RSA. 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.


Sebagai contoh, seorang pemecah kode akan membutuhkan waktu 8 bulan dan 1.600 pengguna internet jika ia akan memecahkan kode RSA yang disandikan dalam 129 digit. Jika hal ini mungkin, pengirim data hanya perlu menambahkan digit pada kode RSA-nya agar para pemecah kode membutuhkan waktu yang lebih lama lagi untuk memecahkan kuncinya. Sebagai gambaran, pemecahan kode RSA 140 (140 digit) akan membutuhkan waktu yang lebih lama dari umur alam semesta (15 miliar tahun). Namun, jika pemecah kode menggunakan komputer kuantum, mereka dapat memecahkan kode RSA 140 hanya dalam waktu beberapa detik. Hal inilah yang membuat waswas para pengguna channel komunikasi rahasia saat ini untuk melakukan pengiriman data secara aman.

PENGANTAR KOMPUTASI CLOUD

D. Distributed Computation dalam Cloud Computing

Komputasi terdistribusi merupakan bidang ilmu komputer yang mempelajari sistem terdistribusi. Sebuah sistem terdistribusi terdiri dari beberapa komputer otonom yang berkomunikasi melalui jaringan komputer. Komputer yang saling berinteraksi untuk mencapai tujuan bersama. Suatu program komputer yang berjalan dalam sistem terdistribusi disebut program didistribusikan, dan didistribusikan pemrograman adalah proses menulis program tersebut. Distributed computing juga mengacu pada penggunaan sistem terdistribusi untuk memecahkan masalah komputasi. Dalam distributed computing, masalah dibagi menjadi banyak tugas, masing-masing yang diselesaikan oleh satu komputer.

E. Map Reduce dan NoSQL (Not Only SQL)

Map-Reduce adalah salah satu konsep teknis yang sangat penting di dalam teknologi cloud terutama karena dapat diterapkannya dalam lingkungan distributed computing. Dengan demikian akan menjamin skalabilitas aplikasi kita.
Salah satu contoh penerapan nyata map-reduce ini dalam suatu produk adalah yang dilakukan Google. Dengan inspirasi dari functional programming map dan reduce Google bisa menghasilkan filesystem distributed yang sangat scalable, Google Big Table.
Dan juga terinspirasi dari Google, pada ranah open source terlihat percepatan pengembangan framework lainnya yang juga bersifat terdistribusi dan menggunakan konsep yang sama, project open source tersebut bernama Apache Hadoop.
NoSQL adalah istilah untuk menyatakan berbagai hal yang didalamnya termasuk database sederhana yang berisikan key dan value seperti Memcache, ataupun yang lebih canggih yaitu non-database relational seperti MongoDB, Cassandra, CouchDB, dan yang lainnya.

Wikipedia menyatakan NoSQL adalah sistem menejemen database yang berbeda dari sistem menejemen database relasional yang klasik dalam beberapa hal. NoSQL mungkin tidak membutuhkan skema table dan umumnya menghindari operasi join dan berkembang secara horisontal. Akademisi menyebut database seperti ini sebagai structured storage, istilah yang didalamnya mencakup sistem menejemen database relasional.