Pages

Rabu, 10 Juli 2019

Komputasi Paralel

Konsep Paralel

Paralel Processing adalah kemampuan menjalankan tugas atau aplikasi lebih dari satu aplikasi dan dijalankan secara simultan atau bersamaan pada sebuah komputer. Secara umum, Paralel Processing adalah sebuah teknik dimana sebuah masalah dibagi dalam beberapa masalah kecil untuk mempercepat proses penyelesaian masalah.

Hukum Paralel Processing

  • Hukum Amdahl

    “Peningkatan kecepatan secara paralel akan menjadi linear, melipatgandakan kemampuan proses sebuah komputer dan mengurangi separuh dari waktu proses yang diperlukan untuk menyelesaikan sebuah masalah.”
  • Hukum Gustafson

    “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

Komputasi Parallel

Komputasi Parallel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan.
Komputasi Paralel membutuhkan :
  • Algoritma
  • Bahasa Pemograman
  • Compiler
Contoh Komputasi Paralel:
Bagan Komputasi  Paralel Terdistribusi
Pada gambar diatas terdapat sebuah masalah, dimana masalah tersebut dibagi menjadi beberapa bagian lalu bagian dari masalah tersebut dibagikan ke-tiga CPU untuk diselesaikan secara bersamaan.

Distributed Processing

Distributed Processing atau Distributed Computing System adalah sekumpulan peralatan pemrosesan yang saling terhubung melalui jaringan komputer dan saling bekerjasama untuk mengerjakan tugas-tugas tertentu. Yang dimaksud dengan peralatan pemrosesan dataadalah peralatan komputasi yang dapat mengeksekusi sendiri sebuah program.
Sekumpulan peralatan yang saling terhubung akan mendistribusikan berbagai macam hal, dianataranya adalah:
  • Processing Logic / Pemrosesan secara logis
  • Fungsi. Beberapa fungsi sistem komputer dapat didelegasikan ke beberapa hardware atau software
  • Data
  • Kontrol

Kriteria Distributed Processing

Pemrosesan terdistribusi (Distributed Processing) dapat dikelompokkan berdasarkan beberapa kriteria, yaitu:
  • Degree of Computing / tingkat hubungan : Tinggi atau rendah ? Jumlah data yang saling digunakan dibandingkan dengan jumlah pemrosesan lokal
  • Struktur antar hubungan : kuat atau lemah ? Jika komponen di Share dikatakan kuat ?
  • Kesalingtergantungan komponen-komponen : Kuat atau lemah dalam mengekseskusi proses.
  • Keselarasan antar komponen : selaras atau tidak selaras ?

Architectural Paralel Computer

arsitektur komputer Paralel
Dalam taksonomi arsitektur paralel ada dua keluarga arsitektur paralel yang banyak diterapkan adalah
  • Single Instruction Single Data (SISD)

    SISD
Single Instruction Single Data (SISD) ini memiliki hanya satu instruksi yang dieksekusi secara serial. Komputer ini adalah tipe komputer konvensional. Menururut mereka tipe komputer ini tidak ada dalam praktik komputer paralel karena bahkan mainframe pun tidak lagi menggunakan satu processor. Klasifikasi ini sekedar untuk melengkapi definisi komputer paralel. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVACI, IBM 360, CDC 7600, Cray 1 dan PDP 1.
  • Single Instruction Multiple Data (SIMD)

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).
  • Multiple Instruction Multiple Data (MIMD)

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

Thread Programming

Threading / Thread adalah sebuah alur kontrol dari sebuah proses. Konsep threading adalah menjalankan 2 proses ( proses yang sama atau proses yang berbeda ) dalam satu waktu.
Contoh:
Sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network.
Threading dibagi menjadi 2, yaitu :
  • Static Threading
Teknik ini biasa digunakan untuk komputer dengan chip multi processors 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.
  • Dynamic Multithreading
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).

Pengantar Programming GPU-CUDA

Graphic Processing Unit (GPU)

GPU (Graphic Processing Unit) sendiri merupakan sebuah alat/hardware, yang berfungsi sebagai render grafis terdedikasi dalam kesatuan sistem hardware PC atau Notebook. GPU bisa berada pada Video Card khusus (VGA Card) atau terintegrasi dalam Motherboard berupa Integrated GPU. GPU berfungsi untuk mengolah dan memanipulasi grafis pada CPU (Central Processing Unit), untuk nantinya ditampilkan dalam bentuk Visual Grafis pada Monitor (output).

CUDA (Compute Unified Device Architecture)

CUDA (Compute Unified Device Architecture) adalah arsitektur komputasi paralel yang dikembangkan oleh NVIDIA. CUDA adalah mesin komputasi dalam pemrosesan grafis NVIDIA unit (GPU) yang dapat diakses oleh pengembang perangkat lunak melalui varian dari bahasa pemrograman standar industri. CUDA merupakan kumpulan program-program yang menerjemahkan teks dalam bentuk bahasa komputer (computer language) berupa source language/source code, ke dalam bentuk bahasa komputer yang lain (target language/object code). Arsitektur CUDA memungkinkan GPU (yang telah support CUDA) menjadi arsitektur terbuka seperti layaknya CPU (Central Processing Unit atau Processor). Hanya, tidak seperti CPU, GPU memiliki arsitektur banyak-inti yang pararel. Setiap inti memiliki kemampuan untuk menjalankan ribuan “thread” secara simultan. Jika aplikasi yang dijalankan sesuai dengan arsitektur ini, GPU dapat menyediakan keuntungan yang lebih besar dari segi performa proses aplikasi tersebut.

Komponen Pendukung CUDA

Secara umum, komponen-komponen pendukung CUDA adalah:
  • Aplikasi, adalah perangkat lunak yang dibuat oleh penguna, memakai bahasa pemrograman khusus (kembangan C).
  • Pustaka perangkat lunak, yang menyediakan layanan dasar untuk program aplikasi mengakses CPU maupun GPU.
  • Perangkat keras khusus, yaitu GPU yang menyediakan mesin paralel.
  • Perangkat keras CPU, sebagai mesin sekuensial.

Kelebihan CUDA:

  • CUDA menggunakan bahasa “C” standar, dengan beberapa ekstensi yang simpel.
  • Shared memory – CUDA menyingkapkan wilayah memory yang cepat (berukuran 16 KB) yang dapat di bagi diantara thread-thread yang ada. Hal ini dapat digunakan sebagai user-managed-cache, sehingga mengaktifkan bandwitdth yang lebih besar (dari besaran bandwidth yang dimungkinkan), menggunakan texture loops.
  • Proses download dan readbacks yang lebih cepat, dari dan ke GPU.
  • Support penuh terhadap operasi integer dan bitwise.

Kelemahan CUDA:

  • CUDA tidak support texture rendering,
  • Bus Bandwidth dan latensi antara CPU dengan GPU bisa jadi bottleneck (tidak imbang),
  • CUDA hanya terdapat pada GPU Nvidi

#Agung Budoyo
#Komputasi Paralel
#4IA19

Jumat, 24 Mei 2019

Quantum Computing

#AgungBudoyo
#4IA19
#TeoriQuantumComputing
#PengantarKomputasiModern

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 itu sendiri.

Sejarah singkat Quantum Computing

  • Pada tahun 1970-an pencetusan atau ide tentang komputer kuantum pertama kali muncul oleh para fisikawan dan ilmuwan komputer, seperti 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).
  • Feynman dari California Institute of Technology yang pertama kali mengajukan dan menunjukkan model bahwa sebuah sistem kuantum dapat digunakan untuk melakukan komputasi. Feynman juga menunjukkan bagaimana sistem tersebut dapat menjadi simulator bagi fisika kuantum. 
  • Pada tahun 1985, Deutsch menyadari esensi dari komputasi oleh sebuah komputer kuantum dan menunjukkan bahwa semua proses fisika, secara prinsipil, dapat dimodelkan melalui komputer kuantum. Dengan demikian, komputer kuantum memiliki kemampuan yang melebihi komputer klasik.
  • Pada tahun 1995, Peter Shor merumuskan sebuah algoritma yang memungkinkan penggunaan komputer kuantum untuk memecahkan masalah faktorisasi dalam teori bilangan.
  • Sampai saat ini, riset dan eksperimen pada bidang komputer kuantum masih terus dilakukan di seluruh dunia. Berbagai metode dikembangkan untuk memungkinkan terwujudnya sebuah komputer yang memilki kemampuan yang luar biasa ini. Sejauh ini, sebuah komputer kuantum yang telah dibangun hanya dapat mencapai kemampuan untuk memfaktorkan dua digit bilangan. Komputer kuantum ini dibangun pada tahun 1998 di Los Alamos, Amerika Serikat, menggunakan NMR (Nuclear Magnetic Resonance).

Keunggulan Quantum Computing

     Komputer kuantum memanfaatkan sebuah fenomena yang dinamakan super posisi yaitu dalam mekanika kuantum, suatu partikel bias berada dalam dua keadaan sekaligus. Komputer kuantum juga menggunakan Qubits yaitu kemampuan untuk berada di berbagai macam keadaan. Komputer kuantum memiliki potensi untuk melaksanakan berbagai perhitungan secara simultan atau lebih rinci sehingga jauh lebih cepat dari komputer digital. Jadi intinya komputer kuantum lebihbaik kemampuannya dan lebih cepat dibandingkan dengan komputer digital.


Implementasi Quantum Computing

     Pada 19 Nov 2013 Lockheed Martin, NASA dan Google semua memiliki satu misi yang sama yaitu mereka semua membuat komputer kuantum sendiri. Komputer kuantum ini adalah superkonduktor chip yang dirancang oleh sistem D – gelombang dan yang dibuat di NASA Jet Propulsion Laboratories. NASA dan Google berbagi sebuah komputer kuantum untuk digunakan di Quantum Artificial Intelligence Lab menggunakan 512 qubit D -Wave Two yang akan digunakan untuk penelitian pembelajaran mesin yang membantu dalam menggunakan jaringan syaraf tiruan untuk mencari set data astronomi planet ekstrasurya dan untuk meningkatkan efisiensi searchs internet dengan menggunakan AI metaheuristik di search engine heuristical. A.I. seperti metaheuristik dapat menyerupai masalah optimisasi global mirip dengan masalah klasik seperti pedagang keliling, koloni semut atau optimasi swarm, yang dapat menavigasi melalui database seperti labirin. Menggunakan partikel terjerat sebagai qubit, algoritma ini bisa dinavigasi jauh lebih cepat daripada komputer konvensional dan dengan lebih banyak variabel. Penggunaan metaheuristik canggih pada fungsi heuristical lebih rendah dapat melihat simulasi komputer yang dapat memilih sub rutinitas tertentu pada komputer sendiri untuk memecahkan masalah dengan cara yang benar-benar cerdas . Dengan cara ini mesin akan jauh lebih mudah beradaptasi terhadap perubahan data indrawi dan akan mampu berfungsi dengan jauh lebih otomatisasi daripada yang mungkin dengan komputer normal.


Sumber:
Avievarifian Quantum Computing https://avievarifian.wordpress.com/2016/05/04/pengantar-quantum-computation/ diakses pada 24-05-2019
Alkhawarizmi Quantum Computing https://mamz.weebly.com/quantum-computation.html diakses pada 24-05-2019



Jumat, 12 April 2019

CARA MUDAH STREAMING VIDIO MENGGUNAKAN VLC MEDIA PLAYER

Streaming Vidio Menggunakan VLC


Hallo semua pada pembahasan kali ini saya akan membahas mengenai bagaimana cara melakukan Streaming Vidio dengan media player VLC dari komputer/ laptop kita, ok langsung saja kita bahas satu persatu bagaimana caranya.

Langkah Pertama hal yang kita lakukan adalah mempersiapkan bahan yang akan di pakai untuk streaming yaitu sebagai berikut:
1. satu buah Komputer / Laptop
2. 1 buah smartphone Android yang sudah di instal VLC Media Player
3. 1 buah smartphone sebagai hostpot
4. 1 buah vidio yang akan di siarkan streaming.

selanjutnya jika semua bahan sudah tersedia maka langsung saja kita eksekusi

1. Langkah pertama yang  kita lakukan adalah disable Firewall. Dengan cara masuk control panel > Windows Defender Firewall > Turn Windows Defender Firewall on or off.
2. Selanjutnya Buka VLC Media Player, jika belum terinstal maka install terlebih dahulu  VLC Media Player di link berikut ini https://www.videolan.org/vlc/download-windows.id.html
3. Lalu siapkan video yang akan digunakan untuk di siarkan streaming, vidio yang akan di siarkan bebas sesuai keinginan kalian.
4. Ok selanjutnya kita Kembali pada VLC dan masuk ke bagian Menu dan pilih  > Stream (Ctrl + S).
5.      Klik + Add... pada Form Stream tadi.

6.      Pilih video yang sudah disiapkan tadi lalu open vidio yang di pilih .

7.      Setelah itu pilih Stream seperti pada gambar di bawah.

8.      Lalu cek pada bagian Source jika sudah sesuai dengan direktori video tersebut lalu next.
9.      Terdapat tulisan New Destination dan centang bagian Display locally , selanjutnya pilih pada bagian HTTP dan klik add.
10.  Lalu cek Port nya awal dibuka port 8080 jadi pilih saja 8080 dan kenapa saya ganti menjadi 8082 karna nantinya di step akhir-akhir terdapat eror jika port sudah sesuai maka klik next.
11.  Pada form ini centang bagian Activate Transcoding lalu kita klik next.
12.  Centang kan Stream All Elementary Streams > Stream.
13.  Pada form ini merupakan bahwa streaming sudah dimulai, lalu akan di cek pada hp.

