Parallel Computation

Pengertian Parallel Computation

Komputasi Paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak. Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi.

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

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

Terdapat dua hukum yang berlaku dalam sebuah parallel processing. yaitu:

  • Hukum Amdahl
  • Amdahl berpendapat, “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
  • Pendapat yang dikemukakan Gustafson hampir sama dengan Amdahl, tetapi dalam pemikiran 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

Pemrosesan Terdistribusi

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.

Architectual Parallel Computer

Menurut seorang Designer Processor, taksonomi Flynn, Arsitektur Komputer dibagi menjadi 4 baguan, yaitu :

  1. SISD ( Single Instruction Single Data Stream )

Jenis Komputer yang hanya memiliki satu prosesor dan satu instruksi yang dieksekusi secara serial.

  1. SIMD ( Single Instruction  Multiple Data Stream )

Jenis komputer yang memiliki lebih dari satu prosesor, tetapi komputer ini hanya mengeksekusi satu instruksi secara paralel pada data yang berbeda pada level lock-step.

  1. MISD ( Multiple Instruction Single Data Stream )

Jenis komputer yang memiliki satu prosesor dan mengeksekusi beberapa instruksi secara paralel tetapi di dalam praktiknya tidak ada komputer yang dibangun dengan arsitektur ini karena sistemnya tidak mudah dipahami, sampai saat ini pun belum ada komputer yang menggunakan arsitektur jenis ini

  1. MIMD ( Multiple Instruction Multiple Data Stream )

Jenis komputer yang 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, karena model dan konsepnya yang tidak terlalu rumit untuk dipahami.

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

  1. Pengantar Message 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

  1. Pengantar Pemrograman 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.

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

Parallel Computation Pengantar Thread dan CUDA programming

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.

Pengantar Message Passing, OpenMP

Massage Passing merupkan suatu teknik bagaimana mengatur suatu alur komunikasi messaging terhadap proses pada system. Message passing dalam ilmu komputer adalah suatu bentuk komunikasi yang digunakan dalam komputasi paralel , pemrograman-berorientasi objek , dan komunikasi interprocess . Dalam model ini, proses atau benda dapat mengirim dan menerima pesan yang terdiri dari nol atau lebih byte, struktur data yang kompleks, atau bahkan segmen kode ke proses lainnya dan dapat melakukan sinkronisasi. Objek didistribusikan dan metode sistem remote doa seperti ONC RPC , CORBA , Java RMI , DCOM , SOAP , . NET Remoting , CTO , QNX Neutrino RTOS , OpenBinder , D-Bus , Unison RTOS dan serupa pesan lewat sistem.Paradigma Message passing yaitu :

  1. Banyak contoh dari paradigma sekuensial dipertimbangkan bersama-sama.
  2. Programmer membayangkan beberapa prosesor, masing-masing dengan memori, dan menulis sebuah program untuk berjalan pada setiap prosesor.
  3. Proses berkomunikasi dengan mengirimkan pesan satu sama lain

OpenMP merupakan API yang mendukung multi-platform berbagi memori multiprocessing pemrograman C , C + + , dan Fortran , pada kebanyakan arsitektur prosesor dan system operasi , termasuk Solaris , AIX , HP-UX , GNU / Linux , Mac OS X , dan Windows platform. Ini terdiri dari satu set perintah kompiler, rutinitas library, dan variable lingkungan yang mempengaruhi perilaku run-time. OpenMP dikelola oleh nirlaba teknologi konsorsium OpenMP Arsitektur Review Board (ARB atau OpenMP), bersama-sama didefinisikan oleh sekelompok perangkat keras komputer utama dan vendor perangkat lunak, termasuk AMD , IBM , Intel , Cray , HP , Fujitsu , Nvidia , NEC , Microsoft , Texas Instruments , Oracle Corporation , dan banyak lagi.

 

Pengantar Programming CUDA

