Jumat, 29 Juni 2018

Parallel Computing

Paralel Computing adalah jenis arsitektur komputasi di mana beberapa prosesor mengeksekusi atau memproses aplikasi atau perhitungan secara bersamaan. Komputasi paralel membantu dalam melakukan perhitungan besar dengan membagi beban kerja antara lebih dari satu prosesor, yang semuanya bekerja melalui komputasi pada saat yang bersamaan. Kebanyakan superkomputer menggunakan prinsip komputasi paralel untuk beroper

Dalam arti yang paling sederhana, komputasi paralel adalah penggunaan simultan dari berbagai sumber daya komputasi untuk memecahkan masalah komputasi:
  1. Suatu masalah dipecah menjadi bagian-bagian terpisah yang dapat diselesaikan secara bersamaan
  2. Setiap bagian selanjutnya dipecah menjadi serangkaian instruksi
  3. Instruksi dari setiap bagian dilakukan secara bersamaan pada prosesor yang berbeda
  4. Mekanisme kontrol / koordinasi keseluruhan digunakan




Sebagai contoh :

Masalah komputasi harus dapat: 
  1. Dipisahkan menjadi bagian-bagian terpisah dari pekerjaan yang dapat diselesaikan secara bersamaan;
  2. Jalankan beberapa instruksi program kapan saja pada waktunya;
  3. Dipecahkan dalam waktu yang lebih singkat dengan beberapa sumber daya komputasi dibandingkan dengan sumber daya komputasi tunggal.

Sumber daya komputasi biasanya:
  1. Satu komputer dengan beberapa prosesor / inti
  2. Sejumlah komputer seperti itu yang terhubung oleh jaringan

Hampir semua komputer yang berdiri sendiri saat ini paralel dari perspektif perangkat keras:
  • Beberapa unit fungsional (L1 cache, L2 cache, cabang, prefetch, decode, floating-point, pemrosesan grafis (GPU), integer, dll.)
  • Beberapa unit eksekusi / inti
  • Beberapa utas perangkat keras



      IBM BG / Q Compute Chip dengan 18 core (PU) dan 16 L2 Cache units (L2)

Jaringan menghubungkan beberapa komputer yang berdiri sendiri (node) untuk membuat kelompok komputer paralel yang lebih besar.



Sebagai contoh, skema di bawah ini menunjukkan klaster komputer paralel LLNL khas:
  • Setiap node komputasi adalah komputer paralel multi-prosesor itu sendiri
  • Beberapa node komputasi terhubung dengan jaringan Infiniband
  • Node tujuan khusus, juga multi-prosesor, digunakan untuk tujuan lain



Pemrosesan paralel umumnya diimplementasikan dalam lingkungan operasional / skenario yang memerlukan perhitungan besar atau kekuatan pemrosesan. Tujuan utama dari komputasi paralel adalah untuk meningkatkan daya komputasi yang tersedia untuk pemrosesan aplikasi atau resolusi tugas yang lebih cepat.

Biasanya, infrastruktur komputasi paralel ditempatkan dalam satu fasilitas di mana banyak prosesor dipasang di rak server atau server terpisah yang terhubung bersama. Server aplikasi mengirim permintaan komputasi atau pemrosesan yang didistribusikan dalam potongan kecil atau komponen, yang secara bersamaan dijalankan pada setiap prosesor / server. Komputasi paralel dapat diklasifikasikan sebagai tingkat-bit, level instruksional, data dan paralelisme tugas.asi. Komputasi paralel juga dikenal sebagai pemrosesan paralel.


CUDA (Compute Unified Device Arcitecture)

CUDA adalah mekanisme komputasi paralel sekaligus platform API yang dibuat oleh Nvidia. CUDA hampir sama dengan OpenCL dimana tujuannya untuk mendapatkan komputasi seefisien mungkin, bedanya CUDA hanya untuk vendor Nvidia sedangkan OpenCL sudah dipakai banyak vendor. CUDA bekerja lebih cepat 30% dibanding OpenCL.

CUDA ini memberikan kemampuan sebuah dalam 2 hardware untuk melakukan komputasi secara bersamaan dan bersatu yaitu pada bagian CPU dan GPU. Hal ini menyebabkan kemampuan komputer menjadi luar biasa. Sebagai contoh sebuah prose perhitungan yang dilakukan oleh CPU bisa di selesaikan dalam beberapa detik, tapi dengan bantuan GPU hal ini dipersingkat hanya menjadi *millisecond*. 

