Rabu, 11 Mei 2016

Paralel Computation, Paralel Concept, Disrtibuted Processing, Architectural Computer



Parallel Computation

·       Parallel Concept

Parallel computation adalah salah satu pemrograman komputer yang memungkinkan untuk melakukan eksekusi perintah secara bersamaan dan berbarengan dalam satu ataupun banyak prosesor di dalam sebuah CPU. Parallel computation sendiri berguna untuk meningkatkan performa komputer karena semakin banyak proses yang bisa dikerjakan secara bersamaan maka akan makin cepat.
Konsep paralel adalah sebuah kemampuan prosesor untuk melakukan sebuah tugas ataupun banyak tugas secara simultan ataupun bersamaan, dengan kata lain prosesor mampu melakukan satu ataupun banyak tugas dalam satu waktu.

·       Distributed Processing

Pemrosesan terdistribusi merupakan proses pendistribusian pengolahan paralel dalam pemrosesan paralel menggunakan beberapa mesin. Jadi, bisa di bilang kemampuan dari suatu komputer-komputer yang dijalankan secara bersamaan untuk memecahkan suatu masalah dengan proses yang cepat.
Menurut Gustafson proses terdistribusi adalah sebuah komputasi paralel berjalan dengan menggunakan dua atau lebih mesin untuk mempercepat penyelesaian masalah dengan memperhatikan faktor eksternal, seperti kemampuan mesin dan kecepatan proses tiap-tiap mesin yang digunakan.
Contoh dari proses terdistribusi adalah ketika terdapat macam masalah diberikan pada satu master, maka dengan menggunakan komputer paralel masalah terseut akan terpecah menjadi beberapa bagian secara terdistribusi.

·       Architectural Parallel Computer

Menurut seorang Designer Processor, taksonomi Flynn, Arsitektur Komputer dibagi menjadi 4 baguan, yaitu
SISD (Single Instruction, Single Data) adalah satu-satunya yang menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa processor.
SIMD(Single Instruction, Multiple Data) menggunakan banyak processor dengan instruksi yang sama, namun setiap processor mengolah data yang berbeda. Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain. 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 Instruction, Single Data) menggunakan banyak processor dengan setiap processor menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang sama pada contoh model SIMD namun cara penyelesaian yang berbeda. Pada MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer yang menggunakan model MISD.
MIMD( Multiple Instruction, Multiple Data) menggunakan banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.

·       Pengantar Thread Programming

Sebuah thread di dalam pemrograman komputer adalah sebuah informasi terkait tentang penggunaan sebuah program tunggal yang dapat menangani beberapa pengguna secara bersamaan.Thread ini memungkinkan program untuk mengetahui bagaimana user masuk ke dalam program secara bergantian dan user akan masuk kembali menggunakan user yang berbeda. Multiple thread dapat berjalan bersamaan dengan proses lainnya membagi sumberdaya menjadi memori, disaat proses lain tidak membaginya.
·       Pengantar Massage Passing, Open MP
Message Passing merupakan sebuah bentuk dari komunikasi yang digunakan di komputasi paralel, OOT (Object Oriented Programming) atau Pemrograman Berbasis Objek dan komunikasi interproses.
MPI adalah sebuah standard pemrograman yang memungkinkan pemrogram untuk membuatsebuah aplikasi yang dapat dijalankan secara paralel. Proses yang dijalankan oleh sebuah aplikasi dapat dibagi untuk dikirimkan ke masing – masing compute node yang kemudian masing – masing compute node tersebut mengolah dan mengembalikan hasilnya ke komputer head node.Untuk merancang aplikasi paralel tentu membutuhkan banyak pertimbangan - pertimbangandiantaranya adalah latensi dari jaringan dan lama sebuah tugas dieksekusi oleh prosesor
OpenMP (Open Multi-Processing) adalah sebuah antarmuka pemrograman aplikasi (API) yang mendukung multi processing shared memory pemrograman di C, C++ dan Fortran pada berbagai arsitektur, termasuk UNix dan Microsoft Windows platform. OpenMP Terdiri dari satu set perintah kompiler, perpustakaan rutinitas, dan variabel lingkungan yang mempengaruhi run-time. Banyak Aplikasi dibangun dengan model hibrida pemrograman paralel  dapat dijalankan pada komputer cluster dengan menggunakan OpenMP dan Message Passing Interface (MPI), atau lebih transparan dengan menggunakan ekstensi OpenMP non-shared memory systems.

·       Pengantar Pemograman CUDA GPU