GPU (Graphical Processing Unit) pada awalnya adalah sebuah prosesor yang berfungsi khusus untuk melakukan rendering pada kartu grafik saja, tetapi seiring dengan semakin meningkatnya kebutuhan rendering, terutama untuk mendekati waktu proses yang realtime /sebagaimana kenyataan sesungguhnya, maka meningkat pula kemampuan prosesor grafik tersebut. akselerasi peningkatan teknologi GPU ini lebih cepat daripada peningkatan teknologi prosesor sesungguhnya (CPU), dan pada akhirnya GPU menjadi General Purpose, yang artinya tidak lagi hanya untuk melakukan rendering saja melainkan bisa untuk proses komputasi secara umum.penggunaan Multi GPU dapat mempercepat waktu proses dalam mengeksekusi program karena arsitekturnya yang natively parallel. Selain itu Peningkatan performa yang terjadi tidak hanya berdasarkan kecepatan hardware GPU saja, tetapi faktor yang lebih penting adalah cara membuat kode program yang benarbenar bisa efektif berjalan pada Multi GPU.

 

CUDA merupakan teknologi anyar dari produsen kartu grafis Nvidia, dan mungkin belum banyak digunakan orang secara umum. Kartu grafis lebih banyak digunakan untuk menjalankan aplikasi game, namun dengan teknologi CUDA ini kartu grafis dapat digunakan lebih optimal ketika menjalankan sebuah software aplikasi. Fungsi kartu grafis Nvidia digunakan untuk membantu Processor (CPU) dalam melakukan kalkulasi dalam proses data.

 

CUDA merupakan singkatan dari Compute Unified Device Architecture, didefinisikan sebagai sebuah arsitektur komputer parallel, dikembangkan oleh Nvidia. Teknologi ini dapat digunakan untuk menjalankan proses pengolahan gambar, video, rendering 3D, dan lain sebagainya.

 

Singkatnya, CUDA dapat memberikan proses dengan pendekatan bahasa C, sehingga programmer atau pengembang software dapat lebih cepat menyelesaikan perhitungan yang komplek. Bukan hanya aplikasi seperti teknologi ilmu pengetahuan yang spesifik. CUDA sekarang bisa dimanfaatkan untuk aplikasi multimedia. Misalnya meng-edit film dan melakukan filter gambar. Sebagai contoh dengan aplikasi multimedia, sudah mengunakan teknologi CUDA. Software TMPGenc 4.0 misalnya membuat aplikasi editing dengan mengambil sebagian proces dari GPU dan CPU. VGA yang dapat memanfaatkan CUDA hanya versi 8000 atau lebih tinggi.

 

Keuntungan dengan CUDA sebenarnya tidak luput dari teknologi aplikasi yang ada. CUDA akan mempercepat proses aplikasi tertentu, tetapi tidak semua aplikasi yang ada akan lebih cepat walaupun sudah mengunakan fitur CUDA. Hal ini tergantung seberapa cepat procesor yang digunakan, dan seberapa kuat sebuah GPU yang dipakai. Dan bagian terpenting adalah aplikasi apa yang memang memanfaatkan penuh kemampuan GPU dengan teknologi CUDA. Kedepan seperti pengembang software Adobe akan ikut memanfaatkan fitur CUDA pada aplikasi mereka.Jawaban akhir adalah, untuk memanfaatkan CUDA kembali melihat aplikasi software yang ada. Apakah software yang ada memang mampu memanfaatkan CUDA dengan proses melalui GPU secara penuh. Hal tersebut akan berguna untuk mempercepat selesainya proses pada sebuah aplikasi. Dengan kecepatan proses GPU, aplikasi akan jauh lebih cepat. Khususnya teknologi ilmu pengetahuan dengan ramalan cuaca, simulator pertambangan atau perhitungan yang rumit dibidang keuangan. Sedangkan aplikasi umum sepertinya masih harus menunggu.

 

tugas file terdistribusi

File Sistem Terdistribusi ( Distributed File System , disingkat DFS – penulis akan

menggunakan kata ini selanjutnya) adalah file sistem yang mendukung sharing files dan