14.  Selanjutnya hal yang perlu kita lakukan adalah mengecek IP dari Komputer atau Laptop yang kita gunakan untuk Streaming dengan cara pergi ke CMD lalu ketikan perintah ipconfig seperti gambar di bawah ini .
15.  Selanjutnya sebelum kita cek melalui smartphon kita terlebih dahulu kita tes pada browser kita apakah vidio bisa di jalankan atau tidak caranya kita masukkan HTTP://109.168.100.5:8082/. angka 109.168.100.5 adalah nomer ip dari komputer atau laptop kita, sedangkan angka 8082 adalah port yang sudah di atur pada VLC, nah jika sudah maka hal yang terjadi adalah vidio yang kita taruh tadi akan terdownload otomatis oleh browser yang kita gunakan .
16.  Selanjutnya kita melakukan konfigurasi di smartphon yang sudah di install aplikasi VLC Media Player, jika belum terinstall bisa di install di play store .

17.  Setelah VLC di install maka langkah selanjutnya kita masuk ke menu yang ada di pojok kiri atas dan pilih Streams .


18.   Jika sudah maka kita masukan ip addres yang menjadi server streaming beserta portnya yaitu HTTP://192.168.100.5:8082/. tunggu sebentar dan Streaming pun dapat berjalan .

Minggu, 24 Maret 2019

TEORI KOMPUTASI

#AgungBudoyo
#4IA19
#TeoriKomputasi
#PengantarKomputasiModern

Teori Komputasi

Teori komputasi adalah cabang dari ilmu komputer dan matematika yang membahas apakah dan bagaimanakah suatu masalah dapat dipecahkan pada model komputasi, dengan menggunakan algoritma.

Pengertian Komputasi

Komputasi bisa diartikan sebagai cara untuk memecahkan suatu permasalahan dari data yang di input dengan menggunakan suatu algoritma. Hal ini ialah apa yang disebut dengan Teori Komputasi, sub-bidang dari ilmu komputer dan matematika. Sebelum adanya komputer, perhitungan dan komputasi umumnya dilakukan dengan menggunakan pena dan kertas, atau kapur dan batu tulis terkadang dengan bantuan suatu tabel.
Secara umum IIlmu Komputasi adalah bidang ilmu yang mempunyai perhatian pada penyusunan model matematika dan teknik penyelesaian numerik serta penggunaan komputer untuk menganalisis dan memecahkan masalah-masalah ilmu (sains).
Bidang ini berbeda dengan ilmu komputer (computer science), yang mengkaji komputasi, komputer dan pemrosesan informasi. Bidang ini juga berbeda dengan teori dan percobaan sebagai bentuk tradisional dari ilmu dan kerja keilmuan.

Implementasi Komputasi

Adapun implementasi pada komputasi yang digunakan pada bidang ilmu pengetahun yaitu pada bidang fisika, kimia, biologi, ekonomi, sosiologi dan lain-lain. Kita dapat melihat pada pembahasan dibawah ini.
  • Computational Physics (Fisika)
Implementasi pada ilmu pengetahun fisika dimana menggunakan algoritma numerik untuk memecahkan permasalahan teori kuantitatif fisika yang sudah ada.
  • Computational Economics (Ekonomi)
Implementasi pada ilmu pengetahuan ekonomi adalah mempelajari agent-based computational modeling, computational econometrics dan statistika, komputasi keuangan, computational modeling of dynamic macroeconomic systems, pemrograman yang didesain khusus untuk komputasi ekonomi, dan pengembangan alat bantu dalam pendidikan komputasi ekonomi.
  • Computational Chemistry (Kimia)
Implementasi dari bidang ilmu pengetahuan adalah memaparkan dari dari teori kimia digabungkan dengan program komputer yang handal untuk menghitung struktur dan sifat molekul.
  • Computational Matematics (Matematika)
Penerapan teknik-teknik komputasi matematika meliputi metode numerik, scientifik computing, metode ielemen hingga metode beda, scientific data mining, scientific process control dan metode terkait lainnya untuk menyelesaikan masalah nyata berskala besar. 
  • Bioinformatics (Biologi)
Merupakan sebuah aplikasi dari teknologi informasi dan ilmu komputer terhadap bidang biologi molekuler.
  • Computational Geology (Geologi)
Teori komputasi biasanya digunakan untuk pertambangan, sebuah sistem komputer digunakan untuk menganalisa bahan-bahan mineral dan barang tambang yang terdapat di dalam tanah. 
  • Computational Sociology (Sosiologil)
Sebuah cabang ilmu sosiologi yang menggunakan metode komputasi intensif untuk menganalisa fenomena sosial.
  • Cognitive Science (Ilmu Kognitif)
Sebuah cabang ilmu menengah yang mempelajari bagaimana informasi dibentuk dan digambarkan oleh otak.
 
 
Referensi: Albert blog . Teori Komputas . http://ciualbert.blogspot.com/2016/04/teori-komputasi.html  diakses tanggal 23/03/2019