Rabu, 10 Juli 2019

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.

Komputasi paralel biasanya diperlukan pada saat terjadinya pengolahan data dalam jumlah besar ( di industri keuangan, bioinformatika, dll ) atau dalam memenuhi proses komputasi yang sangat banyak. Selanjutnya, komputasi paralel ini juga dapat ditemui dalam kasus kalkulasi numerik dalam penyelesaian persamaan matematis di bidang fisika ( fisika komputasi ), kimia ( kimia komputasi ), dll. Dalam menyelesaikan suatu masalah, komputasi paralel memerlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel.
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 daklam satu waktu.

Distributed Processing

Komputasi terdistribusi adalah suatu sistem pada jaringan komputer yang dihubungkan dengan cara tertentu sehingga tampak seperti satu komputer bagi pemakai individual. Komputasi terdistribusi menggunakan sumber data komputer yang ada dan melibatkan banyak komputer yang terdistribusi dan terpisah secara geografis yang bertujuan untuk memecahkan berbagai macam persoalan komputasi dalam skala besar.
Komputasi terdistribusi mentransformasikan banyak komputer dalam satu jaringan yang dapat digunakan secara efektif seperti halnya sebuah komputer saja, sehingga memaksimalkan penggunaan sumber daya komputasi. Hal ini berarti bahwa setiap klien dalam jaringan dapat mengakses setiap file data yang terdapat dalam jaringan, menjalankan program komputer yang ada dalam jaringan (baik yang ada dalam server maupun yang ada dalam klien).
Sistem pengolahan data terdistribusi dapat diakses oleh pengguna dengan menggunakan dua aplikasi yaitu berupa aplikasi lokal dan aplikasi global, sehingga distributed data processing system memiliki karakteristik yaitu :
·         Kumpulan dari data logik yang digunakan bersama-sama.
·         Data di bagi menjadi beberapa fragment.
·         Fragment mungkin mempunyai copy ( replika ).
·         Fragment / replika nya di alokasikan pada yang digunakan.
·         Setiap site berhubungan dengan jaringan komunikasi.
·         Data pada masing-masing site dibawah pengawasan DBMS.
·         DBMS pada masing-masing site dapat mengatasi aplikasi lokal, secara otonomi.
·         Masing-masing DBMS berpastisipasi paling tidak satu global aplikasi

Architectural Parallel Computer

SISD
Yang merupakan singkatan dari 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. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1. 

SIMD
Yang merupakan singkatan dari Single Instruction, Multiple Data. SIMD 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
Yang merupakan singkatan dari Multiple Instruction, Single Data. MISD 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
Yang merupakan singkatan dari Multiple Instruction, Multiple Data. MIMD 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. Salah satu komputer yang menggunakan model MIMD adalah IBM POWER5.

Pengantar Thread Programming



Dalam pemrograman komputer, sebuah thread adalah informasi terkait dengan penggunaan sebuah program tunggal yang dapat menangani beberapa pengguna secara bersamaan. Dari program point-of-view, sebuah thread adalah informasi yang dibutuhkan untuk melayani satu pengguna individu atau permintaan layanan tertentu. Jika beberapa pengguna menggunakan program atau permintaan bersamaan dari program lain yang sedang terjadi, thread yang dibuat dan dipelihara untuk masing-masing proses. Thread memungkinkan program untuk mengetahui user sedang masuk didalam program secara bergantian dan akan kembali masuk atas nama pengguna yang berbeda. Salah satu informasi thread disimpan dengan cara menyimpannya di daerah data khusus dan menempatkan alamat dari daerah data dalam register. Sistem operasi selalu menyimpan isi register saat program interrupted dan restores ketika memberikan program kontrol lagi.


Sebagian besar komputer hanya dapat mengeksekusi satu instruksi program pada satu waktu, tetapi karena mereka beroperasi begitu cepat, mereka muncul untuk menjalankan berbagai program dan melayani banyak pengguna secara bersamaan. Sistem operasi komputer memberikan setiap program “giliran” pada prosesnya, maka itu memerlukan untuk menunggu sementara program lain mendapat giliran. Masing-masing program dipandang oleh sistem operasi sebagai suatu tugas dimana sumber daya tertentu diidentifikasi dan terus berlangsung. Sistem operasi mengelola setiap program aplikasi dalam sistem PC (spreadsheet, pengolah kata, browser Web) sebagai tugas terpisah dan memungkinkan melihat dan mengontrol item pada daftar tugas. Jika program memulai permintaan I / O, seperti membaca file atau menulis ke printer, itu menciptakan thread. Data disimpan sebagai bagian dari thread yang memungkinkan program yang akan masuk kembali di tempat yang tepat pada saat operasi I / O selesai. Sementara itu, penggunaan bersamaan dari program diselenggarakan pada thread lainnya. Sebagian besar sistem operasi saat ini menyediakan dukungan untuk kedua multitasking dan multithreading. Mereka juga memungkinkan multithreading dalam proses program agar sistem tersebut disimpan dan  menciptakan proses baru untuk setiap thread.


