Selasa, 19 Juni 2018

Tugas 3 Pengantar Komputasi Modern

Pararel Computing CUDA

CUDA adalah platform komputasi paralel dan antarmuka pemrograman aplikasi (API) yang dibuat oleh Nvidia. Hal ini memungkinkan pengembang perangkat lunak dan insinyur perangkat lunak untuk menggunakan unit pemrosesan grafis (GPU) berkemampuan CUDA untuk pemrosesan tujuan umum - sebuah pendekatan yang diistilahkan GPGPU (komputasi General-Purpose pada Unit Pemrosesan Grafik). Platform CUDA adalah lapisan perangkat lunak yang memberikan akses langsung ke set instruksi virtual GPU dan elemen komputasi paralel, untuk eksekusi kernel komputasi.

Platform CUDA dirancang untuk bekerja dengan bahasa pemrograman seperti C, C ++, dan Fortran. Aksesibilitas ini memudahkan para ahli dalam pemrograman paralel untuk menggunakan sumber daya GPU, berbeda dengan API sebelumnya seperti Direct3D dan OpenGL, yang membutuhkan keterampilan tingkat lanjut dalam pemrograman grafis. Selain itu, CUDA mendukung kerangka kerja pemrograman seperti OpenACC dan OpenCL. Ketika pertama kali diperkenalkan oleh Nvidia, nama CUDA adalah akronim untuk Compute Unified Device Architecture, tetapi Nvidia kemudian menjatuhkan penggunaan akronim. 

Image result for pararel computing cuda

  • Kemampuan  Program 
Platform CUDA dapat diakses oleh pengembang perangkat lunak melalui perpustakaan yang dipercepat CUDA, arahan kompilator seperti OpenACC, dan ekstensi untuk bahasa pemrograman standar industri termasuk C, C ++ dan Fortran. Programmer C / C ++ menggunakan 'CUDA C / C ++', dikompilasi dengan nvcc, kompiler C / C ++ berbasis LLVM dari Nvidia. Programmer Fortran dapat menggunakan 'CUDA Fortran', yang dikompilasi dengan compiler PGI CUDA Fortran dari The Portland Group.Selain pustaka, arahan kompilator, CUDA C / C ++ dan CUDA Fortran, platform CUDA mendukung antarmuka komputasi lainnya, termasuk OpenCL Khronos Group, Microsoft DirectCompute, OpenGL Compute Shaders, dan C ++ AMP. Pembungkus pihak ketiga juga tersedia untuk Python, Perl, Fortran, Java, Ruby, Lua, Common Lisp, Haskell, R, MATLAB, IDL, dan dukungan asli di Mathematica.

Dalam industri permainan komputer, GPU digunakan untuk perenderan grafis, dan untuk perhitungan fisika permainan (efek fisik seperti puing, asap, api, cairan); contoh termasuk PhysX dan Bullet. CUDA juga telah digunakan untuk mempercepat aplikasi non-grafis dalam biologi komputasi, kriptografi dan bidang lainnya dengan urutan besarnya atau lebih.

CUDA menyediakan API tingkat rendah dan API tingkat yang lebih tinggi. CUDA SDK awal dibuat publik pada 15 Februari 2007, untuk Microsoft Windows dan Linux. Dukungan Mac OS X kemudian ditambahkan dalam versi 2.0,yang menggantikan versi beta yang dirilis 14 Februari 2008. CUDA bekerja dengan semua GPU Nvidia dari seri G8x dan seterusnya, termasuk GeForce, Quadro dan garis Tesla. CUDA kompatibel dengan sebagian besar sistem operasi standar. Nvidia menyatakan bahwa program yang dikembangkan untuk seri G8x juga akan bekerja tanpa modifikasi pada semua kartu video Nvidia masa depan, karena kompatibilitas biner. 

CUDA 8.0 dilengkapi dengan pustaka berikut (untuk kompilasi & waktu proses, dalam urutan abjad):
  1.     CUBLAS - CUDA Basic Linear Aljabar subrutin perpustakaan
  2.     CUDART - CUDA RunTime library
  3.     CUFFT - CUDA Transformasi Fourier Cepat
  4.     CURAND - CUDA Random Number Generation library
  5.     CUSOLVER - Koleksi berbasis CUDA dari pemecah langsung padat dan jarang
  6.     CUSPARSE - CUDA Sparse Matrix library
  7.     NPP - pustaka Kinerja NVIDIA Primitif
  8.     NVGRAPH - pustaka Analisis Grafik NVIDIA
  9.     NVML - Pustaka Manajemen NVIDIA
  10.     NVRTC - NVIDIA RunTime Compilation library untuk CUDA C ++

CUDA 8.0 dilengkapi dengan komponen perangkat lunak lain ini:

  1.     nView - NVIDIA nView Desktop Management Software
  2.     NVWMI - Toolkit Manajemen Perusahaan NVIDIA(chm)
  3.     PhysX - GameWorks PhysX adalah mesin permainan fisika multi-platform,