Sebelum saya membahas tentang CUDA, saya akan membahas GPU terlebih dahulu. GPU dalah sebuah processor khusus untuk memepercepat dan mengubah memori untuk mempercepat pemrosesan gambar. GPU ini sendiri biasanya berada di dalam graphic card komputer ataupun laptop
CUDA(Compute Unified Device Architecture) adalah suatu skema yang dibuat oleh NVIDIA agar NVIDIA selaku GPU (Graphic Processing Unit) mampu melakukan komputasi tidak hanya untuk pengolahan grafis namun juga untuk tujuan umum. Jadi dengan adanya CUDA kita dapat memanfaatkan banyak prosesor dari NVIDIA untuk melakukan proses perhitungan ataunpun komputasi yang banyak.

Quantum Computing, Entanglement, Pengoperasian Data Qubit, Quantum Gates, Algoritma Shor



Pengertian  Quantum Computing

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.

Entanglement

Entanglement adalah efek mekanik kuantum yang mengaburkan jarak antara partikel individual sehingga sulit menggambarkan partikel tersebut terpisah meski Anda berusaha memindahkan mereka. Contoh dari quantum entanglement: kaitan antara penentuan jam sholat dan quantum entanglement. Mohon maaf bagi yang beragama lain saya hanya bermaksud memberi contoh saja. Mengapa jam sholat dibuat seragam? Karena dengan demikian secara massal banyak manusia di beberapa wilayah secara serentak masuk ke zona entanglement bersamaan.

Pengertian Lain

Quantum entanglement adalah bagian dari fenomena quantum mechanical yang menyatakan bahwa dua atau lebih objek dapat digambarkan mempunyai hubungan dengan objek lainnya walaupun objek tersebut berdiri sendiri dan terpisah dengan objek lainnya. Quantum entanglement merupakan salah satu konsep yang membuat Einstein mengkritisi teori Quantum mechanical. Einstein menunjukkan kelemahan teori Quantum Mechanical yang menggunakan entanglement merupakan sesuatu yang “spooky action at a distance” karena Einstein tidak mempercayai bahwa Quantum particles dapat mempengaruhi partikel lainnya melebihi kecepatan cahaya. Namun, beberapa tahun kemudian, ilmuwan John Bell membuktikan bahwa “spooky action at a distance” dapat dibuktikan bahwa entanglement dapat terjadi pada partikel-partikel yang sangat kecil.

Penggunaan quantum entanglement saat ini diimplementasikan dalam berbagai bidang salah satunya adalah pengiriman pesan-pesan rahasia yang sulit untuk di-enkripsi dan pembuatan komputer yang mempunyai performa yang sangat cepat.

Pengoperasian Data Qubit

Qubit merupakan kuantum bit , mitra dalam komputasi kuantum dengan digit biner atau bit dari komputasi klasik. Sama seperti sedikit adalah unit dasar informasi dalam komputer klasik, qubit adalah unit dasar informasi dalam komputer kuantum . Dalam komputer kuantum, sejumlah partikel elemental seperti elektron atau foton dapat digunakan (dalam praktek, keberhasilan juga telah dicapai dengan ion), baik dengan biaya mereka atau polarisasi bertindak sebagai representasi dari 0 dan / atau 1. Setiap partikel-partikel ini dikenal sebagai qubit, sifat dan perilaku partikel-partikel ini (seperti yang diungkapkan dalam teori kuantum ) membentuk dasar dari komputasi kuantum. Dua aspek yang paling relevan fisika kuantum adalah prinsip superposisi dan Entanglement

Superposisi, pikirkan qubit sebagai elektron dalam medan magnet. Spin elektron mungkin baik sejalan dengan bidang, yang dikenal sebagai spin-up, atau sebaliknya ke lapangan, yang dikenal sebagai keadaan spin-down. Mengubah spin elektron dari satu keadaan ke keadaan lain dicapai dengan menggunakan pulsa energi, seperti dari Laser - katakanlah kita menggunakan 1 unit energi laser. Tapi bagaimana kalau kita hanya menggunakan setengah unit energi laser dan benar-benar mengisolasi partikel dari segala pengaruh eksternal? Menurut hukum kuantum, partikel kemudian memasuki superposisi negara, di mana ia berperilaku seolah-olah itu di kedua negara secara bersamaan. Setiap qubit dimanfaatkan bisa mengambil superposisi dari kedua 0 dan 1. Dengan demikian, jumlah perhitungan bahwa komputer kuantum dapat melakukan adalah 2 ^ n, dimana n adalah jumlah qubit yang digunakan. Sebuah komputer kuantum terdiri dari 500 qubit akan memiliki potensi untuk melakukan 2 ^ 500 perhitungan dalam satu langkah. Ini adalah jumlah yang mengagumkan - 2 ^ 500 adalah atom jauh lebih dari yang ada di alam semesta (ini pemrosesan paralel benar - komputer klasik saat ini, bahkan disebut prosesor paralel, masih hanya benar-benar melakukan satu hal pada suatu waktu: hanya ada dua atau lebih dari mereka melakukannya). Tapi bagaimana partikel-partikel ini akan berinteraksi satu sama lain? Mereka akan melakukannya melalui belitan kuantum.

Quantum Gates