resources dalam bentuk penyimpanan persistent di sebuah network. File server pertama kali

didevelop pada tahun 1970 dan Sun NFS (Network File System) menjadi DFS pertama yang

banyak digunakan setelah awal pemunculannya di tahun 1985. DFS yang terkenal selain NFS

adalah AFS (Andrew File System) dan CIFS (Common Internet File System).

Sebuah file server menyediakan file service ke client. Dari sisi client terdapat interface

untuk file service dalam hal operasi primitif file, seperti membuat file (create), menghapus

(delete) dan read write file. Komponen perangkat keras utama yang mana file server mengontrolnya adalah sebuah local storage (umumnya disk drive / HDD). Ditempat itulah

file-file tersimpan dan dari tempat tersebut request client meretrive file. Pada DFS client, server dan juga perangkat penyimpanan merupakan mesin terpisah dalam sebuah lingkungan

terdistribusi (Intranet). Jadi, aktifitas layanan (service) dibawa melewati jaringan (network),

jadi selain sistem memiliki satu data terpusat, sistem memiliki beberapa perangkat penyimpanan independent. Konfigurasi konkret dan juga implementasi dari sebuah DFS dapat

beragam bentuknya. Dalam beberapa konfigurasi, server berjalan sebagai dedicated machine

(layanan terpusat) atau juga menjadi server dan client. DFS dapat diimplementasikan sebagai

bagian dari Sistem Operasi Terdistribusi dengan sebuah layer software yang tugasnya mengatur komunikasi antara sistem operasi konvensional dan file system.

File system yang terdistribusi mengemulasikan fungsionalitas dari file sistem tak terdistribusi untuk program client yang berjalan pada komputer remote. File sistem terdistribusi juga menyediakan hal-hal pokok untuk pengorganisasian komputer yang berbasiskan jaringan

intranet.

Pengenalan File Service

File service adalah suatu  perincian  atau  pelayanan dari file system yang ditawarkan pada komputer client.  Suatu file server adalah implementasi dari file service dan berjalan pada satu atau lebih mesin. File itu sendiri berisi dari nama, data dan atribut file seperti kepemilikan file, ukuran, waktu pembuatan file dan hak akses file. File sistem merupakan mekanisme penyimpanan on-line serta untuk akses, baik data maupun program yang berada dalam sistem operasi.

Karakteristik dari File System

File Sistem adalah bertanggung jawab untuk pengorganisasian, penyimpanan, pencarian keterangan, penamaan, sharing atau pembagian dan protection atau perlindungan dari file-file. File berisi dari dua bagian penting yaitu data dan atribut. File sistem didesain untuk menyimpan dan mengatur banyak dan besar file dengan fasilitas untuk membuat, memberi nama dan menghapus file. File system juga bertanggung jawab untuk pengontrolan dari akses file, akses terbatas ke file oleh user yang berhak dan tipe-tipe dari akses yang diminta.

– Operasi pada file (=data + atribut)

  • Create / delete
  • Query / Modifikasi Atribut
  • Open / Close
  • Read / Write
  • Akses Kontrol

– Organisasi penyimpanan

  • Struktur direktori (hirarki, pathname)
  • Metadata (pengaturan informasi file) : atribut file, informasi struktur direktori, Dll.

Atribut File

  1. File adalah kumpulan informasi berkait yang diberi nama dan direkam pada penyimpanan sekunder. Atribut file terdir dari :
  2. Nama Merupakan satu-satunya informasi yang tetap dalam bentuk yang bisa  dibaca oleh manusia (human readable form)
  3. Type Dibutuhkan untuk sistem yang mendukung beberapa tipe berbeda Lokasi Merupakan pointer atau penunjuk ke device dan lokasi file pada device tersebut berada
  4. Ukuran (Size) Ukuran file pada saat itu, baik dalam byte, huruf ataupun blok Proteksi Informasi mengenai kontrol akses, misalnya siapa saja yang boleh membaca, menulis dan mengeksekusi file
  5. Waktu, tanggal dan identifikasi pengguna Informasi ini biasanya disimpan untuk :

