Friday, 21 June 2019

Pengantar Pemrograman Cuda GPU

Analisa antara 2 jurnal.
Jurnal pertama : 

Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK)
Optimasi Rendering Game 2D Asteroids Menggunakan Pemrograman CUDA

Jurnal kedua :
Jurnal Seminar Nasional Aplikasi Teknologi Informasi (SNATi) 2015
Analisis Perbandingan Komputasi GPU dengan CUDA dan Komputasi CPU untuk Image dan Video Processing


Latar Belakang

Jurnal 1:
Tujuan diadakan penelitian video game Asteroids sebagai objek adalah untuk meningkatkan performa secara umum. Peningkatan performa dari video game adalah dengan memanfaatkan interoperability dari CUDA dan OpenGL. Hasil dari penelitian ini adalah membandingkan perbedaan performa antara video game yang memanfaatkan interoperability CUDA dan OpenGL dibandingkan dengan video game tanpa memanfaatkan interoperability dari CUDA dan OpenGL. Batasan dari penelitian ini adalah video game Asteroids dengan memanfaatkan freeglut sebagai windowing library dan OpenGl sebagai rendering library

Jurnal 2:
Penelitian ini bertujuan untuk menerapkan teknik komputasi dengan teknologi CUDA dan memaparkan hasil kinerja dari perbandingan antara komputasi paralel GPU menggunakan CUDA dengan komputasi sekuensial CPU menggunakan OpenCV



Metode
Jurnal 1:
Game 2D Asteroids akan dilakukan proses improvement, dengan menggunakan GPU. Di dalam sebuah game pasti memiliki main loop. Pada main loop tersebut, sebuah proses pasti dilakukan secara berulang, dan hal inilah yang menjadi peluang untuk dilakukan pengoptimalan dengan pemrograman CUDA. agar proses yang dilakukan dapat berjalan lebih cepat.

Jurnal 2:
Penelitian ini terbgai menjadi dua bagian, yaitu membandingkan antara komputasi CPU dengan komputasi GPU untuk image processing dan video processing. Operasi yang dilakukan adalah grayscale, negatif dan deteksi tepi dengan metode sobel filter. Pemrograman yang digunakan untuk komputasi CPU adalah OpenCV sedangkan untuk komputasi GPU menggunakan CUDA.


Analisa Perbandingan
Jurnal 1:
Berdasarkan hasil pengujian CPU dan dengan menggunakan GPU, dapat dilihat hasilnya secara visualisasi. Berdasarkan hasil tersebut, dapat dianalisis bahwa hasil nilai-nilai utilization, speed, processes, thread dan handles yang menggunakan GPU relatif lebih kecil dari pada kode yang di eksekusi menggunakan CPU.

Berdasarkan data yang telah didapatkan dari pengujian, hasil percobaan menunjukkan bahwa implementasi dengan menggunakan pemrograman GPU dapat mengurangi utilization pada CPU. Dan pada percobaan menggunakan hanya CPU, terkadang terjadi spiking. Sedangkan ketika dilakukan implementasi dengan GPU, utilization dari CPU relatif stabil dan tidak terlihat adanya peningkatan kinerja yang signifikan.

Jurnal 2:
Pada perbandingan grayscale terlihat bahwa waktu proses antara CUDA dan OpenCV berkisar 0.001 hingga 0.006 detik untuk ukuran 1024x768 serta untuk ukuran 7000x5000 waktu proses maksimal hanya berselisih 0.3 detik untuk keunggulan CUDA

Pada perbandingan negatif terlihat bahwa waktu proses antara CUDA dan OpenCV untuk ukuran 1024x760 maksimal hanya berselisih 0.03 detik. Seiring ukuran bertambah besar selisih waktu semakin meningkat yakni dari selisih 0.1 detik untuk ukuran 1900x2500, 0.5 detik untuk ukuran 4000x2500 hingga berselisih satu hingga dua detik untuk ukuran 7000x5000 dengan keunggulan CUDA

Pada perbandingan deteksi tepi tampak selish waktu yakni untuk ukuran 1024x760 mencapai 0.4 detik, kemudian untuk ukuran 1900x1200 mencapai satu detik dan ukuran 4000x2500 mencapai lima detik serta untuk ukuran 
7500x5000 mencapai 14 detik untuk keunggulan CUDA.


Penutup

