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