– Pembuatan file

– Modifikasi terakhir yang dilakukan pada file

– Penggunaan terakhir file

Atribute file

  • Panjang File
  • Creation Timestamp
  • Read Timestamp
  • Write Timestamp
  • Attribute Timestamp
  • Reference Count
  • Owner
  • Tipe File
  • Daftar Akses Kontrol

Struktur File System

– Modul direktori : menghubungkan nama file dengan ID file

– Modul File : menghubungkan ID dengan file tertentu

– Modul Akses Kontrol : memeriksa permission utuk operasi yang diminta

– Modul Akses File : read / write data file atau atribut

– Modul Blok : akses dan alokasi blok disk

– Modul Perangkat : disk I/O dan buffering

Komponen File service

Komponen-komponen file service adalah terdiri dari :

  • File Service

Pengoperasian dari masing-masing file.

  • Directory Service

Management atau pengaturan direktori

  • Naming Service

– Location Independence :

  • File dapat dipindahkan tanpa penggantian nama

– Hal yang umum untuk penamaan file dan directori :

  • Mesin + nama path e.g / machine / path atau machine : path
  • Mounting File sistem secara remote kedalam hirarki local file.
  • Single name space yang sama pada semua mesin.

– Dua level penamaan :

  • Nama simbolik yang dilihat user dan nama binary yang dilihat oleh sistem.

http://iwan.staff.gunadarma.ac.id/Downloads/files/22156/5_File+Service.pdf.

Pengantar Komputasi Cloud

Pada Perkembangan teknologi di era ini menggunakan konsep – konsep seperti social networking, open, share, colaborations, mobile, easy maintenance, one click, terdistribusi, scalability, concurency, dan transparan. Sampai saat ini trend teknologi Cloud Computing (Komputasi Awan) masih terus diteliti dalam penelitian – penelitian para pakar IT dunia. Dengan berbagai kelebihan dan kekurangan, Cloud Computing hadir dengan memudahkan akses data dari mana saja dan kapan saja, karena dengan memanfaatkan internet dan menggunakan perangkat fixed atau mobile device menggunakan internet cloud sebagai tempat penyimpanan data, aplikasi dan lainya. Teknologi ini akan memberikan banyak keuntungan baik dari sisi pemberi layanan (provider) atau dari sisi user. Penerapan teknologi ini memberikan dampak yang sangat signifikan bagi pengembangan teknologi itu sendiri, baik dari sisi pengguna maupun dari sisi industri. Pengguna diuntungkan dengan semakin mudahnya memperoleh atau mengunduh data secara cepat dan mudah karena banyak layanan yang dibuka oleh pihak industri. Keuntungan bagi pihak industri pun tidak kalah besar dengan kemudahan yang didapat oleh pengguna, karena dengan semakin majunya teknologi cloud computing akan semakin memudahkan industri untuk memasarkan produk dan menyebarkan informasi secara meluas keseluruh penjuru dunia. Cloud computing adalah gabungan pemanfaatan teknologi komputer dan pengembangan berbasis internet.
Kelebihan Cloud Computing:
Kelebihan paling menonjol dari cloud computing adalah kemudahan akses. Untuk mengerjakan suatu pekerjaan tidak mesti berada dihadapan satu komputer yang sama. Misal anda diberi tugas oleh oleh atasan anda untuk membuat sebuah bahan presentasi dengan format aplikasi power point, karena pada komputer anda tidak ada aplikasi power pointnya maka anda bisa membuatnya di Google Docs (Google Drive) ataupun skydrive nya windows. Cukup koneksi ke internet, login ke akun google atau hotmail. Outlook mail, maka anda pun sudah bisa membuat bahan presentasi secara online. Fleksibilitas, seperti contoh diatas, bahan presentasi yang kita buat tidak perlu di simpan di hardisk yang akan memakan ruang space. Dimanapun anda berada ataupun kemanapun anda berpergian file – file tersebut bisa dibuka dimana saja asalkan ada koneksi internet. Andaikata anda akan pergi ke perusahaan cabang anda, anda tidak perlu lagi repot – repot membawa laptop ke cabang perusahaan anda, karena semua file – file tersimpan diawan. Penghematan adalah kelebihan lain dari cloud computing.
Kekurangan Cloud Computing:
Hal yang paling wajib dalam cloud computing adalah koneksi internet, internet bisa dibilang jalan satu – satunya untuk menuju ke cloud computing, ketika tidak ada koneksi internet ditempat kita berada, maka jangan harap bisa menggunakan sistem cloud computing. Hal ini masih menjadi hambatan khususnya bagi Indonesia, karena belum semua wilayah di tanah air terjangkau oleh akses internet, ditambah lagi sekalipun ada koneksi internet, koneksinya belum stabil dan kurang memadai. Kerahasiaan dan keamanan adalah salah satu hal yang paling diragukan pada komputasi awan. Karena dengan menggunakan sistem cloud computing ini berarti kita mempercayakan sepenuhnya atas keamanan dan kerahasiaan data – data kepada perusahaan penyedia server komputasi awan (cloud computing). Contoh yang paling sederhana adalah ketika anda menyimpan foto – foto anda di facebook dengan beberapa konfigurasi privasi yang diberikan kepada kita, maka selebihya kita mempercayakan keamanan file – file tersebut kepada facebook. Andaikata foto – foto tersebut hilang kita tidak bisa menuntut karena kita memanfaatkan jasa tersebut secara cuma – cuma alias gratis.

