bab iii perancangan · 2016. 4. 11. · 15 bab iii perancangan pada bab ini di jelaskan tentang...

14
15 BAB III PERANCANGAN Pada bab ini di jelaskan tentang bagaimana realisasi dari CPU computing, GPU computing, dan Cluster Computing serta sistem pengaturan dan struktur coding dari masing masing metode computing. 3.1. Gambaran Sistem Skema dari metode computing yang akan dirancang terdiri dari CPU computing, cluster computing, GPU computing adalah sebagai berikut : Gambar 3.1 Skema CPU Computing [12]. Gambar 3.2 Skema Cluster Computing [11].

Upload: others

Post on 04-Mar-2021

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB III PERANCANGAN · 2016. 4. 11. · 15 BAB III PERANCANGAN Pada bab ini di jelaskan tentang bagaimana realisasi dari CPU computing, GPU computing, dan Cluster Computing serta

15

BAB III

PERANCANGAN

Pada bab ini di jelaskan tentang bagaimana realisasi dari CPU computing, GPU

computing, dan Cluster Computing serta sistem pengaturan dan struktur coding dari

masing – masing metode computing.

3.1. Gambaran Sistem

Skema dari metode computing yang akan dirancang terdiri dari CPU computing,

cluster computing, GPU computing adalah sebagai berikut :

Gambar 3.1 Skema CPU Computing [12].

Gambar 3.2 Skema Cluster Computing [11].

Page 2: BAB III PERANCANGAN · 2016. 4. 11. · 15 BAB III PERANCANGAN Pada bab ini di jelaskan tentang bagaimana realisasi dari CPU computing, GPU computing, dan Cluster Computing serta

16

Gambar 3.3 Skema GPU Computing [5].

Tabel 3.1. Spesifikasi Komputer yang digunakan untuk pengujian

Komputer 1 Komputer 2

Processor Intel Core i5-3230M @2,6 GHz Intel Core i3- 311M @2,4GHz

RAM DDR3 800MHz 4GB DDR3 800MHz 4GB

GPU NVIDIA Geforce GT635M Intel HD Graphics

3.2. Cara Kerja Sistem

3.2.1. Setting OpenMPI Pada Visual Studio

Gambar 3.4 Additional Include Directories.

Page 3: BAB III PERANCANGAN · 2016. 4. 11. · 15 BAB III PERANCANGAN Pada bab ini di jelaskan tentang bagaimana realisasi dari CPU computing, GPU computing, dan Cluster Computing serta

17

Klik kanan project pada Solution Manager, kemudian pilih properties. Pada

Configuration Properties, expand C/C++ pilih general, kemudian pada kolom

Additional Include Directories, berikan path dari folder include OpenMPI, supaya

header OpneMPI dapat terbaca oleh sistem.

Gambar 3.5 Additional Library Directories.

Gambar 3.6 Additional Dependencies.

Expand menu linker, kemudian pilih general, pada Additional Library Directories

berikan path folder lib OpenMPI supaya file mpi.lib yang dideklarasikan di Additional

Dependencies pada sub menu linker input, dapat berjalan pada saat compile dan

Page 4: BAB III PERANCANGAN · 2016. 4. 11. · 15 BAB III PERANCANGAN Pada bab ini di jelaskan tentang bagaimana realisasi dari CPU computing, GPU computing, dan Cluster Computing serta

18

menjalankan aplikasi. Eksekusi program dengan mpirun pada OpenMPI yang dijalankan

pada command prompt, harus memiliki koneksi internet untuk menjalankannya. Untuk

menjalankan program MPI pada command prompt digunakan coommand:

Local : mpirun –np 2 file.exe

Angka 2 pada command tersebut digunakan untuk mensimulasikan jumlah proses

yang secara virtual berjalan pada local host, bisa diganti dengan angka yang berjumlah 2n

Cluster : mpirun –np 2 –host host1,host2 file.exe

Sama seperti dengan local, hanya ditambahkan dengan –host dan juga dengan nama

komputer masing-masing host, jumlah host dan angka host harus sama dengan sejumlah 2n

[9].

3.2.2. Setting Nvidia Nsight

Langkah awal dalam menggunakan Nvidia Nsight, adalah pada PC user sudah

terinstall visual studio, supaya pada waktu instalasi Nvidia Toolkit, template dari Nsight

dapat terintegrasi pada new project visual studio, sehingga dapat langsung digunakan oleh

user. Setelah Instalasi berhasil dilakukan, cek kompatibilitas dari hardware GPU, support

atau tidak untuk memprogram dan menjalankan CUDA.

Gambar 3.7 Summary NVIDIA Installer setelah installing Toolkit.

Page 5: BAB III PERANCANGAN · 2016. 4. 11. · 15 BAB III PERANCANGAN Pada bab ini di jelaskan tentang bagaimana realisasi dari CPU computing, GPU computing, dan Cluster Computing serta

19

Gambar 3.8 Pencarian Code Samples untuk uji coba GPU.

Untuk mengetahui apakah GPU yang terpasang di PC mendukung CUDA dapat

dilakukan pada NVIDIA CUDA samples browser, search dengan kata kunci particles

kemudian pada smoke particles klik run.

Gambar 3.9 Smoke screen code samples.

Apabila muncul render smoke screen , maka GPU mendukung CUDA

Page 6: BAB III PERANCANGAN · 2016. 4. 11. · 15 BAB III PERANCANGAN Pada bab ini di jelaskan tentang bagaimana realisasi dari CPU computing, GPU computing, dan Cluster Computing serta

20

Gambar 3.10 Template dari CUDA yang terintegrasi dengan Visual Studio.

Setelah proses instalasi selesai maka installation summary akan menampilkan

fitur-fitur dan komponen dari CUDA Nsight yang telah berhasil di integrasikan pada visual

studio dan pada PC user. Dan pada visual studio sudah terintegrasi template project CUDA

runtime.

Gambar 3.11 Path CUDA pada environment variables.

Page 7: BAB III PERANCANGAN · 2016. 4. 11. · 15 BAB III PERANCANGAN Pada bab ini di jelaskan tentang bagaimana realisasi dari CPU computing, GPU computing, dan Cluster Computing serta

21

Pada Environment Variabel yang terdapat di My Computer Properties lalu pilih

Advanced system settings, pastikan terdapat CUDA path yang berisi letak dari folder bin ,

include, dan library dari CUDA, supaya program CUDA dapat dikompilasi dan dieksekusi

oleh user. [1]

3.2.2.1. Cuda Template

CUDA template adalah kode minimum yang digunakan untuk mengeksekusi GPU.

CUDA template terdiri dari kode host dan kode device. Potongan kode di bawah adalah

kode template untuk aplikasi sederhana: [5, Hal 76 ]

#include <stdio.h>

1. #include <cuda.h>

2. __global__ void square_array(float * a, int N)

3. {

4. <Kode GPU>

5. }

<Kode CPU>

6. int main(void)

7. {

8. //Inisialisasi memory CPU

9. float *a_h, *a_d;

10. const int N = 10;

11. size_t size = N * sizeof(float);

12. a_h = (float *)malloc(size);

13. //Inisialisasi memory GPU

14. cudaMalloc((void **) &a_d, size);

15. //Penyalinan data dari CPU ke GPU

16. cudaMemcpy(a_d, a_h, size,cudaMemcpyHostToDevice);

17. //pemanggilan kernel

18. kernel<<< jumlah block, jumlah thread >>> (a_d,N);

19. //Penyalinan data dari GPU ke CPU

20. cudaMemcpy(a_h,a_d,sizeof(float)*NcudaMemcpyDeviceT

oHost);

21. }

3.2.3. Setting Koneksi Cluster

3.2.3.1.Konfigurasi Firewall

Firewall pada masing-masing komputer user harus terbuka, supaya koneksi dari

MPI yang dikirimkan dari komputer cluster tidak di block oleh komputer lainnya.

Page 8: BAB III PERANCANGAN · 2016. 4. 11. · 15 BAB III PERANCANGAN Pada bab ini di jelaskan tentang bagaimana realisasi dari CPU computing, GPU computing, dan Cluster Computing serta

22

Gambar 3.12 Pencarian Firewall dengan searchbox.