Dan CUDA ini lah yang menjembatani proses ini. Selain itu, GPU yang dilengkapi CUDA dengan mampu melakukan simulasi grafis dengan baik daripada hanya menggunakan CPU. Karena itu GPU yang dilengkapi dengan CUDA, biasanya di lakukan untuk melakukan proses grafis yang tinggi dan perhitungan yang membutuhkan memori tinggi. Dan hal ini menjadi pilihan para konsumen, karena mereka bisa menggunakan hardware mereka dengan lebih maksimal dan optimal. Nvidia sebagai produsen hardware grafis sudah sangat memikirkan bahwa disaat nanti, GPU sendiri akan menjadi bagian penting dari sebuah komputasi. Karena itu Nvidia mengeluarkan sebuah frame work CUDA untuk menjembati para developer untuk menggunakan GPU buatan mereka dengan optimal.

CUDA sendiri berdiri sebagai sebuah framework yang bertugas untuk menjembatani antara proses di sebuah CPU dan GPU sehingga keduanya bisa bekerja secara bersamaan. Sistem ini disebut parallel processing, di mana 2 buah hardware bekerja secara bersamaan untuk melakukan sebuah process. Biasanya hal ini dilakukan untuk melakukan sebuah process yang rumit dan membutuhkan memori banyak, sehingga pengolahan proses bisa lebih cepat.

Seri pertama dari CUDA dikeluarkan oleh Nvidia pada tahun 2006, tapi saat itu masih pengembangan. Tapi sejak itu, Nvidia sudah melakukan pengembangan pada CUDA, sehingga CUDA bisa digunakan secara lebih baik. Sampai saat ini CUDA sudah rilis pada versi ke-4. Dan ini merupakan pengembangan yang baik karena dengan CUDA, kita melakukan programming tanpa mengetahui bahasa Assembly, kita cukup mengetahui C++, atau Fortran untuk melakukannya. CUDA merupakan sistem propierty buatan Nvidia,yang di sebarkan secara gratis. Tapi hal ini tidak menjadi halangan bagi para developer untuk menggunakannya. Karena sistem CUDA memberikan kemudahan dalam melakukan penyebaran driver mereka.

Saat ini Sistem CUDA sudah banyak digunakan untuk membangun sisem komputer cepat, karena hal ini lebih murah, dibandingkan kita harus lebih membeli processor tambahan. Selain itu itu menjad lebih energi, karena biaya untuk tambahan energi dapat dikurangi melalui sistem GPU CUDA. Saat ini GPU CUDA mendapat tantangan dari AMD dengan AMD Fusion mereka. Hal ini akan menjadi sangat menarik, karena mereka berdua memiliki teknologi di bidang grafis yang cukup kuat.



Sumber :

Jumat, 01 Juni 2018


Quantum Computing

Dalam bahasa Indonesia yaitu komputer kuantum, merupakan komputer yang memanfaatkan fenomena-fenomena dari mekanika quantum, seperti quantum superposition dan quantum entanglement, yang digunakan untuk pengoperasian 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.

Komputer kuantum dapat jauh lebih cepat dari komputer konvensional pada banyak masalah, salah satunya yaitu masalah yang memiliki sifat berikut :

1.) Satu-satunya cara adalah menebak dan mengecek jawabannya berkali-kali.
2.) Terdapat n jumlah jawaban yang mungkin.
3.) Setiap kemungkinan jawaban membutuhkan waktu yang sama untuk mengeceknya.
4.) Tidak ada petunjuk jawaban mana yang kemungkinan benarnya lebih besar: memberi jawaban dengan asal tidak berbeda dengan mengeceknya dengan urutan tertentu.

Secara definisi, komputer quantum adalah komputer yang memanfaatkan fenomena-fenomena dari mekanika quantum, seperti quantum superposition dan quantum entanglement dalam proses komputasi data.

Jadi bisa disimpulkan bahwa komputer quantum itu adalah komputer yang lebih canggih dari komputer biasa karena pada komputer quantum telah menggunakan prinsip-prinsip atau metode metode quantum.

Sejarah Komputer Quantum

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.

Algoritma Quantum Computing

Komputer Quantum menggunakan beberapa algoritma, dua buah contoh algoritma nya yaitu Algoritma Shor dan Algoritma Grover. berikut adalah penjelasannya:

Algoritma Shor

Algoritma Shor merupakan sebuah algoritma kuantum yang efisien bisa menguraikan pada pengali jumlah besar. Algortima ini merupakan pusat pada sistem yang menggunakan teori bilangan untuk memperkirakan periodisitas dari urutan nomor. Ditemukan oleh Peter Shor. Algortima ini di perbaharui oleh Lov Grover dari Bell Labs pada tahun 1996, dengan algoritma yang sangat cepat dan terbukti menjadi yang tercepat mungkin untuk mencari melalui database tidak terstruktur.

Algoritma ini sangat efisien sehingga hanya membutuhkan rata-rata, sekitar akar N persegi  pencarian untuk menemukan hasil yang diinginkan, sebagai lawan pencarian dalam komputasi klasik, yang pada kebutuhan rata-rata N / 2 pencarian. N adalah jumlah total elemen.

Algoritma Shor didasarkan dari sebuah teori bilangan: fungsi F(a) = xamod n adalah feungsi periodik jika x adalah bilangan bulat yang relatif prima dengan n. Dalam Algoritma Shor, n akan menjadi bilangan bulat yang hendak difaktorkan. Pada masalah ini algoritma quantum shor memanfaatkan pararellisme quantum untuk melakukannya hanya dengan satu langkah. Karena F(A) adalah fungsi periodik, maka fungsi ini memiliki sebuah periode r. Diketahui x0mod n = 1, maka xr mod n =1, begitu juga x2r mod n dan seterusnya.

Algoritma Grover

Algoritma Grover adalah sebuah algoritma kuantum untuk mencari database disortir dengan entri N di O ( N1 / 2 ) waktu dan menggunakan O ( log N ) ruang penyimpanan (lihat notasi O besar ). Lov Grover dirumuskan itu pada tahun 1996. Dalam model komputasi klasik , mencari database unsorted tidak dapat dilakukan dalam waktu kurang dari waktu linier (jadi hanya mencari melalui setiap item optimal ) .

Algoritma Grover menggambarkan bahwa dalam model kuantum pencarian dapat dilakukan lebih cepat dari ini ; sebenarnya waktu kompleksitas O ( N1 / 2 ) adalah asimtotik tercepat mungkin untuk mencari database unsorted dalam model kuantum linear. Ini menyediakan percepatan kuadrat, seperti algoritma kuantum lainnya, yang dapat memberikan percepatan eksponensial atas rekan-rekan mereka klasik. Namun, bahkan percepatan kuadrat cukup besar ketika N besar.

Seperti banyak algoritma kuantum, algoritma Grover adalah probabilistik dalam arti bahwa ia memberikan jawaban yang benar dengan probabilitas tinggi. Kemungkinan kegagalan dapat dikurangi dengan mengulangi algoritma.


Kelebihan dan Kekurangan Quantum Computation

Jika komputer kuantum dapat dibangun, sangat berguna untuk decoding dan encoding informasi rahasia. Komputer kuantum juga bisa digunakan untuk mencari database besar di sebagian kecil dari waktu yang jika menggunakan komputer konvensional akan memerlukan waktu yang sangat lama, komputer kuantum juga untuk mempelajari mekanika kuantum, atau bahkan merancang komputer kuantum lainnya.

Komputer kuantum dalam satu langkah komputasi dapat melakukan operasi matematis pada 2N input berlainan yang tersimpan dalam superposisi koheren N qubit. Untuk melakukan hal yang sama, suatu komputer konvensional harus mengulang operasi sejumlah 2N kali atau harus digunakan 2N prosesor konvensional yang bekerja bersamaan.

Komputer kuantum melakukan semua perhitungan secara bersamaan (karena ada multiple states semuaperhitungan dapat berlangsung secara simultan di semua state). Komputer kuantum dengan jumlah transistor yang sama dengan komputer sekarang bisa lebih cepat jutaan kali. 30 qubit komputer kuantum bisa menghasilkan 10 terflops atau 10 bilyun operasi poin-mengambang per detik.