Jurnal 1:
Hasil percobaan dapat disimpulkan   bahwa implementasi GPU dapat mengurangi utilization pada CPU. Pada percobaan CPU tanpa GPU, penggunaan CPU kadang terjadi spiking. Sedangkan pada implementasi GPU, utilization dari CPU relatif stabil. Hal  yang  sama juga terjadi  pada speed. Kemudian pada bagian processes, threads, dan handles penggunaan dengan GPU relatif lebih rendah dibandingkan  penggunaan CPU tanpa GPU. Kemudian  untuk  hasil  yang  didapatkan  dari  GPU adalah tidak adanya aktifitas  yang  signifikan pada CPU, karena proses yang awalnya berjalan pada CPU dipindahkan ke GPU. Akibat implementasi tersebut maka  hasil pengoptimalan dapat  tercapai. Sehingga dapat disimpulkan bahwa penggunaan GPU dapat meningkatkan performa dibandingkan dengan implementasi CPU, meskipun tidak terlihat peningkatan performa secara signifikan, terutama dari segi tampilan grafis 2D.

Jurnal 2:
Teknologi  CUDA  untuk  komputasi  paralel  menggunakan GPU menunjukkan keunggulan terhadap komputasi sekuensial menggunakan CPU. Berdasarkan pengujian tersebut, diketahui bahwa  selisih  kedua  komputasi  untuk image processing tidak begitu  besar  terutama  untuk  operasi grayscale dan  negatif. Namun untuk operasi deteksi tepi, makin besar ukuran gambar semakin terlihat kecepatan proses CUDA hingga 2.8 kali lipat lebih cepat dari pada OpenCV yang didapat pada ukuran gambar 7500x5000. Hal ini disebabkan pada perbedaan algoritme pada tiap operasi. Pada operasi grayscale dan negatif memiliki algoritme yang hampir mirip yakni cukup menggunakan satu persamaan untuk mengubah warna  tiap pixel gambar. 




Friday, 3 May 2019

Komputasi Grid


Judul Jurnal : Komputasi Grid Berbasiskan Grid Resources for Industrial Application untuk Pertukaran Data
Penulis : Brave A. Sugiarto S.T, M.T
- Latar Belakang
Komputasi grid dapat dilihat sebagai model komputasi terdistribusi yang mendukung konsep organisasi dinamis virtual dengan memberikan akses yang aman, terkoordinasi dan berbagi sumber daya yang heterogen dan tersebar secara geografis. Sumber daya tersebut berupa aplikasi, data, daya prosesor, bandwidth jaringan, kapasitas penyimpanan dan lain-lain. Komputasi grid dapat dilakukan melalui jaringan dan melintasi batas-batas organisasi. Hal ini dapat dilakukan dengan menggunakan suatu pengaturan standar dan protokol terbuka. Para pengguna grid melihat sumber daya ini sebagai komputer virtual yang besar. Istilah grid, diciptakan di pertengahan tahun 90-an dalam dunia akademik. Pada awalnya, komputasi grid diajukan untuk menunjukkan sebuah sistem komputasi terdistribusi yang menyediakan layanan komputasi on demand seperti yang dilakukan dalam grid listrik konvensional dan air. Dalam bidang akademik, grid telah membentuk kelompok masyarakat menjadi bagian dari organisasi virtual (misalnya Alice, Atlas, CMS, LHCb) yang memfasilitasi pembagian sumber daya antar anggota- anggotanya. Salah satu kegiatan yang cukup menonjol dalam bidang akademik adalah proyek EGEE II (Enabling Grids for E-scincE) [1]. Proyek EGEE II telah menyatukan peneliti lebih dari 27 negara. Secara umum, proyek EGEE II ini bertujuan untuk mengembangkan infrastruktur layanan grid yang cocok bagi setiap penelitian ilmiah. Layanan grid sangat dibutuhkan terutama jika berkenaan dengan masalah waktu dan sumber daya yang diperlukan dalam menjalankan aplikasi yang dianggap tidak praktis bila menggunakan infrastruktur teknologi informasi (IT) tradisional (misalnya prakiraan cuaca, protein lipat, dan lain-lain). Dimana sistem IT tradisional ini dibangun berdasarkan pada pusat data milik sendiri yaitu dirumah atau dikantor sehingga membutuhkan spesifikasi perangkat yang besar serta mahal.
Selama beberapa tahun terakhir ini, sebagai teknologi yang sedang dikembangkan, konsep grid mulai dieksplorasi untuk kepentingan komersial. Sedikit perubahan tetapi telah mempengaruhi arti yang sangat besar terhadap definisi awalnya. Saat ini, grid didefinisikan sebagai suatu sistem dengan ciri-ciri sebagai berikut [2-3] :
1. Mengkoordinasi beberapa sumber daya yang pusat kendalinya tidak terletak pada satu subyek. 

2. Menggunakan antarmuka dan protokol standar, terbuka dan dapat digunakan secara umum (general-purpose). 

3. Untuk memberikan kualitas non-trivial dari layanan. Sebuah Grid memungkinkan penggunaan sumber daya yang dapat memberikan quality of service yang berbeda contohnya dalam hal waktu respon, throughput, ketersediaan sumber daya, keamanan, dan/atau penggunaan beberapa jenis sumber daya yang sesuai dengan kebutuhan pengguna. 
Sebuah komputasi grid adalah infrastruktur perangkat 

keras dan perangkat lunak yang dapat diandalkan, konsisten, menyeluruh, dan akses yang murah untuk kemampuan komputasi high-end. Sebagai teknologi yang belum matang, khususnya dalam implementasi grid di dunia nyata, maka jenis grid dapat digambarkan sebagai berikut [4-5]:
1. Grid Komputasi (computational grid)
Sebuah komputasi grid merupakan grid yang memiliki kekuatan pemrosesan sebagai sumber komputasi utama yang di-share antar node-nodenya. Ini adalah jenis grid yang paling umum dan telah digunakan untuk melakukan komputasi berkinerja tinggi untuk menangani pekerjaan processing-demanding.
4. Grid Data (data grid)
Grid data memiliki kapasitas penyimpanan data sebagai sumber utama yang di-share. Sebagai sebuah grid yang dapat dianggap sebagai sebuah sistem penyimpanan data yang besar yang dibangun dari sejumlah besar perangkat penyimpanan. 

5. Grid Jaringan (network grid)
Grid jaringan juga dikenal dengan nama (delivery grid) grid pengiriman. Sebagaimana grid yang memiliki tujuan utama yaitu untuk memberikan layanan fault- tolerant dan layanan komunikasi berkinerja tinggi, sehingga setiap node grid bekerja sebagai router data antara dua titik komunikasi. Router data ini menyediakan data-caching dan fasilitas lainnya yang mempercepat komunikasi antara titik-titik tersebut. 

-Metode
Data yang digunakan dalam pengujian adalah 30 data uji yang terdiri dari 3 kelompok jenis berkas yang mewakili berkas teks, gambar dan audiovideo. Tiga kelompok ini masing-masing terdiri dari 10 berkas teks berekstensi pdf, 10 berkas gambar berekstensi jpg dan 10 berkas audiovideo berekstensi flv. Gambar 2 menunjukkan diagram alir dari pengujian terhadap layanan data. Data masukan yang digunakan adalah ke-30 data uji yang diunggah (upload) oleh klien ke tempat penyimpanan data grid atau provider. Data uji ini bervariasi dari segi kapasitas maupun jenis ekstensinya. Dari segi jenis ekstensi, data masukannya berupa berkas dengan ekstensi jpg (kompresi gambar), flv (video) dan pdf (teks). Ragam jenis berkas yang dipilih untuk penelitian ini adalah jenis berkas yang paling sering digunakan. Data uji ini diunggah dan disimpan di service provider yang terletak di Southtampton University Inggris. Selama melakukan unggahan, dilakukan pengamatan terhadap lamanya waktu unggah dan besar rata-rata bandwidth yang tersedia pada saat unggahan. Pengamatan waktu dan bandwidth berlaku untuk setiap data uji yaitu 30 berkas data uji. Pengamatan seperti ini juga berlaku pada saat data uji tersebut diunduh. Data uji digunakan untuk menghitung keandalan GRIA dari segi waktu pada bandwidth yang tersedia. Semua hasil pengamatan dibuatkan kedalam sebuah tabel. Dari tabel ini diperoleh nilai rata-rata waktu dan bandwidth dari semua data uji. Nilai-nilai inilah yang digunakan sebagai indikasi keandalan komputasi grid yang berbasiskan GRIA.

-TANGGAPAN
Dari melihat nilai-nilai hasil uji coba GRID Komputasi ini, dapat menunjukkan keandalan sebuah komputasi grid.