Gambar 3.13 Advanced Security Firewall.

Pada search box di start menu, masukkan dengan kata pencarian firewall, kemudian

pilih Windows Firewall with Advanced Security. Pilih Windows Firewall with Advanced

Security on local Computer, klik Windows Firewall Properties.

Page 9: BAB III PERANCANGAN · 2016. 4. 11. · 15 BAB III PERANCANGAN Pada bab ini di jelaskan tentang bagaimana realisasi dari CPU computing, GPU computing, dan Cluster Computing serta

23

Gambar 3.14 Firewall Properties.

Kemudian status Firewall State pilih menjadi off. Sehingga inbound dan outbound

connections tidak memblokir koneksi MPI pada saat mengirim data pada cluster atau pada

saat menerima data.

3.2.3.2. Konfigurasi IP dan User Credential

Gambar 3.15 Search Network and Sharing Center.

Pada search box cari network and sharing center. Untuk membuka setting adapter

LAN

Page 10: BAB III PERANCANGAN · 2016. 4. 11. · 15 BAB III PERANCANGAN Pada bab ini di jelaskan tentang bagaimana realisasi dari CPU computing, GPU computing, dan Cluster Computing serta

24

Gambar 3.16 Network and Sharing Center.

Pilih pada Change adapter setting , kemudian pada Local Area Connection klik

kanan dan pilih properties.

Gambar 3.17 Local Area Connection Properties.

Pilih pada Internet Protocol Version 4, lalu klik properties.

Page 11: BAB III PERANCANGAN · 2016. 4. 11. · 15 BAB III PERANCANGAN Pada bab ini di jelaskan tentang bagaimana realisasi dari CPU computing, GPU computing, dan Cluster Computing serta

25

Gambar 3.18 IPV4 Properties.

Setting masing-masing PC user dengan menggunakan cara yang sama, dan set

masing-masing IP PC. Dalam project ini PC pertama menggunakan IP 192.168.62.10 dan

PC kedua menggunakan IP 192.168.62.11

Page 12: BAB III PERANCANGAN · 2016. 4. 11. · 15 BAB III PERANCANGAN Pada bab ini di jelaskan tentang bagaimana realisasi dari CPU computing, GPU computing, dan Cluster Computing serta

26

PC 1 PC 2

Gambar 3.19 User Account host dan client.

Nama user pada PC 1 dan PC 2 dan juga password harus identik, supaya pada

proses eksekusi OpenMPI PC 2 terdeteksi, dan MPI dapat melakukan transfer data antara

PC 1 dan PC2.

3.2.3.3. Setting Component Service

Pada search box start menu, ketikkan dcomcnfg.exe , tekan enter, pilih Component

service, kemudian masuk ke folder Computer, pada my Computer klik kanan pilih

properties.

Gambar 3.20 Component Service.

Page 13: BAB III PERANCANGAN · 2016. 4. 11. · 15 BAB III PERANCANGAN Pada bab ini di jelaskan tentang bagaimana realisasi dari CPU computing, GPU computing, dan Cluster Computing serta

27

Gambar 3.21 Limit COM Security pada My Computer Properties.

Klik COM Security pilih edit limits. Disini akan di konfigurasikan koneksi user ke

komputer utama, supaya security PC memberikan status allow pada user yang terhubung

pada komputer utama. Add terlebih dahulu user yang akan diberikan permission untuk

mengakses komputer utama.

Gambar 3.22 Search Select User.

Klik advanced sehingga muncul menu untuk menambahkan jenis user yang akan di

tambahkan ke permission.

Page 14: BAB III PERANCANGAN · 2016. 4. 11. · 15 BAB III PERANCANGAN Pada bab ini di jelaskan tentang bagaimana realisasi dari CPU computing, GPU computing, dan Cluster Computing serta

28

Gambar 3.23 Advanced Select User.

Klik Find now untuk mencari jenis user, kemudian pilih everyone, lalu klik OK.

Gambar 3.24 Edit Permission untuk user yang dipilih.

Check box yang terdapat pada Access Permission dan launch and activation permision

pada user Everyone. Beri check pada allow untuk semua opsi nya. Lalu OK dan tutup

Component Service.