Anda di halaman 1dari 9

LAPORAN TUGAS BESAR

SISTEM TERDISTRIBUSI
Pengembangan aplikasi kalkulator matriks menggunakan arsitektur
paralel pada GPU

Laporan ini disusun untuk memenuhi salah satu tugas mata kuliah Sistem Terdistribusi

Oleh:
Kelompok: 6
201524017 Muhammad Fikri Hidayatulloh

211524012 Hanri Fajar Ramadhan

211524032 Zahri Al Adzani Hidayat

D4 Teknik Informatika
Jurusan Teknik Komputer dan Informatika
Politeknik Negeri Bandung
2023/2024
Daftar Isi

A. Pendahuluan...................................................................................................................... 3
a. Deskripsi Singkat............................................................................................................3
b. Peran Anggota kelompok............................................................................................... 3
B. Analisis............................................................................................................................... 3
a. Alasan Pemilihan Solusi.................................................................................................3
b. Model Sistem................................................................................................................ 4
C. Perancangan...................................................................................................................... 7
a. Arsitektur Sistem dan Jaringan...................................................................................... 7
b. Alur Proses Aplikasi....................................................................................................... 8
D. (UAS)Implementasi............................................................................................................8
A. Pendahuluan
a. Deskripsi Singkat
Pengembangan aplikasi kalkulator matriks menggunakan arsitektur paralel
pada GPU menjawab tuntutan akan komputasi yang cepat dan efisien dalam
berbagai bidang IPTek, dan industri. Dengan evolusi kebutuhan komputasi yang
semakin meningkat, terutama dalam konteks pemrosesan gambar, video, machine
learning, dan simulasi fisika, operasi matriks menjadi semakin krusial. CPU, dengan
keterbatasan pada jumlah core dan bandwidth, menghadirkan hambatan dalam
komputasi paralel, sehingga GPU, dengan ribuan core yang dapat bekerja secara
bersamaan, menawarkan keunggulan yang sangat baik. Meskipun tantangan seperti
optimasi kode dan manajemen memori perlu diatasi, pengembang memiliki peluang
besar untuk menciptakan solusi yang efisien dalam pemrosesan matriks dan
komputasi paralel secara, untuk memenuhi kebutuhan akan komputasi yang semakin
kompleks dan meningkat.
b. Peran Anggota kelompok
1. Muhammad Fikri Hidayatulloh
- Merancang model sistem
- Mengimplementasi Penjumlahan Matriks
- Mengimplementasi Pengurangan Matriks
2. Hanri Fajar Ramadhan
- Merancang deskripsi singkat aplikasi yang dikembangkan
- Mengimplementasi Perkalian Matriks
- Mengimplementasi Main Program dan integrasi
3. Zahri Al Adzani Hidayat
- Memilih topik aplikasi yang akan dikembangkan
- Merancang alasan pemilihan solusi
- Mengimplementasi Invers Matriks
- Mengimplementasi Determinan Matriks

B. Analisis
a. Alasan Pemilihan Solusi
Pemilihan solusi untuk menggunakan GPU adalah adanya keterbatasan
dalam compute power pada CPU. Dengan menggunakan GPU pemrosesan matrik
secara paralel menggunakan GPU dapat meningkatkan kinerja aplikasi kalkulator
matriks secara signifikan. GPU memiliki kemampuan paralel yang sangat baik,
memungkinkan operasi matriks yang besar untuk dieksekusi dengan efisien.Selain
itu aplikasi ini dapat dengan mudah disesuaikan dengan ukuran matriks yang lebih
besar, karena GPU memiliki kemampuan skalabilitas yang baik.

b. Model Sistem
Model sistem yang dibuat akan berfokus untuk meminimalkan beban kerja
CPU dengan memanfaatkan GPU yang memiliki dukungan teknologi CUDA
(Compute Unified Device Architecture). Dengan pendekatan ini, aplikasi kalkulator
matriks akan mentransfer pekerjaan yang melibatkan komputasi matriks ke GPU,
membebaskan CPU lainnya dan meningkatkan kinerja secara keseluruhan.
Komponen-komponen dalam sistem akan dioptimalkan untuk memanfaatkan
kemampuan paralelitas yang dimiliki GPU, sehingga operasi matriks dapat dijalankan
dengan efisiensi yang tinggi. Dengan demikian, model sistem ini akan menciptakan
lingkungan komputasi yang lebih efisien dan kuat, menjadikan aplikasi kalkulator
matriks menjadi lebih responsif dan cepat dalam menangani operasi matriks yang
kompleks.
Adapun fitur beberapa fitur yang dapat diuntungkan dari model sistem ini,
antara lain :

Fitur aplikasi
1. Operasi Penjumlahan Matriks:

Fitur ini memungkinkan pengguna untuk menjumlahkan dua atau lebih matriks.
Pengguna dapat memasukkan matriks yang ingin dijumlahkan, dan aplikasi akan
melakukan operasi penjumlahan sesuai dengan aturan matematika yang berlaku
untuk matriks.
2. Operasi Pengurangan Matriks:
Fitur ini memungkinkan pengguna untuk mengurangkan satu matriks dari matriks
lainnya. Pengguna dapat memasukkan matriks yang ingin dikurangkan, dan aplikasi
akan melakukan operasi pengurangan sesuai dengan aturan matematika yang
berlaku untuk matriks.
3. Operasi Perkalian Matriks:

Fitur ini memungkinkan pengguna untuk mengalikan dua atau lebih matriks.
Pengguna dapat memasukkan matriks yang ingin dikalikan, dan aplikasi akan
melakukan operasi perkalian sesuai dengan aturan matematika yang berlaku untuk
matriks.

4. Operasi Invers Matriks:

Fitur ini memungkinkan pengguna untuk menghitung invers dari sebuah matriks.
Pengguna dapat memasukkan matriks yang ingin dihitung inversnya, dan aplikasi
akan melakukan perhitungan invers sesuai dengan aturan matematika yang berlaku
untuk matriks.
5. Operasi Menghitung Determinan Matriks:
Fitur ini memungkinkan pengguna untuk menghitung determinan dari sebuah
matriks. Pengguna dapat memasukkan matriks yang ingin dihitung determinannya,
dan aplikasi akan melakukan perhitungan determinan sesuai dengan aturan
matematika yang berlaku untuk matriks.

Operasi-operasi matriks seperti penjumlahan, pengurangan, perkalian, invers, dan


perhitungan determinan sangat diuntungkan dengan paralelitas GPU karena alasan-alasan
berikut:

● Ribuan Core yang Bekerja Secara Bersamaan: GPU memiliki ribuan core yang
dapat bekerja secara bersamaan, sementara CPU biasanya memiliki jumlah core
yang lebih terbatas. Dengan demikian, operasi matriks yang dapat dipecah menjadi
tugas-tugas yang independen dapat dijalankan secara paralel oleh banyak core GPU
secara efisien, menghasilkan peningkatan kinerja yang signifikan dibandingkan
dengan CPU.
● Optimasi Teknologi CUDA: Teknologi CUDA pada GPU dirancang khusus untuk
komputasi paralel, termasuk operasi-operasi matriks. Pengembang dapat
mengoptimalkan kode aplikasi untuk memanfaatkan fitur-fitur paralel pada GPU
melalui CUDA, seperti menggunakan CUDA threads untuk memproses
elemen-elemen matriks secara paralel, mengurangi waktu eksekusi secara
signifikan.
● Membebaskan CPU untuk Tugas Lain: Dengan memindahkan beban komputasi
matriks ke GPU, CPU dapat dibebaskan untuk menangani tugas-tugas lainnya dalam
sistem, seperti interaksi pengguna, pengelolaan memori, atau tugas-tugas lain yang
memerlukan CPU. Hal ini mengoptimalkan penggunaan sumber daya sistem secara
keseluruhan.
● Efisiensi dan Skalabilitas: Penggunaan GPU untuk operasi-operasi matriks
memberikan efisiensi yang tinggi karena GPU dirancang khusus untuk komputasi
paralel dan memiliki arsitektur yang memungkinkan skalabilitas yang baik. Dengan
demikian, aplikasi dapat mengelola matriks yang lebih besar atau lebih kompleks
dengan waktu eksekusi yang lebih singkat.
● Peningkatan Responsivitas Aplikasi: Dengan menggunakan GPU untuk
operasi-operasi matriks, aplikasi kalkulator matriks akan menjadi lebih responsif dan
cepat dalam menangani operasi matriks yang kompleks, meningkatkan pengalaman
pengguna secara keseluruhan.

