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 :

Tidak ada komentar:

Posting Komentar