Friday, 2 June 2017

Parallel Computing

Tugas 5 Pengantar Komputasi Modern


Pengertian Parallel Computation

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 dalam satu waktu. Berikut Ini adalah gambar perbedaan Sequential proses dengan parallel proses pada CPU.


Pengertian 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. Didistribusikan pengolahan paralel menggunakan pemrosesan paralel pada beberapa mesin. Salah satu contoh dari hal ini adalah bagaimana beberapa komunitas memungkinkan pengguna untuk mendaftar dan mendedikasikan komputer mereka sendiri untuk memproses beberapa data set yang diberikan kepada mereka oleh server. Ketika ribuan pengguna mendaftar untuk ini, banyak data dapat diproses dalam jumlah yang sangat singkat. 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.


Pengertian Archtectural Parallel Computing

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.

Referensi :

Monday, 15 May 2017

Konfigurasi DNS Server Menggunakan Linux BlankOn

Pada postingan kali ini saya akan memberikan beberapa tutorial konfigurasi DNS server pada linux BlankOn. Berikut tutorialnya, selamat membaca.

1. INSTALL BIND sudo su apt-get install bind9 yum install bind9

2. SETTING IP  
·        - pico /etc/network/interfaces
·         -rubah ip                        
auto eth0                        
iface eth0 inet static                        
address 192.168.69.1                        
netmask 255.255.255.0                        
gateway 192.168.69.1
·        - restart servicenya  
·        - /etc/init.d/networking restart
·         -/etc/init.d/networking reload
·        - ifconfig
·         -ping 192.168.69.1

3.DNS SERVER  
·        - pico /etc/resolv.conf                        
domain dani.org                        
nameserver 192.168.69.1                        
search www.dani.org  
·        - cd /etc/bind  
·        - pico named.conf.local                        
zone "dani.org"{                        
type master;                        
file "/etc/bind/db.dani.org";                        
};                                                
zone "69.168.192.in-addr.arpa"{                        
type master;                        
file "/etc/bind/db.69.168.192";                        
};  
·      -   cp db.local db.dani.org  
·       -  pico db.dani.org                        
$TTL    604800                        
@        IN        SOA    dani.org. root.dani.org. (                                                            
2                      ;Serial                                                            
604800                        ;Resfresh                                                            
86400              ;Retry                                                            
2419200                      ;Expire                                                            
604800 )          ;Negative Cache TTL                         ;                        
@        IN        NS       dani.org.                        
@        IN        A          192.168.69.1                        
@        IN        AAAA  ::1                        
www    IN        CNAME          @  
·         -cp db.127 db.69.168.192  
·         -pico db.69.168.192                        
$TTL    604800                        
@        IN        SOA    dani.org. root.dani.org. (                                                            
2                      ;Serial                                                            
604800                        ;Resfresh                                                            
86400              ;Retry                                                            
2419200                      ;Expire                                                            
604800 )          ;Negative Cache TTL                        
;                        
@        IN        NS       dani.org.                        
1          IN        PTR     dani.org.                        
1          IN        PTR     www.dani.org.
·      -   touch db.dani.org  
·      -   touch db.69.168.192  
·       -  chown bind.bind db.dani.org  
·     -    chown bind.bind db.69.168.192  
·     -    chmod 644 db.dani.org  
·      -   chmod 644 db.69.168.192  
·      -   restart servicenya  
·      -   /etc/init.d/bind9 restart  
·      -   /etc/init.d/bind9 reload  
·      -   nslookup 192.168.69.1  
·      -   nslookup www.dani.org
·      -   ping 192.168.69.1
·      -   ping www.dani.org


Pembuatan DNS Server selesai. 

Wednesday, 3 May 2017

Pemrograman Jaringan : 5.Membangun Aplikasi Client-Server TCP Sederhana

simpleServer.java

simpleClient.java

Logika:

Pada blok program diatas digunakan sebagai fungsi tampilan output pada server untuk membalas pesan yang diberikan oleh client. Jika client memberikan perintah salam, server akan mengeluarkan output “salam juga”. Jika client memberikan perintah selain salam, server akan membalas “Maaf, saya tidak mengerti”. Lalu program akan menutup setelah selesai.

Output:



Sumber






Pemrograman Jaringan : 4.Latihan NsLookup


Logika:


Sebelumnya pada tugas ketiga yaitu IPtoName yg berfungsi menampilkan nama komputer dari IP yang sudah diketahui, maka di tugas keempat ini merupakan kebalikkan dari tugas ketiga, yaitu untuk menampilkan alamat IP dari nama komputer yang sudah diketahui. Pertama, akan dilakukan pengecekkan apakah user saat melakukan running program telah memasukkan nama host atau belum, jika belum akan menampilkan output perintah untuk melakukan eksekusi yang benar yaitu "Pemakaian: java NsLookup ". Apabila nama host yang dimasukkan tersebut valid akan menampilkan output alamat IP dari komputer tersebut dengan perintah getByName(host). Akan tetapi, jika salah memasukkan nama host maka akan menampilkan output "Unknown host.

Output:



Pemrograman Jaringan : 3.Latihan IPtoName


Logika:


Blok syntax program diatas berfungsi untuk menampilkan nama pengguna komputer dari alamat IP yang sudah diketahui. Pertama, akan dilakukan pengecekkan apakah user saat melakukan running program telah memasukkan alamat IP atau belum, jika belum akan menampilkan output perintah pengeksekusian yang benar yaitu "java IPtoName ". Apabila alamat IP yang dimasukkan tersebut valid akan menampilkan output nama dari komputer tersebut dengan perintah getByName(host). Akan tetapi, jika salah memasukkan alamat IP maka akan menampilkan output "invalid IP - malformed IP".

Output:



Pemrograman Jaringan : 2.Latihan getName