Adapun arsitektur proses yang akan berlaku adalah sebagai berikut

C. Perancangan
a. Arsitektur Sistem dan Jaringan
Arsitektur komputasi yang menjadi arsitekktur pokok pada aplikasi adalah
SIMT (Singgle Instruction Multiple Threads). Arsitektur ini sangat digunakan
pada hardware multiprosesor modern seperti GPU NVIDIA, mengatur thread
ke dalam kelompok yang disebut warps. Setiap warp terdiri dari 32 thread
paralel yang menjalankan instruksi yang sama secara bersamaan. Arsitektur
ini sangat cocok untuk tugas-tugas paralel seperti penghitungan matriks
karena memungkinkan paralelisme secara masif, memungkinkan komputasi
simultan di beberapa elemen data.

Salah satu keuntungan signifikan dari arsitektur ini, terutama dengan


implementasi Volta dan Penjadwalan Thread secara Independen, adalah
pemanfaatan yang efisien dari warps ini. Ketika aplikasi kalkulator matriks
mengeksekusi operasi pada matriks, setiap thread dalam warp dapat secara
independen memproses elemen matriks yang berbeda. Kemampuan
pemrosesan paralel ini secara signifikan mempercepat kecepatan komputasi,
terutama untuk matriks besar di mana beban kerja dapat didistribusikan
secara efektif di antara banyak thread.
Terlepas dari keunggulan ini, penting untuk mempertimbangkan beberapa
kekurangan dibandingkan dengan pemrosesan CPU tradisional.
pemrograman untuk GPU bisa lebih kompleks dan membutuhkan
pengetahuan khusus tentang teknik pemrograman paralel, yang dapat
menimbulkan tantangan bagi pengembang yang tidak terbiasa dengan
paradigma pemrograman GPU.

Di situlah CUDA hadir, CUDA (Compute Unified Device Architecture) dapat


digunakan untuk mengimplementasikan arsitektur SIMT yang dijelaskan
untuk aplikasi kalkulator matriks. CUDA menyediakan model pemrograman
dan lingkungan runtime yang memungkinkan pengembang untuk
memanfaatkan kekuatan komputasi GPU NVIDIA. Melalui CUDA,
pengembang dapat menulis algoritma paralel menggunakan antarmuka
pemrograman C/C++ dan menjalankannya di GPU. CUDA mengabstraksikan
kerumitan dalam mengelola thread, warps, dan hirarki memori, serta
menyediakan konstruksi tingkat tinggi seperti kernel dan blok untuk eksekusi
paralel. Dengan memanfaatkan kemampuan CUDA, pengembang dapat
mengimplementasikan operasi matriks secara efisien pada GPU,
memanfaatkan paralelisme arsitektur SIMT dan fitur Penjadwalan Thread
Independen untuk mencapai kinerja dan throughput tinggi untuk kalkulasi
matriks.
b. Alur Proses Aplikasi

Secara high level, alur di atas merupakan alur process yang akan dijalankan pada
sistem ini,

D. (UAS)Implementasi
Source:

<a href="https://www.flaticon.com/free-icons/ram-memory" title="Ram Memory


icons">Ram Memory icons created by Freepik - Flaticon</a>

Anda mungkin juga menyukai