Pengantar Komputasi Grid

Komputasi Grid sebenarnya merupakan sebuah aplikasi pengembangan dari jaringan komputer (network). Hanya saja, tidak seperti jaringan komputer konvensional yang berfokus pada komunikasi antar piranti (device), aplikasi pada grid computing dirancang untuk memanfaatkan sumber daya pada terminal dalam jaringannya. Grid Computing biasanya diterapkan untuk menjalankan sebuah fungsi yang terlalu kompleks atau terlalu intensif untuk dikerjakan oleh satu sistem tunggal. Seperti halnya pengguna internet yang mengakses berbagai situs web dan menggunakan berbagai protokol seakan – akan dalam sebuah sistem yang berdiri sendiri, maka pengguna aplikasi Grid Computing seolah – olah akan menggunakan sebuah virtual komputer dengan kapasitas pemrosesan data yang sangat besar.
Menurut definisi Grid Computing atau Komputasi Grid merupakan salah satu dari tipe data komputasi paralel. Karena penggunaan sumber daya nya melibatkan banyak komputer terpisah secara geografis namun tersambung via jalur komunikasi (termasuk internet) untuk memecahkan persoalan komputasi skala besar. Semakin cepat jalur komunikasi terbuka, maka peluang untuk menggabungkan kinerja komputasi dari sumber – sumber komputer yang terpisah menjadi semakin meningkat. Dengan demikian, skala komputasi terdistribusi dapat ditingkatkan secara geografis lebih jauh lagi, melintasi batas – batas domain administrasi yang ada.
Beberapa konsep dasar dari komputasi grid:
Sumber daya dikelola dan dikendalikan secara lokal
Sumber daya berbeda dapat mempunyai kebijakan dan mekanisme berbeda
Secara generik, keuntungan dasar dari penerapan komputasi grid, yaitu:
Perkalian dari sumber daya: Resource pool dari CPU dan storage tersedia ketika idle
Lebih cepat dan lebih besar: Komputasi simulasi dan penyelesaian masalah dapat 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.

Virtualisasi