Pada saat ini, model sirkuit komputer adalah abstraksi paling berguna dari proses komputasi dan secara luas digunakan dalam industri komputer desain dan konstruksi hardware komputasi praktis. Dalam model sirkuit, ilmuwan komputer menganggap perhitungan apapun setara dengan aksi dari sirkuit yang dibangun dari beberapa jenis gerbang logika Boolean bekerja pada beberapa biner (yaitu, bit string) masukan. Setiap gerbang logika mengubah bit masukan ke dalam satu atau lebih bit keluaran dalam beberapa mode deterministik menurut definisi dari gerbang. dengan menyusun gerbang dalam grafik sedemikian rupa sehingga output dari gerbang awal akan menjadi input gerbang kemudian, ilmuwan komputer dapat membuktikan bahwa setiap perhitungan layak dapat dilakukan.

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.

Sekarang kita telah 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.


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 terhaadap 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.

Kamis, 14 April 2016

Arsitektur Komputer



Pengertian Arsitektur Komputer

Arsitekturkomputer adalah konsep perencanaan dalam sebuah sistem komputer. Di dalam arsitektur komputer juga terdapat struktur pengoprasian dasar dari perangkat komputer itu sendiri. Bagaimana nantinya komputer yang akan dirancang dapat beroperasi secara semestinya. Jadi, arsitektur komputer merupakan bahan dasar untuk merancang komputer. Selebihnya, ada beberapa macam dalam arsitektur komputer.
Arsitektur komputer tidak hanya mempelajari tata letak perangkat komputer, namun juga mencakup atribut-atribut dalam sebuah perangkat komputer. Beberapa atribut komputer yang dirancang dalam arsitektur komputer antara lain: set intruksi, jumlah bit yang dipakai untuk mengoperasikan beberapa jenis data, jenis aritmetika yang dipakai, mekanisme I/O, teknik pengalamatan dan masih banyak lagi.

Kategori dalam arsitektur komputer terbagi menjadi 3 bagian:
·         set intruksi (ISA)
·         arsitektur mikro oleh ISA
·         serta sistem desain untuk seluruh komponen dalam sebuah perangkat komputer.

Selain itu, bagian pokok dari sebuah arsitektur komputer terbagi menjadi 2 bagian, yaitu:
·         Arsitektur Set Instruktur (Instructure Set Architecture) – Menentukan pemrograman komputer yang berkaitan dengan perangkat lunak komputer.
·         ArsitekturSistem Perangkat Keras (Hardware System Architecture) – Menentukan beberapa perangkat komputer yang berbasiskan hardware (perangkat keras).

Inilah cara melakukan perubahan pada arsitektur komputer
Cara-cara untuk melakukan perubahan pada arsitektur, yaitu seperti:
·         Membangun array prosesor.
·         Menerapkan proses pipelining.
·         Membangun komputer multiprosesor.
·         Membangun komputer dengan arsitektur yang lain.

Berikut ini mengukur kualitas dari arsitektur komputer
Terdapat beberapa atribut yang dipakai untuk mengukur kualitas komputer, diantaranya :
·         Generalitas.
·         Applicability (Daya Terap).
·         Efesiensi.
·         Kemudahan Penggunaan atau pemakaian.
·         Daya Tempa (Maleability).
·         Dan daya Kembang (Expandibility).

Dan inilah faktor  yang berpengaruh pada keberhasilan Arsitektur Komputer
Terdapat faator-faktor yang dapat berpengaruh pada keberhasilan arsitektur komputer, 3 (tiga) diantaranya adalah:
1. Yang pertama manfaat Arsitektural diantaranya yaitu:
·         Aplicability.
·         Maleability.
·         Expandibility.
·         Comptible.
2. Kinerja Sistem.
Yaitu untuk mengukur kinerja dari sistem, ada serangkaian program yang standard yang dijalankan yang dapat di sebut Benchmark pada komputer yang akan diuji ukuran kinerja CPU:
·         MIPS (Million Instruction PerSecond)
·         MFLOP (Million Floating Point PerSecond)
·         VUP (VAX Unit of Performance)
Ukuran Kinerja I/O sistem:
·         Sistem Operasi Bandwith
·         Operasi I/O Perdetik
Ukuran Kinerja Memori:
·         Memoy Bandwith.
·         Waktu Akses Memori.
·         Ukuran Memori.
3. Biaya Sistem, Biaya dapat diukur dalam banyak cara diantaranya, yaitu :
·         Reliabilitas.
·         Kemudahan Perbaikan.
·         Konsumsi daya.
·         Berat.
·         Kekebalan.
·         Interface Sistem Software.

Arsitektur komputer merupakan suatu hal yang sangatlah penting karena dapat memberikan berbagai atribut-atribut pada sistem komputer, hal tersebuti tentunya sangat dibutuhkan bagi perancang ataupun user software sistem dalam mengembangkan suatu program.