Tapi komputasi kuantum masih dalam tahap awal pengembangan, pun begitu telah banyak ilmuwan komputer meyakini teknologi masa depan ini sangat dibutuhkan untuk membuat sebuah komputer kuantum praktis, yang mana harus memiliki setidaknya beberapa lusin qubit, sehingga dapat memecahkan berbagai masalah dunia maya dan dunia nyata. ).

Komputer kuantum Belum merupakan sebuah perangkat yang bisa digunakan, namun untuk komputasi kuantum (sebuah sistem perangkat keras dan lunak yang akan membuat perangkat komputer kuantum) sudah ada perusahaan yang telah didirikan termasuk D-wave System.


Sumber :

Jumat, 20 April 2018

Cloud Computing dan Grid Computing

Cloud Computing

Cloud Computing adalah kumpulan dari beberapa computing resources yang terintegrasi menjadi satu dan di delivered melalui web. Cloud computing juga didasarkan pada teknologi grid computing, yaitu membuat skalabilitas suatu sistem computing menjadi sangat besar dengan cara menggabungkan beberapa computing resources menjadi satu resource.

Cloud computing mengacu pada tersedianya semua sumber daya komputasi melalui media internet. Sebuah komputer atau perangkat selular yang terhubung ke jaringan cloud computing akan memiliki semua data dan program pada hosting yang bisa terhubung setiap saat serta di manapun dengan pengguna.

Pengguna cloud computing dapat terhubung dengan data dan program yang mereka miliki asal memiliki koneksi internet.

Jenis Layanan Cloud Computing

Software as a Service
Menyediakan aplikasi siap pakai yang ditujukan kepada End User, disini user tidak perlu membuat aplikasi ataupun infrastruktur. Contoh : hotmail, gmail, ymail, twitter dan facebook.

Platform as a Service
Menyediakan tempat untuk menjalankan sebuah aplikasi dari pengguna atau user. Layanan tersebut berupa OS, database atau framework.

Infrastruktur as a Service
Menyediakan infrastruktur IT kepada End User dimana layanan tersebut dibangun berbasis cloud. Infrstrustur tersebut bisa bersifat fisik seperti hardisk, memory, server, jaringan daan sebagainya.

Cara Kerja Cloud Computing

Cloud Computing bekerja dengan menggunakan server yang bekerja secara online pada jaringan internet. Pada komputer server ini semua data akan disimpan begitu juga dengan aplikasi, semua di install pada komputer server.

Pengguna pertama kali harus login terlebih dahulu, setelah login berhasil barulah pengguna bisa menggunakan resource server cloud. Setelah berada didalam kita bebas memberikan perintah pada aplikasi tersebut yang nantinya akan dikirimkan ke server melalui jaringan internet.

Masalah Cloud Computing

Keamanan data
Privacy
Rawan penyusup
Server down

Keuntungan Cloud Computing

Efisiensi penggunaan memory
Fleksibel
Skalabilitas

Kerugian Cloud Computing

Pengguna harus terhubung internet
Biaya untuk penyedia server cloud


Grid Computing

Grid computing merupakan salah satu jenis dari komputasi modern. Grid computing adalah arsitektur TI baru yang menghasilkan sistem informasi perusahaan yang berbiaya rendah dan lebih adaptif terhadap dinamika bisnis. Dengan grid computing, sejumlah komponen hardware dan software yang modular dan independen akan dapat dikoneksikan dan disatukan untuk memenuhi tuntutan kebutuhan bisnis. Lebih jauh, dari sisi ekonomi, implementasi grid computing berarti membangun pusat komputasi data yang tangguh dengan struktur biaya variatif yang bias disesuaikan dengan kebutuhan.

Konsep Grid Computing

1.) Sumber daya Infrastruktur

Mencakup hardware seperti penyimpan, prosesor, memori, dan jaringan; juga software yang di desain untuk mengelola hardware ini, seperti database, manajemen penyimpan, manajemen sistem, server aplikasi dan system operasi.

2.) Sumber daya Aplikasi

Adalah perwujudan logika bisnis dan arus proses dalam software aplikasi. Sumberdaya yang dimaksud bisa berupa aplikasi paket atau aplikasi buatan, ditulis dalam bahasa pemrograman, dan merefleksikan tingkat kompleksitas. Sebagai contoh, software yang mengambil pesanan dari seorang pelanggan dan mengirimkan balasan, proses yang mencetak slip gaji, dan logika yang menghubungkan telepon dari pelanggan tertentu kepada pihak tertentu pula.