Logika:

Sebelumnya pada tugas 1,Latihan getIP yang berfungsi untuk menampilkan alamat IP komputer, di tugas kedua ini digunakan untuk menampilkan nama host dari pemilik IP komputer tersebut. Pertama, program akan mencari alamat host jaringan yang digunakan dengan perintah getLocalHost(). Alamat tadi akan disimpan pada variabel host. Setelah mengetahui host yang digunakan, maka dilakukan pencetakan output nama komputer yang berada pada nilai variabel host tersebut dengan menggunakan fungsi getHostName().





Pemrograman Jaringan : 1.Latihan Get IP


Logika:


Blok program diatas berfungsi untuk menampilkan alamat IP komputer pengguna. Pertama, program akan mencari alamat host jaringan yang digunakan dengan perintah getLocalHost(). Alamat tadi akan disimpan pada variabel host. Setelah mengetahui host yang digunakan, maka dilakukan pendeklarasian variabel array IP bertipe byte untuk menyimpan alamat IP komputer pengguna yang didapat dengan fungsi getAddress().



Monday, 24 April 2017

Quantum Computation

Tugas 4 Pengantar Komputasi Modern



1. Pengertian Komputasi Kuantum

Pengertian sederhana dari computer kuantum adalah jenis chip processor terbaru yang diciptakan berdasar perkembangan mutakhir dari ilmu fisika (dan matematika) quantum. Singkatnya, chip konvensional sekarang ini perlu diganti dengan yang lebih baik.

Komputer kuantum adalah alat hitung yang menggunakan sebuah fenomena mekanika kuantum, misalnya superposisi dan keterkaitan, untuk melakukan operasi data. Dalam komputasi klasik, jumlah data dihitung dengan bit; dalam komputer kuantum, hal ini 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.

2. Sejarah

Ide mengenai komputer kuantum pertama kali muncul pada tahun 1970-an 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).

Di antara para ilmuwan tersebut, Feynmanlah yang pertama kali mengajukan model yang menunjukkan bahwa sebuah sistem kuantum dapat digunakan untuk melakukan komputasi. Lebih jauh, Feynman juga menunjukkan bagaimana sistem tersebut dapat menjadi simulator bagi fisika kuantum. Dengan kata lain, fisikawan dapat melakukan eksperimen fisika kuantum melalui komputer 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.

Setelah Deutsch mengeluarkan tulisannya mengenai komputer kuantum, para ilmuwan mulai melakukan riset di bidang ini. Mereka mulai mencari kemungkinan penggunaan dari sebuah komputer kuantum. Pada tahun 1995, Peter Shor merumuskan sebuah algoritma yang memungkinkan penggunaan komputer kuantum untuk memecahkan masalah faktorisasi dalam teori bilangan.

Saat ini pihak google sudah melakukan percobaan dan pembuatan tentang computer kuantum ini. Google meneraplan Algoritma yang sama telah diterapkan pada produk lab Google yakni Google Image Swirl dimana secara cerdas komputer bisa menentukan dan mengelompokkan mana gambar mobil Jaguar dengan mana gambar binatang Jaguar. Atau misalnya mana kelompok gambar buah Apel dengan kelompok gambar komputer apple. Ini adalah salah satu contoh pengembangan computer kuantum yang dibuat google.


3. Perbedaan Komputer Kuantum dengan Komputer Klasik

  • Memori komputer klasik merupakan string dari 0s dan 1s, dan ia mampu melakukan perhitungan hanya pada sekumpulan bilangan secara simultan. Memori komputer kuantum merupakan sebuah keadaan kuantum yang mrupakan superposisi dari bilangan-bilangan yang berbeda.
  • Sepanjang sejarah komputasi, bit tetap merupakan unit komputasi dasar informasi. Mekanika kuantum memungkinkan pengkodean informasi dalam bit kuantum (qubit). Tidak seperti bit klasik, yang hanya bisa menyimpan nilai tunggal - baik 0 atau 1 - qubit dapat menyimpan baik 0 dan 1 pada saat yang sama.
  • Selanjutnya, register kuantum 64 qubit dapat menyimpan nilai 264 sekaligus. Komputer Kuantum dapat melakukan perhitungan pada semua nilai-nilai ini pada saat yang sama. Namun, penggalian hasil dari perhitungan paralel masif telah terbukti sulit, membatasi jumlah aplikasi yang telah menunjukkan peningkatan kecepatan yang signifikan dibandingkan komputasi klasik.

4. Penjelasan Tentang Qubits

Dalam sebuah percobaan yang terkenal, cahaya dari satu sumber melewati dua celah, menciptakan sebuah pola interferensi pada layar. Bahkan ketika sumber cahaya hanya memancarkan satu foton pada suatu waktu, pola interferensi muncul. Standar teori kuantum mendalilkan bahwa setiap foton bergerak pada kedua jalur (path) sekaligus. Dengan demikian, partikel dapat berada di dua tempat pada saat yang sama. Dalam situasi tersebut, kita mengatakan bahwa posisi partikel berada dalam superposisi dari dua keadaan.

Dua jalur perjalanan partikel dapat mewakili dua keadaan dari sebuah bit, 0 dan 1. Dalam mekanika kuantum, apabila sistem memiliki dua atau lebih peluang yang memungkinkan, ia dapat menjelajahi mereka secara bersamaan. Setiap sistem dua keadaan, seperti jalur foton, dapat mewakili qubit. Dalam komputer kuantum, kita malah mungkin menggunakan dua orbit elektron dalam atom untuk mewakili qubit. Atom bisa eksis dalam superposisi dari 0 dan 1, mirip seperti lonceng yang dipukul dapat bergetar pada dua frekuensi yang berbeda secara bersamaan.

Referensi :