Static Threading


Teknik ini biasa digunakan untuk komputer dengan chip multiprocessors dan jenis komputer shared-memory lainnya. Teknik ini memungkinkan thread berbagi memori yang tersedia, menggunakan program counter dan mengeksekusi program secara independen. Sistem operasi menempatkan satu thread pada prosesor dan menukarnya dengan thread lain yang hendak menggunakan prosesor itu.
Mekanisme ini terhitung lambat, karenanya disebut dengan static. Selain itu teknik ini tidak mudah diterapkan dan rentan kesalahan. Alasannya, pembagian pekerjaan yang dinamis di antara thread-thread menyebabkan load balancing-nya cukup rumit. Untuk memudahkannya programmer harus menggunakan protocol komunikasi yang kompleks untuk menerapkan scheduler load balancing. Kondisi ini mendorong pemunculan concurrency platforms yang menyediakan layer untuk mengkoordinasi, menjadwalkan, dan mengelola sumberdaya komputasi paralel.
Sebagian platform dibangun sebagai runtime libraries atau sebuah bahasa pemrograman paralel lengkap dengan compiler dan pendukung runtime-nya.


Dynamic Multithreading


Teknik ini merupakan pengembangan dari teknik sebelumnya yang bertujuan untuk kemudahan karena dengannya programmer tidak harus pusing dengan protokol komunikasi, load balancing, dan kerumitan lain yang ada pada static threading. Concurrency platform ini menyediakan scheduler yang melakukan load balacing secara otomatis. Walaupun platformnya masih dalam pengembangan namun secara umum mendukung dua fitur : nested parallelism dan parallel loops. Nested parallelism memungkinkan sebuah subroutine di-spawned (ditelurkan dalam jumlah banyak seperti telur katak) sehingga program utama tetap berjalan sementara subroutine menghitung hasilnya. Sedangkan parallel loops seperti halnya fungsi for namun memungkinkan iterasi loop dilakukan secara bersamaan.


Share:

Jumat, 24 Mei 2019

Pengantar Quantum Computation


A. Pendahuluan 

Quantum Computation atau komputer kuantum adalah sebuah alat untuk perhitungan, dimana perhitungan ini menggunakan langsung fenomena kuantum mekanik dan perhitungan ini seperti superposisi dan belitan untuk melakukan operasi pada data. Kuantum komputer berbeda dari komputer tradisional yang didasarkan pada transistor. Perbedaan komputer kuantum dengan komputer klasik adalah pada sebuah komputer klasik memiliki memori terdiri dari bit, dimana tiap bitmewakili salah satu atau nol. Sedangkan sebuah komputer kuantum mempertahankan urutan qubit.Sebuah qubit tunggal dapat mewakili satu, nol, atau, krusial. 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.

Ide mengenai komputer kuantum ini berasal dari beberapa fisikawan antara lain Charles H. Bennett dari IBM, Paul A. Benioff dari Argonne National Laboratory, Illinois, David Deutsch dari University of Oxford, dan Richard P. Feynman dari California Institute of Technology (Caltech). Pada awalnya Feynman mengemukakan idenya mengenai sistem kuantum yang juga dapat melakukan proses penghitungan. Fenyman juga mengemukakan bahwa sistem ini bisa menjadi simulator bagi percobaan fisika kuantum. Selanjutnya para ilmuwan mulai melakukan riset mengenai sistem kuantum tersebut, mereka juga berusaha untuk menemukan logika yang sesuai dengan sistem tersebut. Sampai saat ini telah dikemukaan dua algoritma baru yang bisa digunakan dalam sistem kuantum yaitu algoritma shor dan algoritma grover.
Walaupun komputer kuantum masih dalam pengembangan, telah dilakukan eksperimen dimana operasi komputasi kuantum dilakukan atas sejumlah kecil Qubit. Riset baik secara teoretis maupun praktik terus berlanjut dalam laju yang cepat, dan banyak pemerintah nasional dan agensi pendanaan militer mendukung riset komputer kuantum untuk pengembangannya baik untuk keperluan rakyat maupun masalah keamanan nasional seperti kriptoanalisis.
Telah dipercaya dengan sangat luas, bahwa apabila komputer kuantum dalam skala besar dapat dibuat, maka komputer tersebut dapat menyelesaikan sejumlah masalah lebih cepat daripada komputer biasa. Komputer kuantum berbeda dengan komputer DNA dan komputer klasik berbasis transistor, walaupun mungkin komputer jenis tersebut menggunakan prinsip kuantum mekanik. Sejumlah arsitektur komputasi seperti komputer optik walaupun menggunakan superposisi klasik dari gelombang elektromagnetik, namun tanpa sejumlah sumber kuantum mekanik yang spesifik sepertiketerkaitan, maka tak dapat berpotensi memiliki kecepatan komputasi sebagaimana yang dimiliki oleh komputer kuantum.