REFERENSI:
The Enabling Grids for E-sciencE (EGEE) project. Tersedia di : http://www.eu-egee.org/
[2] I. Foster, ,”What is the Grid? A Three Point Checklist”, 2002.
[3] I. Foster, C. Kesselman, The Grid 2, Blueprint for a New Computing
Infrastructure, Morgan Kaufmann, San Fransisco , 2004, p. 46.
[4] L.Ferreira, F. Lucchese, T.Yasuda, Y. L.Chin, C.A.Queiroz, , E.Minetto , A.Mungioli ,”Grid Computing Products and Services”, 1st edition, IBM Corporation, New Y ork, 2005.
[5] L.Ferreira, F. Lucchese, T.Yasuda, Y. L.Chin, C.A.Queiroz, , E.Minetto , A.Mungioli, ” Grid Computing in Research and
[13] The [14] The [15] The [16] The [17] The
DataGrid project.Tersedia di : http://www.eu-datagrid.org
Condor project. Tersedia di : http://www.cs.wisc.edu/condor International Community W3C . Tersedia di : http://www.w3.org ActiveState Software Inc. Tersedia di : http://www.activestate.com
Education”, 1
edition, IBM Corporation, New York, 2005.
[6] I.Foster, , C.Kesselmen , dan S.Tuecke, ,” The Anatomy of the Grid: Enabling Scalable Virtual Organizations”, International Journal Supercomputer Applications, 15(3), 2001, pp. 200-222.
[7] I.Foster, , C.Kesselmen, J.Nick, , S.Tuecke ,”The Physiology of the Grid: An Open Grid Services Architecture for Distributed Systems Integration”, In Open Grid Service Infrastructure WG, Global Grid Forum, 2002.
[8] The Globus Alliance. Tersedia di : http://www.globus.org
[9] The GRIA Project. Tersedia di : http://www.gria.org
[10] WS-I Basic Profile 2.0 reference. Tersedia di : http://ws- i.org/Profiles/BasicProfile-2.0-2010-11-09.html
[11] WS-I Basic Security Profile 1.0 reference. Tersedia di : http://www.ws-i.org/Profiles/BasicSecurityProfile-1.0-Errata.html
[12] M.Surridge, S.Taylor, D. D. Roure dan E.Zaluska, ,”Experiences with GRIA – Industrial applications on a Web Services Grid”, Proceedings of the First International Conference on e-Science and Grid Computing (e-Science ’05), Southampton, 2005.
ImageMagick Studio LLC. Tersedia di : http://www.imagemagick.org


Friday, 5 April 2019

komputasi modern


Nama    : Agung Anugrah Asril
NPM      : 50415271
Kelas     : 4ia05
1. Teori Komputasi Modern
                Komputasi modern adalah sebuah konsep sistem yang menerima intruksi-intruksi dan menyimpannya dalam sebuah memory, memory disini bisa juga dari memory komputer. Oleh karena pada saat ini kita melakukan komputasi menggunakan komputer maka bisa dibilang komputer merupakan sebuah komputasi modern. Konsep ini pertama kali digagasi oleh John Von Neumann (1903-1957). Beliau adalah ilmuan yang meletakkan dasar-dasar komputer modern.
2. Implementasi dalam bidang fisika
Penerapan Komputasi Modern di bidang fisika ada Computational Physics yang mempelajari suatu gabungan antara Fisika, Komputer Sains dan Matematika Terapan untuk memberikan solusi pada “Kejadian dan masalah yang kompleks pada dunia nyata” baik dengan menggunakan simulasi juga penggunaan algoritma yang tepat. Pemahaman fisika pada teori, eksperimen, dan komputasi haruslah sebanding, agar dihasilkan solusi numerik dan visualisasi / pemodelan yang tepat untuk memahami masalah Fisika.Untuk melakukan pekerjaan seperti evaluasi integral, penyelesaian persamaan differensial, penyelesaian persamaan simultan, mem-plot suatu fungsi/data, membuat pengembangan suatu seri fungsi, menemukan akar persamaan dan bekerja dengan bilangan kompleks yang menjadi tujuan penerapan fisika komputasi. Banyak perangkat lunak ataupun bahasa yang digunakan, baik MatLab, Visual Basic, Fortran, Open Source Physics (OSP), Labview, Mathematica, dan lain sebagainya digunakan untuk pemahaman dan pencarian solusi numerik dari masalah-masalah pada Fisika komputasi.
3. Referensi