Jumat, 18 Mei 2018

Tugas Pengantar Komputasi Modern ( Komputasi Quantum)

Komputasi kuantum


Image result for komputasi kuantum

Apa itu komputasi kuantum?
Komputasi kuantum adalah teknologi baru yang mencoba mengatasi keterbatasan tertentu dari komputer berbasis transistor tradisional. Komputer berbasis transistor bergantung pada pengkodean data dalam bit biner baik 0 atau 1. Komputer kuantum menggunakan qubit yang sangat berbeda walaupun memungkinkan untuk mengkodekan data biner dalam qubit, nilainya seringkali superposisi yang berarti nilai adalah 0 dan 1 pada waktu yang sama. Qubit juga dapat berisi dua bit data biner dalam sebuah proses yang disebut pengkodean superdense. Ini berteori bahwa komputer kuantum akan mampu melakukan perhitungan untuk memecahkan masalah tertentu lebih cepat daripada komputer tradisional.
Dengan teknologi ini, tugas komputasi intensif yang pada saat ini biasanya ditangani oleh komputer superkomputer lipatan protein misalnya secara teoritis dapat dilakukan oleh komputer kuantum dengan biaya energi lebih rendah daripada superkomputer berbasis transistor. Sebagai teknologi di balik komputer kuantum yang matang, kemungkinan mereka akan menjadi lebih cepat pada tugas seperti itu daripada komputer tradisional, walaupun ini memerlukan penyempurnaan yang signifikan pada teknik pembuatan prosesor kuantum dan pendekatan baru untuk pemrograman komputer yang mengetahui sifat non-biner dari qubit
Mengapa komputasi kuantum penting?
Secara teori, komputasi kuantum akan menghasilkan terobosan dalam faktorisasi bilangan bulat. Ini akan memiliki implikasi serius untuk sistem enkripsi yang umum digunakan, seperti RSA yang menggunakan kriptografi kunci publik. Algoritma Shor menunjukkan kelayakan teknis dari faktorisasi utama, meskipun saat ini jumlah terbesar yang diakumulasikan menggunakan komputer kuantum dengan menggunakan algoritma ini adalah 21. Karena prospek komputer kuantum yang layak di masa depan, penelitian kriptografi berbasis kisi yang merupakan Tidak diketahui oleh komputer kuantum telah meningkat. Komputer kuantum harus mampu menyelesaikan tugas komputasi yang tidak layak dilakukan pada komputer tradisional.
Pada bulan Januari 2014, laporan menunjukkan bahwa NSA telah mengeluarkan $ 79,7 juta untuk sebuah program berjudul “Penetrating Hard Targets”. Sebagai bagian dari program ini, penelitian telah dilakukan untuk membangun “komputer kuantum yang sangat kriptologis”. Dokumen yang dikutip dalam laporan ini menunjukkan bahwa NSA belum cukup berhasil dibandingkan peneliti lain.
Siapa yang menghitung komputasi kuantum ?
Saat ini, terutama para periset berbagai perusahaan IT berinvestasi dalam penelitian komputasi kuantum dengan Intel menyediakan $ 50 juta pada tahun 2015 ke Universitas Teknologi Delft dan Organisasi Riset Terapan Belanda, serta memberikan dukungan teknik untuk usaha tersebut. IBM, Google, dan Microsoft juga memimpin upaya penelitian mereka sendiri dengan yang pertama mengumumkan pada bulan April 2015 sebuah alat untuk mendeteksi kesalahan flip dan flip-fase secara simultan yang merupakan langkah maju yang signifikan dalam koreksi kesalahan untuk komputasi kuantum.
IBM telah mengumumkan ketersediaan IBM Q, sebuah layanan yang melaluinya pengguna dapat memanfaatkan sistem komputasi kuantum IBM. Saat ini IBM mengklaim bahwa Q terbatas pada sekitar lima qubit, meskipun perusahaan berencana untuk memperluas ke sekitar 50 qubit dalam beberapa tahun ke depan. Google merancang sistem 49 qubit yang diperkirakan akan beroperasi pada akhir 2017.
Bagaimana cara mendapatkan komputer kuantum?
Sistem DQ Wave 2000Q berharga $ 15 juta untuk dibeli langsung, meskipun pembeli penting termasuk Volkswagen Group dan Virginia Tech. Bagaimanapun komputer kuantum bukanlah sesuatu yang mungkin Anda temukan di toko besar lokal Anda. Namun jika beban kerja Anda lebih umum, membangun dan membeli penyebaran POWER9 kemungkinan nilai yang lebih baik. Superkomputer Laboratorium SUMMIT Oak Ridge National Laboratory adalah sistem POWER9 dan NVIDIA Volta yang direncanakan pada 4600 node dengan kinerja komputasi lebih dari 40 teraflops per node.