Algoritma pada Quantum Computing :

 Para ilmuwan mulai melakukan riset mengenai sistem kuantum tersebut, mereka juga berusaha untuk menemukan logika yang sesuai dengan sistem tersebut. Sampai saat ini telah dikemukaan dua algoritma baru yang bisa digunakan dalam sistem kuantum yaitu algoritma shor dan algoritma grover.

·         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 Grover
Algoritma Grover adalah sebuah algoritma kuantum yang menawarkan percepatan kuadrat dibandingkan pencarian linear klasik untuk list tak terurut. Algoritma Grover menggambarkan bahwa dengan menggunakan pencarian model kuantum, pencarian dapat dilakukan lebih cepat dari model komputasi klasik. Dari banyaknya algoritma kuantum, algoritma grover akan memberikan jawaban yang benar dengan probabilitas yang tinggi. Kemungkinan kegagalan dapat dikurangi dengan mengulangi algoritma. Algoritma Grover juga dapat digunakan untuk memperkirakan rata-rata dan mencari median dari serangkaian angka, dan untuk memecahkan masalah Collision.


IMPLEMENTASI QUANTUM COMPUTING

Perusahaan D Wave
D-Wave Systems, Inc adalah perusahaan quantum computing, yang berbasis di Burnaby, British Columbia. Pada tanggal 11 Mei 2011, D-Wave Sistem mengumumkan D-Wave One, berlabel "komputer pertama komersial di dunia yang tersedia quantum computing" yang beroperasi pada 128 qubit chip set menggunakan anil kuantum untuk memecahkan masalah optimasi.
Contoh nya :
-Optimalisasi Radiotherapy
-Deteksi Objek
-Kompresi Video
-dll


Share:

Jumat, 12 April 2019

Tutorial Streaming Menggunakan VLC

Apa itu VLC Media Player?
VLC Media Player adalah aplikasi pemutar multimedia segala platform yang bisa kamu dapatkan secara gratis dan bersifat open source. Aplikasi yang satu ini sangat portable dan mendukung berbeagai ekstensi audio dan video, seperti MPEG-1, MPEG-2,MPEG-4,DivX, mp3, ogg, dll.

Cara Instal VLC

Tampilan awal memilih Bahasa yang akan digunakan di sini saya menggunakan Bahasa inggris, jika sudah tekan OK.


Pada bagian ini tinggal Next saja




Disini Penjelesan Licencse klik Next untuk ke halaman selanjutnya


Pada bagian Pemilihan Komponen. Anda pilih yang dibutuhkan sesuai kebutuhan, jika sudah klik Next.

  


Kemudian Pada bagian ini merupakan tempat Lokasi penginstalan VLC yang akan di simpan, jika sudah klik Next



Tuggu Loading penginstalan VLC



Complet sudah penginstalan VLC, centang Run jika ingin langsung menggunakan. Untuk keluar tekan Finish.

 

Selanjutnya adalah cara melakukan Stream menggunakan VLC, caranya adalah sebagai berikut :


Step Ke-1
Pada perangkat Handpohone dan PC kita  harus mempunyai software VLC media playernya anda dapat mendownload nya secara gratis di Play Store atau dapat mencari di Google.

StepKe-2
Instal VLC seperti contoh di atas lalu buka dan akan tampil seperti Gambar di bawah ini
 


Step Ke-3
Kemudian pada menu bar pilih Media
 

Kemudian tampil options seperti gambar di bawah ini
 

Pilih Stream berlogo signal



Setelah klik Stream Outputnya seperti ini lalu Pihih Tambah +.


Step ke-4
Masukkan Video yang akan di live stream dan file tentunya harus bias di gunakan di VLC. Lalu Klik Open.
 
 


Kemudian Klik Stream.


Step Ke-5
Pada bagian setup lansung saja klik maju.



Kemudian pada pemilihan destinasi pilih “HTTP”. Kemduain klik maju



Setelah itu muncul tampilan seperti ini pilih port 8080. Jika sudah klik Maju.

  
Kemudian pada bagian pemilihan transkode pilih sesuau yang di inginkan. Jika sudah klik maju. 


Pada Option Setup centang seperti gambar di bawah ini lalu klik Stream



menghubungkan VLC yang berisikan video dengan Browser untuk melakukan Streaming. Untuk melakukan streaming tersebut masukan IP Laptop kalian kedalam Browser seperti Http://192.168.20.45/8080/



Step Ke-6
Untuk melihat IP Buka CMD Laptop atau PC kalian dengan memasukkan ipconfig pada CMD


Step ke-7
Masukkan IP addres kalian pada browser, maka anda dapat melihat video streaming atau menyimpan video tersebut


Step ke-8
Pada Handphone Download VLC lalu instal.



Step ke-9
Pilih Stream pada pilihan menu yang terdapat di VLC Android






Step ke-10
Masukan IP address kalian untuk melihat atau menyimpan video yang telah anda masukan pada Stream di Browser, selanjutnya anda tinggal menikmati Video tersebut.




Share:

greenday

BTemplates.com