3.) Sumber daya Informasi

Saat ini, informasi cenderung terfragmentasi dalam perusahaan, sehingga sulit untuk memandang bisnis sebagai satu kesatuan. Sebaliknya, grid computing menganggap informasi adalah sumberdaya, mencakup keseluruhan data pada perusahaan dan metadata yang menjadikan data bisa bermakna. Data bias berbentuk terstruktur, semi-terstruktur, atau tidak terstruktur, tersimpan di lokasi manapun, seperti dalam database, sistem file lokal atau

Prinsip Kerja Grid Computing

Dua prinsip kerja utama grid computing yang membedakannya dari arsitektur komputasi yang lain, semisal mainframe, klien-server, atau multi-tier: virtualisasi dan provisioning.

Virtualisasi

Setiap sumberdaya (semisal komputer, disk, komponen aplikasi dan sumber informasi) dikumpulkan bersama-sama menurut jenisnya, lalu disediakan bagi konsumen (semisal orang atau program software). Virtualisasi berarti meniadakan koneksi secara fisik antara penyedia dan konsumen sumberdaya, dan menyiapkan sumberdaya untuk memenuhi kebutuhan tanpa konsumen mengetahui bagaimana permintaannya bisa terlayani.

Provisioning

Ketika konsumen meminta sumberdaya melalui layer virtualisasi, sumberdaya tertentu di belakang layer didefinisikan untuk memenuhi permintaan tersebut, dan kemudian dialokasikan ke konsumen. Provisioning sebagai bagian dari grid computing berarti bahwa system menentukan bagaimana cara memenuhi kebutuhan konsumen seiring dengan mengoptimasi jalannya sistem secara keseluruhan.

Kelemahan dan Kelebihan Grid Computing

Setelah mengetahui apa itu Grid Computing, selanjutnya pada artikel ini akan dijelaskan tentang kelebihan dan kekurang Grid Computing, berikut adalah penjelasannya.

Kelebihan Grid Computing

1.) Lebih hemat biaya dalam penggunaan sejumlah tertentu sumber daya komputer.
Sebagai cara untuk memecahkan masalah yang mungkin tidak dapat dipecahkan tanpa sejumlah besar daya komputasi.

2.) Sumber daya dari banyak komputer dapat kooperatif dan dimanfaatkan secara sinergis, serta dikelola sebagai sebuah kolaborasi mencapai tujuan bersama.
Perkalian dari sumber daya: Resource pool dari CPU dan storage tersedia ketika idle

3.) Lebih cepat dan lebih besar: Komputasi simulasi dan penyelesaian masalah apat berjalan lebih cepat dan mencakup domain yang lebih luas.
Software dan aplikasi: Pool dari aplikasi dan pustaka standard, Akses terhadap model dan perangkat berbeda, Metodologi penelitian yang lebih baik
Data: Akses terhadap sumber data global, dan Hasil penelitian lebih baik

Kekurangan Grid Computing

1.) Tidak adanya interoperabilitas antar sistem. Interoperabilitas adalah kemampuan dari suatu sistem untuk berinteraksi dan berfungsi dengan sistem lain, di masa kini atau di masa mendatang, tanpa batasan  akses atau implementasi.

2.) Dalam  grid computing, permasalahan yang paling sering dijumpai adalah perbedaan format data yang dapat menghambat impor dan ekspor data dari komputer satu ke  komputer lainnya. Hal ini menyebabkan tidak terjadinya interperobilitas dalam sistem  grid computingsehingga diperlukan reformat data atau penggunaan suatu aplikasi agar data tersebut bisa diubah dan dipakai dalam suatu format tertentu.

3.) Hadirnya biaya tersembunyi. Misal, suatu perusahaan bisa dikenakan biaya yang lebih tinggi dari jaringan penyedia layanan  grid computing untuk penyimpanan dan aplikasi database yang berisi terabyte data. Hal ini mungkin melampaui biaya perusahaan  yang sedang berhemat  untuk  infrastruktur baru,  training bagi karyawan, atau pembiayaan untuk lisensi baru beberapa perangkat lunak.

4.) Latency data yang besar. Latency data yang besar seringkali menjadi kendala bagi perusahaan akibat letaknya  yang jauh dari penyedia layanan atau terpisah secara geografis dengan perusahaan penyedia layanan grid computing
  



Sumber :