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
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.
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.
● 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.
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.
Secara high level, alur di atas merupakan alur process yang akan dijalankan pada
sistem ini,
D. (UAS)Implementasi
Source: