bab iii metodologi penelitian

advertisement
BAB III
METODOLOGI PENELITIAN
Simulasi pemrograman paralel pada medan elektromagnetik berdimensi satu
dengan metode Finite Difference Time Domain (FDTD) dilakukan untuk menampilkan
secara grafis medan listrik dan medan magnet dari suatu medan elektromagnetik serta
dianalisis kecepatan waktu eksekusinya. Penelitian dimulai dengan perancangan flowchart
simulasi. Selanjutnya, pembuatan kode program dengan menggunakan pustaka message
passing interface pada rutin komunikasi point to point khususnya mode non-blocking.
Metode penelitian yang digunakan adalah metode eksperimen, dimana kode-kode program
yang telah dibuat dalam bahasa pemrograman C dieksekusi pada jaringan komputer fisik
yang terdiri dari satu komputer master dan satu komputer slave. Tahapan-tahapan
penelitian yang digunakan dapat digambarkan dalam diagram blok seperti terlihat pada
Gambar 3.1.
Rancang bangun
kode program
paralel
Rancang
bangun
jaringan fisik
Pengambilan
data waktu
eksekusi
Pengolahan
data waktu
eksekusi
Gambar 3.1 Diagram blok tahapan penelitian
Diagram blok dibuat untuk menampilkan langkah-langkah yang dilakukan dalam
melakukan penelitian ini. Tahapan pertama adalah perancangan flowchart dari program
simulasi yang dibuat. Kemudian flowchart tersebut diterjemahkan ke dalam kode-kode
program bahasa C. Tahapan kedua adalah rancang bangun jaringan fisik (cluster) yang
terdiri dari satu unit komputer master dan satu unit komputer slave yang dihubungkan
secara langsung menggunakan kabel. Tahapan ketiga adalah pengambilan data dengan cara
mengeksekusi kode program yang dibuat pada jaringan fisik yang telah dibangun
sebelumnya, hal ini dilakukan untuk memperoleh nilai-nilai medan listrik dan medan
magnet serta waktu eksekusinya. Tahapan keempat adalah pengolahan data dengan cara
menghitung nilai speedup, yaitu perbandingan nilai waktu eksekusi program serial dan
waktu eksekusi program paralel yang diperoleh dari pengambilan data yang dilakukan
pada tahapan sebelumnya.
III-1
3.1
Rancang bangun kode program paralel
Rancang bangun kode program paralel dimulai dengan perancangan flowchart
Simulasi. Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan
hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan dengan simbol.
Dengan demikian setiap simbol menggambarkan proses tertentu, sedangkan antara proses
digambarkan dengan garis penghubung. Setelah perancangan flowchart, selanjutnya adalah
penulisan kode program untuk masing-masing flowchart. Pada penelitian ini dibuat lima
flowchart pemrograman paralel pada rutin komunikasi point to point khususnya operasi
non-blocking yang terdiri dari:
1.
Program simulasi medan elektromagnetik berdimensi satu pada ruang terbuka
2.
Program simulasi medan elektromagnetik berdimensi satu pada ruang terbuka
dengan penambahan kondisi batas serap
3.
Program simulasi medan elektromagnetik berdimensi satu saat pulsa menumbuk
medium dielektrik
4.
Program simulasi medan elektromagnetik berdimensi satu saat gelombang
sinusoidal menumbuk medium dielektrik
5.
Program simulasi medan elektromagnetik berdimensi satu pada medium
dielektrik lossy.
3.1.1 Simulasi medan elektromagnetik berdimensi satu pada ruang terbuka
Simulasi medan elektromagnetik berdimensi satu pada ruang terbuka dilakukan
untuk mengetahui nilai medan listrik dan medan magnet pada suatu time step, serta
dihitung waktu eksekusinya.
Pada simulasi ini, disisipkan pulsa gaussian di antara proses kalkulasi medan
listrik dan medan magnet. Pulsa yang disisipkan didefinisikan sebagai:
=
× (
)
(3.1)
Jika ditulis ke dalam bahasa C, Persamaan (3.1) menjadi:
.........
pulse = exp(-.5*pow(t0-T)/spread,2.0) ));
.........
Flowchart simulasi medan elektromagnetik berdimensi satu pada ruang terbuka
dapat dilihat pada Gambar 3.2.
III-2
Mulai
1
Inisialisasi jumlah sel
yang digunakan = 201
Inisialisasi ukuran
step
Inisialisasi argumen
count
Inisialisasi pointer
penyimpanan file
Inisialisasi argumen
vektor
Inisialisasi waktu
mulai
2
TIDAK
Ukuran
step > 0?
YA
Jalankan waktu
Inisialisasi rank
Tetapkan input ukuran step
=0
Inisialisasi waktu
henti
Hitung Medan
Listrik
Inisialisasi size
Inisialisasi output
komunikasi
Inisialisasi array
medan listrik
Inisialisasi MPI
Hitung Medan
Magnet
Dapatkan nama prosessor
Hentikan waktu
Dapatkan proses rank
Tampilkan Medan
Listrik dan Medan
Magnet
Inisialisasi array
medan magnet
Inisialisasi Jumlah
ukuran step = 0
Inisialisasi pusat
sinyal = 40
Proses banyak prosesor
TIDAK
Prosesor
≠2?
Inisialisasi lebar
sinyal = 12
Inisialisasi lebar
gelombang
Inisialisasi input
ukuran step
YA
Tampilkan waktu
eksekusi
Tetapkan medan listrik dan
medan magnet setiap cell =0
Rank 0 mengirim data
Tampilkan ukuran
step
Inisialisasi cell
Scan ukuran step
Inisialisasi nilai
tengah cell
Proses ukuran step
1
Simpan data medan
listrik, medan magnet
dan waktu eksekusi
Rank 1 menerima data
Selesai
2
Gambar 3.2 Flowchart simulasi medan elektromagnetik berdimensi satu pada ruang
terbuka
III-3
Program dimulai dengan inisialisasi data-data yang diperlukan dalam simulasi,
mulai dari inisialisasi jumlah sel yang digunakan hingga inisialisasi MPI. Kode
program inisialisasi secara berturut-turut yaitu:
........
# define KE 201
int main ()
........
double ex[KE];
double hy[KE];
.......
FILE *ifp;
char inputFilename[]=”ex.doc”;
FILE *ofp;
char outputFilename[]=”hy.doc”;
clock_t start, end;
MPI_Request request;
MPI_Init (&argc,&argv);
.........
.........
Langkah selanjutnya adalah mendapatkan nama prosesor, proses rank serta
memproses banyak prosesor yang digunakan. Kode program yang digunakan yaitu:
............
MPI_Comm_size(MPI_COMM_WORLD,&
size);
MPI_Comm_rank(MPI_COMM_WORL,&r
ank);
If (size!=2)
{ printf(“minimal proses/prosesor
2\r\n”):}
..........
Salah satu proses penting dari program ini adalah menjalankan proses ukuran
step. kode program yang digunakan untuk proses menampilkan dan men-scan ukuran
step secara berturut-turut yaitu:
.........
if (rank == 0)
{
Printf (“NSTEPS --- > “);
fflush(stdout);
Scanf (“%d”,&NSTEPS);
Printf (“%d\n”, NSTEPS);
}
........
Setelah proses NSTEPS selesai, maka langkah selanjutnya adalah menjalankan
waktu eksekusi, menghitung nilai medan listrik dan nilai medan magnet. Kode
program yang digunakan untuk langkah ini yaitu:
III-4
.........
While (NSTEPS > 0) {
start = MPI_Wtime(); /*mulai waktu eksekusi*/
..........
{ex[k] = ex[k] + .5*(hy[k-1]-hy[k]); /*hitung medan listrik*/
.........
.........
{ hy[k] = hy[k] +.5*(ex[k] – ex[k+1]); } /*hitung medan magnet*/
..........
Kode program di atas yang digunakan untuk perhitungan medan listrik dan
medan magnet merupakan Persamaan 2.13a dan Persamaan 2.13b yang ditulis ke
dalam bahasa pemrograman C.
Setelah nilai medan listrik dan medan magnet dihitung, langkah selanjutnya
adalah menghentikan waktu eksekusi. Kode program yang digunakan yaitu:
.........
end = MPI_Wtime();
..........
Setelah waktu eksekusi dihentikan, langkah selanjutnya adalah menampilkan
nilai medan listrik dan medan magnet. Kode program yang digunakan untuk langkah
ini yaitu:
.........
Printf (“3%d %f %f\n”, k, ex[k],hy[k]);
..........
Setelah hasil simulasi ditampilkan, data nilai medan listrik, nilai medan magnet
dan waktu eksekusi disimpan dalam bentuk file berekstensi doc. Kode program yang
digunakan yaitu:
..........
/*menyimpan nilai medan listrik*/
ifp=fopen(inputFilename,”w”);
..........
fprintf(ifp,”k\t ex[k]\n”);
........
........
fprintf(ifp, “Waktu eksekusi = %f detik.\n”,end-start);
fclose(ifp);
..........
III-5
/*menyimpan nilai medan magnet*/
ofp=fopen(outputFilename,”w”);
fprintf(ofp,”k\t hy[k]\n”);
........
........
fprintf(ofp, “Waktu eksekusi = %f detik.\n”,end-start);
fclose(ofp);
/*menampilkan waktu di jendela eksekusi*/
printf (“T = %5.0f\n”,T);
fprintf(“Waktu eksekusi = %f detik.\n”,end-start);
............
Setelah semua proses selesai, maka dimulai pemrosesan paralel dengan cara
rank 0 mengirim data ke rank 1. Sebaliknya rank 1 menerima data dari rank 0. Kode
program yang digunakan untuk proses ini berturut-turut yaitu:
...........
/* rank 0 mengirim data*/
if (rank == 0)
{
MPI_Isend (&NSTEPS, 200, MPI_INT, 0, 1, MPI_COMM_WORLD,
&request);
printf (“Node %d telah mengirim data ke rank %d\r\n”, rank, 1);
}
/* rank 1 menerima data*/
else if (rank == 1)
{
MPI_Irecv (&NSTEPS, 200, MPI_INT, 1, 1, MPI_COMM_WORLD,
&request);
printf (“Node %d telah menerima data ke rank %d\r\n”, rank, 0);
}
Break;
}
MPI_Finalize ();
return 0;
}
Data yang dikirim adalah ukuran step sebanyak 200 langkah dengan tipe data
integer (MPI_INT), Source pengiriman data adalah 0 (rank 0), Source penerimaan
data adalah 1 (rank 1), nilai Message tag adalah 1, dan nama output komunikasi
adalah request.
III-6
3.1.2 Simulasi medan elektromagnetik berdimensi satu pada ruang terbuka
dengan penambahan kondisi batas serap
Sama halnya dengan simulasi pertama (Subbab 3.1.1), simulasi ini dilakukan
untuk mengetahui nilai medan listrik dan medan magnet pada suatu time step, serta
dihitung waktu eksekusinya. Akan tetapi, pada simulasi ini ditambahkan kondisi
batas serap.
Kode program untuk proses penentuan syarat batas serap yaitu:
................
ex[0]
ex_low_m2
ex_low_m1
ex[KE-1}
ex_high_m2
ex_high_m1
..................
=
=
=
ex_low_m2;
ex_low_m1;
ex[1];
=
=
=
ex_high_m2;
ex_high_m1;
ex[KE-2];
Kode program di atas dibuat berdasarkan persamaan syarat batas yaitu
Persamaan 2.15. Pada simulasi ini, disisipkan pulsa gaussian dengan bentuk sinyal
digital diantara proses kalkulasi medan listrik dan medan magnet dengan
menggunakan Persamaan 3.1.
Flowchart simulasi medan elektromagnetik berdimensi satu pada ruang terbuka
dengan penambahan kondisi batas serap dapat dilihat pada Gambar 3.3.
III-7
Mulai
1
Inisialisasi jumlah sel
yang digunakan = 201
Inisialisasi ukuran
step
Inisialisasi argumen
count
Inisialisasi pointer
penyimpanan file
Inisialisasi argumen
vektor
Inisialisasi waktu
mulai
2
TIDAK
Ukuran
step > 0?
YA
Jalankan waktu
Inisialisasi rank
Tetapkan input ukuran step
=0
Inisialisasi waktu
henti
Inisialisasi size
Inisialisasi output
komunikasi
Inisialisasi array
medan listrik
Inisialisasi MPI
Hitung Medan
Listrik
Tentukan Syarat
Batas Serap
Dapatkan nama prosessor
Inisialisasi array
medan magnet
Hitung Medan
Magnet
Dapatkan proses rank
Hentikan waktu
Inisialisasi Jumlah
ukuran step = 0
Inisialisasi pusat
sinyal = 40
Proses banyak prosesor
TIDAK
Prosesor
≠2?
Inisialisasi lebar
sinyal = 12
Inisialisasi lebar
gelombang
Inisialisasi syarat
batas
Inisialisasi input
ukuran step
Tampilkan Medan
Listrik dan Medan
Magnet
YA
Simpan data medan
listrik, medan magnet
dan waktu eksekusi
Tetapkan medan listrik dan
medan magnet setiap cell =0
Tampilkan waktu
eksekusi
Tampilkan ukuran
step
Rank 0 mengirim data
Scan ukuran step
Rank 1 menerima data
Proses ukuran step
Selesai
Inisialisasi cell
2
Inisialisasi nilai
tengah cell
1
Gambar 3.3 Flowchart simulasi medan elektromagnetik berdimensi satu pada ruang
terbuka dengan penambahan kondisi batas serap
III-8
3.1.3 Simulasi medan eletromagnetik berdimensi satu saat pulsa menumbuk
medium dielektrik
Simulasi ini dilakukan untuk mengetahui nilai medan listrik dan medan magnet
pada time step tertentu saat pulsa menumbuk medium dielektrik, serta dihitung waktu
eksekusinya.
Kode program untuk proses menampilkan konstanta dielektrik relatif, menscan konstanta dielektrik relatif, menampilkan epsilon, dan men-scan epsilon secara
berturut-turut adalah sebagai berikut :
........
{
printf (“dielectric start at --> “);
fflush(stdout);
scanf (“%d”,&kstart);
printf (“Epsilon --> “);
fflush(stdout);
scanf (“%f”,&epsilon);
for (k=kstart; k <= KE; k++) {
cb[k]= .5/epsilon;
}
........
Kode program untuk perhitungan medan listrik adalah sebagai berikut:
................
/* calculate the Ex field*/
...............
{ ex[k] = ex[k] + cb[k] * (hy[k-1] – hy[k]); }
................
Kode program untuk perhitungan medan listrik di atas berdasarkan Persamaan
2.20a yang ditulis ke dalam bahasa pemrograman C. Pada simulasi ini, disisipkan
pulsa gaussian dengan bentuk sinyal digital diantara proses kalkulasi medan listrik
dan medan magnet dengan menggunakan Persamaan 3.1.
Flowchart simulasi medan elektromagnetik berdimensi satu pada saat pulsa
menumbuk medium dielektrik dapat dilihat pada Gambar 3.4.
III-9
Mulai
1
2
Inisialisasi jumlah sel
yang digunakan = 201
Inisialisasi nilai
tengah cell
Scan konstanta
dielektrik relatif
Inisialisasi argumen
count
Inisialisasi konstanta
dielektrik relatif
Tampilkan epsilon
3
Simpan data medan
listrik, medan magnet
dan waktu eksekusi
Tampilkan waktu
eksekusi
Inisialisasi argumen
vektor
Inisialisasi ukuran
step
Scan epsilon
Rank 0 mengirim data
Inisialisasi rank
Inisialisasi pointer
penyimpanan file
Inisialisasi size
Inisialisasi waktu
mulai
Inisialisasi array
medan listrik
Inisialisasi waktu
henti
Tampilkan ukuran
step
Rank 1 menerima data
Scan ukuran step
Selesai
Proses ukuran step
TIDAK
Inisialisasi array
medan magnet
Inisialisasi output
komunikasi
Inisialisasi Jumlah
ukuran step = 0
Inisialisasi MPI
Inisialisasi pusat
sinyal = 40
Ukuran
step > 0?
YA
Jalankan waktu
Dapatkan nama prosessor
Tetapkan input ukuran step = 0
Dapatkan proses rank
Inisialisasi lebar
sinyal = 12
Proses banyak prosesor
Inisialisasi lebar
gelombang
Inisialisasi epsilon
TIDAK
Hitung Medan
Magnet
Prosesor
≠2?
YA
Inisialisasi medium
dielektrik
Tetapkan medan listrik dan
medan magnet = 0 medium
dielektrik = .5
Inisialisasi input
ukuran step
Inisialisasi cell
1
Hitung Medan
Listrik
Hentikan waktu
Tampilkan Medan
Listrik dan Medan
Magnet
Tampilkan konstanta
dielektrik
3
2
Gambar 3.4 Flowchart simulasi medan eletromagnetik berdimensi satu saat pulsa
menumbuk medium dielektrik
III-10
3.1.4 Simulasi medan eletromagnetik berdimensi satu saat gelombang
sinusoidal menumbuk medium dielektrik
Simulasi ini dilakukan untuk menghitung nilai medan listrik dan medan magnet
pada time step tertentu saat gelombang sinusoidal menumbuk medium dielektrik,
serta dihitung waktu eksekusinya.
Pada program simulasi sebelumnya (Subbab 3.1.3), ditambahkan kode
program proses menampilkan konstanta dielektrik relatif, men-scan konstanta
dielektrik relatif, menampilkan epsilon, men-scan epsilon secara berturut-turut. Pada
program simulasi kali ini, terdapat penambahan satu inisialisasi yaitu frekuensi
gelombang (freq_in). Kode program untuk proses menampilkan dan men-scan
frekuensi yaitu:
..............
/* these parameters specify the input pulse*/
printf (“Input freq (MHz) --> “);
fflush(stdout);
scanf (“%f”,&freq_in);
printf (“%f \n”, freq_in);
................
Kode program untuk perhitungan medan listrik yaitu:
..............
{ ex[k] = hy[k] + cb[k] * ( hy[k-1] – hy[k] );
................
Seperti halnya kode program untuk perhitungan medan listrik yang digunakan
pada Subbab 3.1.3, perhitungan medan listrik pada subbab ini juga berdasarkan
Persamaan 2.20a yang telah ditulis ke dalam bahasa pemrograman C. Flowchart
simulasi medan elektromagnetik berdimensi satu saat gelombang sinusoidal
menumbuk medium dielektrik dapat dilihat pada Gambar 3.5.
Pada simulasi ini, disisipkan pulsa sinusoidal di antara proses kalkulasi medan
listrik dan medan magnet. Pulsa yang disisipkan didefinisikan sebagai:
= sin(2
)
(3.2)
Jika ditulis ke dalam bahasa C, Persamaan 3.2 menjadi:
.........
pulse = exp(2*pi*freq_in*dt*T);
.........
III-11
Mulai
1
Inisialisasi jumlah sel
yang digunakan = 201
Inisialisasi waktu
step
Inisialisasi pi = 3.14
Inisialisasi frekuensi
2
3
TIDAK
YA
Inisialisasi argumen
count
Inisialisasi input
ukuran step
Inisialisasi argumen
vektor
Inisialisasi cell
Tetapkan medan listrik dan
medan magnet = 0
medium dielektrik = .5
Tampilkan frekuensi
Inisialisasi rank
Inisialisasi konstanta
dielektrik relatif
Tampilkan konstanta
dielektrik
Inisialisasi array
medan listrik
Inisialisasi array
medan magnet
Tetapkan input ukuran step =
0
Hitung Medan
Listrik
Hitung Medan
Magnet
Inisialisasi nilai
tengah cell
Scan frekuensi
Inisialisasi size
Jalankan waktu
Prosesor
≠2?
Inisialisasi ukuran
step
Inisialisasi pointer
penyimpanan file
Scan konstanta
dielektrik relatif
Hentikan waktu
Tampilkan Medan
Listrik dan Medan
Magnet
Simpan data medan
listrik, medan magnet
dan waktu eksekusi
Tampilkan epsilon
Inisialisasi Jumlah
ukuran step = 0
Inisialisasi waktu
mulai
Tampilkan waktu
eksekusi
Scan epsilon
Inisialisasi pusat
sinyal = 40
Inisialisasi lebar
sinyal = 12
Inisialisasi lebar
gelombang
Inisialisasi waktu
henti
Inisialisasi output
komunikasi
Inisialisasi MPI
Dapatkan nama prosessor
Rank 0 mengirim data
Tampilkan ukuran
step
Scan ukuran step
Rank 1 menerima data
Selesai
Proses ukuran step
Inisialisasi epsilon
TIDAK
Dapatkan proses rank
Inisialisasi medium
dielektrik
Inisialisasi ukuran
cell
Proses banyak prosesor
Ukuran
step > 0?
YA
2
3
1
Gambar 3.5 Flowchart simulasi medan eletromagnetik berdimensi satu saat gelombang
sinusoidal menumbuk medium dielektrik
III-12
3.1.5 Simulasi medan elektromagnetik berdimensi satu pada medium
dielektrik lossy
Simulasi ini dilakukan untuk menghitung nilai medan listrik dan medan
magnet pada medium yang memiliki nilai konduktivitas rendah, serta dihitung waktu
eksekusinya.
Kode program untuk proses menampilkan dan men-scan konduktivitas
sebagai berikut:
..................
.................
printf (“Conductivity --> “);
fflush(stdout);
scanf (“%f”, &sigma);
printf (“%d %f %f\n”, kstart,epsilon, sigma);
eaf = dt*sigma/(2*epsz*epsilon);
printf (“%f\n”,eaf);
for (k=kstart; k<=KE; k++)
{
ca[k] = (1. –eaf) / (1 + eaf);
cb[k] = .5 / (epsilon*(1 + eaf);
}
....................
Kode program untuk perhitungan nilai medan listrik yaitu:
....................
{ ex[k] = ca[k]*ex[k] + cb[k] * (hy[k-1] – hy[k]) ;}
...................
Kode program yang digunakan untuk perhitungan medan listrik menggunakan
Persamaan 2.24 yang ditulis ke dalam bahasa pemrograman C. Pada simulasi ini,
disisipkan pulsa gaussian dengan bentuk sinyal analog diantara proses menghitung
medan listrik dan medan magnet dengan menggunakan Persamaan 3.2.
Flowchart simulasi medan elektromagnetik berdimensi satu pada medium
dielektrik lossy dapat dilihat pada Gambar 3.6.
III-13
Mulai
1
Inisialisasi jumlah sel
yang digunakan = 201
Inisialisasi ukuran
cell
Inisialisasi pi = 3.14
Inisialisasi waktu
step
Inisialisasi argumen
count
Inisialisasi argumen
vektor
3
2
Inisialisasi MPI
Scan ukuran step
Dapatkan nama prosessor
Proses ukuran step
Dapatkan proses rank
Inisialisasi
permitivitas ruang
hampa
Proses banyak prosesor
Inisialisasi konstanta
konduktivitas
Ukuran
step > 0?
TIDAK
Prosesor
≠2?
Inisialisasi rank
TIDAK
YA
Jalankan waktu
Inisialisasi eaf
YA
Inisialisasi size
Inisialisasi array
medan listrik
Inisialisasi frekuensi
Inisialisasi input
ukuran step
Tetapkan medan listrik dan
medan magnet = 0
medium dielektrik = .5
dielektrik lossy = 1.
Tetapkan input ukuran step
=0
Hitung Medan
Listrik
Tampilkan frekuensi
Inisialisasi array
medan magnet
Inisialisasi Jumlah
ukuran step = 0
Inisialisasi pusat
sinyal = 40
Inisialisasi lebar
sinyal = 12
Inisialisasi lebar
gelombang
Hitung Medan
Magnet
Inisialisasi cell
Inisialisasi nilai
tengah cell
Inisialisasi konstanta
dielektrik relatif
Inisialisasi ukuran
step
Inisialisasi pointer
penyimpanan file
Inisialisasi epsilon
Inisialisasi waktu
mulai
Inisialisasi dielektrik
lossy
Inisialisasi waktu
henti
Scan frekuensi
Hentikan waktu
Tampilkan konstanta
dielektrik
Tampilkan Medan
Listrik dan Medan
Magnet
Scan konstanta
dielektrik relatif
Tampilkan epsilon
Scan epsilon
Simpan data medan
listrik, medan magnet
dan waktu eksekusi
Tampilkan waktu
eksekusi
Rank 0 mengirim data
Tampilkan ukuran
step
Rank 1 menerima data
Inisialisasi medium
dielektrik
1
Inisialisasi output
komunikasi
3
Selesai
2
Gambar 3.6 Flowchart simulasi medan elektromagnetik berdimensi satu pada medium
dielektrik lossy
III-14
3.2
Rancang bangun jaringan fisik
Dalam penelitian ini dihubungkan satu unit komputer master dan satu unit komputer
slave dalam sebuah cluster seperti terlihat pada Gambar 3.7.
Gambar 3.7 Jaringan fisik komputer
Master adalah komputer yang digunakan sebagai tempat mengakses dan memberikan
tugas ke slave. Master digunakan sebagai tempat bagi pengguna cluster untuk mengakses
cluster sehingga pengguna dapat memberikan tasks komputasi ke dalam cluster.
Slave adalah komputer pekerja yang menerima tugas dari master dan memproses
tugas tersebut. Komputer yang difungsikan sebagai slave hanya dapat diakses oleh master
untuk melakukan proses komputasi.
Master dan Slave dihubungkan secara langsung menggunakan kabel Local Area
Network (LAN) tipe Cross-over dengan topologi point to point. Perangkat lunak yang
digunakan pada masing-masing komputer adalah Virtualbox versi 4.1.4. Adapun
spesifikasi komputer master dan slave seperti terlihat pada Tabel 3.1.
Tabel 3.1 Spesifikasi komputer master dan slave
Perangkat
Master
Slave
RAM (Random Access
Memory)
512 megabyte
384 megabyte
Prosessor
CPU Intel Core 2 Duo. CPU Intel Core 2 Duo.
@2.20 GHz
@2.00 GHz
Sistem Operasi
PelicanHPC versi 2.2
(32 bit)
PelicanHPC versi 2.2
(32 bit)
Kecepatan masing-masing komputer dalam cluster dapat dinyatakan dalam teraflops
seperti terlihat pada Gambar 3.8.
III-15
Gambar 3.8 kecepatan cluster
Gambar 3.8 menunjukkan jumlah prosesor yang digunakan adalah 2 prosesor,waktu
kalkulasi cluster adalah 1,96 detik, kecepatan cluster adalah 918 MFLOPS, kecepatan
master adalah 459 MFLOPS, dan kecepatan slave adalah 764 MFLOPS.
3.3
Pengambilan data waktu eksekusi
Dalam penelitian ini kompilasi dan eksekusi kode program serial dan paralel
dilakukan pada terminal sistem operasi Linux PelicanHPC. Perintah kompilasi dan
eksekusi pada kode serial dan kode paralel seperti terlihat pada Tabel 3.2.
Tabel 3.2 Perintah kompilasi dan eksekusi kode serial dan kode paralel
Kode serial
Kode paralel
Kompilasi
gcc test.c -o test –lm
mpicc test.c -o test
Eksekusi
./test
mpiexec -n 2 test
Tahapan kompilasi kode serial menggunakan tambahan –lm (library of math) pada
akhir baris kompilasi. –lm berfungsi sebagai penghubung ke header matematika (math.h)
saat kode program dikompilasi pada terminal Linux dengan compiler GCC (GNU C
Compiler) versi 4.3.2. Tahapan selanjutnya adalah kompilasi kode paralel dengan
menggunakan compiler MPI untuk bahasa C (mpicc) versi 1.4.2.
Dalam penelitian ini, ada lima kode serial (Lampiran B) dan lima kode paralel
(Lampiran C) dalam bahasa C yang dikompilasi dan dieksekusi. Setelah program berhasil
dieksekusi, maka didapatkan nilai medan listrik dan medan magnet, serta waktu
eksekusinya (Lampiran D). Langkah selanjutnya adalah menggambarkan secara grafis nilai
medan listrik, medan magnet serta waktu eksekusi masing-masing program. Waktu
eksekusi yang digunakan merupakan waktu eksekusi dari 10 kali percobaan.
III-16
3.4
Pengolahan data waktu eksekusi
Dalam penelitian ini, pengolahan data dilakukan dengan cara menghitung rata-rata
waktu eksekusi yang diperoleh dari data 10 kali percobaan terhadap setiap kode program
yang dilakukan pada tahapan sebelumnya. Langkah selanjutnya adalah melakukan
perbandingan
rata-rata waktu eksekusi program serial
dan rata-rata waktu eksekusi
program paralel untuk memperoleh berapa banyak peningkatan kecepatan (speedup) yang
diperoleh. Perhitungan nilai speedup didasarkan pada Persamaan 2.25
III-17
Download