Ada dua istilah yang sedang popouler saat ini dalam hal teknologi komputasi, yaitu Virtualisasi dan Cloud computing, namun saat ini sepertinya banyak yang menganggap bahwa virtualisasi dan cloud computing adalah hal yang sama, padahal sebenarnya cloud computing itu lebih dari sekedar virtualisasi.
Virtualisasi adalah sebuah teknologi, yang memungkinkan anda untuk membuat versi virtual dari sesuatu yang bersifat fisik, misalnya sistem operasi, storage data atau sumber daya jaringan. Proses tersebut dilakukan oleh sebuah software atau firmware bernama Hypervisor. Hypervisor inilah yang menjadi nyawanya virtualisasi, karena dialah layer yang “berpura – pura” menjadi sebuah infrastruktur untuk menjalankan beberapa virtual machine. Dalam prakteknya, dengan membeli dan memiliki satu buah mesin, anda seolah – olah memiliki banyak server, sehingga anda bisa mengurangi pengeluaran IT untuk pembelian server baru, komponen, storage, dan software pendukung lainnya.

Distribusi komputasi Cloud Komputing

Pada Komputasi terdistribusi merupakan bidang ilmu komputer yang mempelajari sistem terdistribusi. Sebuah sistem terdistribusi terdiri dari beberapa komputer otonom yang berkomunikasi melalui jaringan komputer. Komputer yang saling berinteraksi untuk mencapai tujuan bersama. Suatu program komputer yang berjalan dalam sistem terdistribusi disebut program didistribusikan, dan didistribusikan pemrograman adalah proses menulis program tersebut. Distributed computing juga mengacu pada penggunaan sistem terdistribusi untuk memecahkan masalah komputasi. Dalam distributed computing, masalah dibagi menjadi banyak tugas, masing-masing yang diselesaikan oleh satu komputer.

E. Map Reduce dan NoSQL (Not Only SQL)
Map-Reduce adalah salah satu konsep teknis yang sangat penting di dalam teknologi cloud terutama karena dapat diterapkannya dalam lingkungan distributed computing. Dengan demikian akan menjamin skalabilitas aplikasi kita.
Salah satu contoh penerapan nyata map-reduce ini dalam suatu produk adalah yang dilakukan Google. Dengan inspirasi dari functional programming map dan reduce Google bisa menghasilkan filesystem distributed yang sangat scalable, Google Big Table.
Dan juga terinspirasi dari Google, pada ranah open source terlihat percepatan pengembangan framework lainnya yang juga bersifat terdistribusi dan menggunakan konsep yang sama, project open source tersebut bernama Apache Hadoop.
NoSQL adalah istilah untuk menyatakan berbagai hal yang didalamnya termasuk database sederhana yang berisikan key dan value seperti Memcache, ataupun yang lebih canggih yaitu non-database relational seperti MongoDB, Cassandra, CouchDB, dan yang lainnya.
Wikipedia menyatakan NoSQL adalah sistem menejemen database yang berbeda dari sistem menejemen database relasional yang klasik dalam beberapa hal. NoSQL mungkin tidak membutuhkan skema table dan umumnya menghindari operasi join dan berkembang secara horisontal. Akademisi menyebut database seperti ini sebagai structured storage, istilah yang didalamnya mencakup sistem menejemen database relasional.
F. NoSQL Database
Database NoSQL, juga disebut Not Only SQL, adalah sebuah pendekatan untuk pengelolaan data dan desain database yang berguna untuk set yang sangat besar data terdistribusi.
NoSQL, yang mencakup berbagai teknologi dan arsitektur, berusaha untuk memecahkan masalah skalabilitas dan kinerja data yang besar yang database relasional tidak dirancang untuk menangani. NoSQL ini sangat berguna ketika perusahaan perlu untuk mengakses dan menganalisis sejumlah besar data terstruktur atau data yang disimpan dari jarak jauh pada beberapa virtual server di awan. .
Berlawanan dengan kesalahpahaman yang disebabkan oleh namanya, NoSQL tidak melarang bahasa query terstruktur (SQL). Meskipun benar bahwa beberapa sistem NoSQL sepenuhnya non-relasional, yang lain hanya menghindari fungsi relasional dipilih seperti skema tabel tetap dan bergabung dengan operasi. Sebagai contoh, daripada menggunakan tabel, database NoSQL mungkin mengatur data menjadi objek, kunci / nilai berpasangan atau tupel.

Pengantar Quantum Computation

I. Pendahuluan

Quantum Computation sendiri adalah bidang studi yang difokuskan pada teknologi komputer berkembang berdasarkan prinsip-prinsip teori kuantum , yang menjelaskan sifat dan perilaku energi dan materi pada kuantum (atom dan subatom) tingkat.

Ada juga Quantum Computer. Lalu apa bedanya dengan Quantum Computer?

Quantum Computer adalah alat untuk perhitungan yang menggunakan langsung dari kuantum mekanik fenomena, seperti superposisi dan belitan , untuk melakukan operasi pada Data. Cara kerja quantum computer sendiri berbeda dengann komputer bisanya. Dalam komputasi klasik, jumlah data dihitung dengan bit dalam komputer kuantum hal ini dilakukan dengan qubit (quantum bit) yang berarti jika di komputer biasa hanya mengenal 0 atau 1, dengan qubit sebuah komputer quantum dapat mengenal keduanya secara bersamaan dan itu membuat kerja dari komputer quantum itu lebih cepat dari pada komputer biasa.

  1. Entanglement

Setelah sedikit memahami apa itu quantum computation dan quantum  computer kita akan memasuki pembahasan dari Entanglement. Entanglement sendiri masih bagian dari Quantum Computation. Apa itu Entanglement? Entanglement adalah suatu teori mekanika quantum yang menggambarkan seberapa cepat dan betapa kuatnya keterhubungan partikel-partikel pada Quantum computer yang dimana jika suatu partikel diperlakukan “A” maka akan memberikan dampak “A” juga ke partikel lainnya.

Ada juga pemahaman lain tentang Entanglement menurut Albert Einsten “Entanglement Kuantum” di istilahkan “Perbuatan Sihir Jarak Jauh” yang merupakan sifat dasar mekanika kuantum. Entanglement memungkinkan informasi kuantum tersebar dalam puluhan ribu kilometer, dan hanya dibatasi oleh seberapa cepat dan seberapa banyak pasangan entanglement dapat bekerja dalam ruang. Dari sumber yang saya dapatkan dari internet : [Quantum entanglement]  merupakan fenomena yang menghubungkan dua partikel sedemikian rupa sehingga perubahan yang terjadi pada satu partikel seketika itu juga tercermin dalam partikel lainnya, meski mungkin secara fisik diantara mereka terpisah beberapa tahun cahaya.

III. 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
Bit digambarkan oleh statusnya, 0 atau 1. Begitu pula, qubit digambarkan oleh status quantumnya. Dua status quantum potensial untuk qubit ekuivalen dengan 0 dan 1 bit klasik. Namun dalam mekanika quantum, objek apapun yang memiliki dua status berbeda pasti memiliki rangkaian status potensial lain, disebut superposisi, yang menjerat kedua status hingga derajat bermacam-macam.

  1. Quantum Gates

Gate sendiri dalam bahasa Indonesia adalah Gerbang.jadi Quantum Gates adalah sebuah gerbang kuantum yang dimana berfungsi mengoperasikan bit yang terdiri dari 0 dan 1 menjadi qubits. dengan demikian Quantum gates mempercepat banyaknya perhitungan bit pada waktu bersamaan.

Contoh dari Quantum Gates : https://youtu.be/0XJp3akoocY

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

Sumber :

http://www.faktailmiah.com/2010/08/06/kemajuan-jaringan-kuantum-dengan-entanglement-foton-pada-kubit-keadaan-padat.html

http://rcaesario.blogspot.com/2013/04/pengantar-quantum-computation.html

http://djuneardy.blogspot.com/2015/04/quantum-computing-entanglement.html
http://mynewsworthy99.blogspot.com/2013/05/pengantar-quantum-computation.html