• Tidak ada hasil yang ditemukan

Lampiran 1 Variabel pendukung dan waktu eksekusi yang diharapkan

N/A
N/A
Protected

Academic year: 2021

Membagikan "Lampiran 1 Variabel pendukung dan waktu eksekusi yang diharapkan"

Copied!
24
0
0

Teks penuh

(1)
(2)

Lampiran 1 Variabel pendukung dan waktu eksekusi yang diharapkan Variabel Nilai λ (lokal) 0.52029 µs λ (jaringan) 112.084539 µs β 100 mbps x1 file 1 3.474 x 103 µs x2 file 1 151.296 x 103 µs x1 file 2 19.343 x 103 µs x2 file 2 743.531 x 103 µs x1 file 3 85.356 x 103 µs x2 file 3 3.856 x 106 µs d 0.726 µs A 4 µs B 10 µs C 17,200 µs D 3.742 µs E 2.960 µs F 6.200 µs G 3.239 µs Proses

Waktu eksekusi AES paralel domain decomposition yang diharapkan

waktu enkripsi waktu dekripsi

file 1 file 2 file 3 file 1 file 3 file 3

1 3.1323 14.7181 74.2317 5.2756 25.2032 127.5666 4 1.4714 7.1998 36.6836 2.0073 9.8211 50.0173 8 1.1947 5.8456 29.7946 1.4626 7.1563 36.4615 12 1.1025 5.3943 27.4983 1.2811 6.2680 31.9429 16 1.0564 5.1686 26.3502 1.1904 5.8239 29.6836 20 1.0288 5.0332 25.6613 1.1360 5.5575 28.3281 24 1.0104 4.9430 25.2021 1.0997 5.3799 27.4244 proses

Waktu eksekusi AES pipeline yang diharapkan

waktu enkripsi waktu dekripsi

file 1 file 2 file 3 file 1 file 3 file 3

1 3.1323 14.7181 74.2317 5.2756 25.2032 127.5666

2 2.1474 10.5077 53.5106 3.0857 15.0980 76.8603

3 2.3281 11.3915 58.0067 3.7564 18.3787 93.5485

(3)

Lampiran 2 Implementasi AES sekuensial /*

****************************************************************** ** Advanced Encryption Standard implementation in C.

** By Niyaz PK ** E-mail: niyazlife@gmail.com ** Downloaded from Website: www.hoozi.com Modified By Sayed Zulfikar ~ sayed.zulfikar@yahoo.com

****************************************************************** */

// Include stdio.h for standard input/output. // Used for giving output to the screen. #include<stdio.h>

#include <stdlib.h> #include <mpi.h>

main(int argc, char *argv[]) {

int i, j, c, rank, size, alg, pad=0, sisa, Cpad = 0; unsigned long int ps, k, pk;

double block;

double start, finish, wp; FILE *file, *hasil, *kunci; char character;

unsigned char Kunci[16];

char *file_awal, *file_akhir, *file_kunci, s; //penampung argumen file_kunci = argv[1]; file_awal = argv[2]; file_akhir = argv[3]; alg = atoi(argv[4]);

//penentuan panjang kunci (128 bit) Nr = 128;

// Calculate Nk and Nr from the recieved value. Nk = Nr / 32;

Nr = Nk + 6;

MPI_Init (&argc, &argv);

MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); if ((argc != 5) || (size!=1)) { MPI_Finalize();

if (rank==0) printf("\nTerjadi Kesalahan input data!\n+ Argumen Harus Berjumlah 4!\n\t1. File Eksekusi\n\t2. File Kunci\n\t3. File Input\n\t4. File output\n+ Jumlah Proses yang bisa dibangkitkan hanya 1 saja!\n+ Panjang Kunci Kurang/Lebih dari 16 Karakter!\n\nSilahkan Periksa Kembali");

exit(1); }

(4)

Lampiran 2 (lanjutan) if (rank ==0) { pk = ambil_pchar(file_kunci); kunci = fopen(file_kunci, "rb"); fread(Kunci, pk, 1, kunci); for(i=0;i<Nk*4;i++) Key[i]=Kunci[i]; //membaca ukuran data input

ps = ambil_pchar(file_awal); //alokasi memory untuk file input

input=(unsigned char*)malloc(ps*sizeof(unsigned char)); //membaca file input

file = fopen(file_awal, "rb"); fread(input, ps, 1, file);

//menghitung banyak blok yg terbentuk (pembulatan ke atas block = ceil(ps/16.0);

sisa = 16-(ps%16);

//Proses Padding (menggunakan PKCS7) while (ps%16!=0)

{

input[ps] = sisa; ps++; }

//alokasi memori untuk output

output=(unsigned char*)malloc((block*16)*sizeof(unsigned char));

// The KeyExpansion routine must be called before encryption. KeyExpansion();

if (alg == 1){

for (c=0;c<block;c++) {

for (i=0;i<16;i++) in[i]=input[i+c*16]; //Proses enkripsi

Cipher();

for (i=0;i<16;i++) output[i+c*16]=out[i]; }

} else {

for (c=0;c<block;c++) {

for (i=0;i<16;i++) in[i]=input[i+c*16]; InvCipher();

// Proses unpadding (hanya dilakukan di blok terakhir) if (c==block-1) { s = out[15]; for (i=16-s;i<16;i++) { if (out[i]==s) Cpad++; } if (Cpad==s) pad =s; } for (i=0;i<16-pad;i++) output[i+c*16]=out[i]; } }

(5)

Lampiran 2 (lanjutan) free(input);

//mencetak hasil enkripsi

hasil = fopen (file_akhir, "wb");

for (k=0;k<(((block-1)*16)+16-pad);k++) { fputc(output[k], hasil); } fclose (hasil); finish = MPI_Wtime(); wp = finish-start; //printf("%f", wp); } MPI_Finalize(); return 0; }

(6)

Lampiran 3 Implementasi AES paralel domain decomposition /*

******************************************************************

** Advanced Encryption Standard Parallel Domain Decomposition implementation in C. By Sayed Zulfikar ~ sayed.zulfikar@yahoo.com

****************************************************************** */

// Include stdio.h for standard input/output. // Used for giving output to the screen. #include<stdio.h>

#include <stdlib.h> #include <mpi.h>

main(int argc, char *argv[]) {

int i, j, alg, pad=0, c=0, rank, size, block, ex=0, dest=1, dest2=1, d, s, cei, flo, b, tagR, sisa, Cpad=0;

unsigned long int ps, pk, k; double start, finish, wp, bl; FILE *file, *hasil, *kunci;

char *file_awal, *file_akhir, *file_kunci; unsigned char *tempIn, *tempOut, Kunci[16];

//penampung argumen file_kunci = argv[1]; file_awal = argv[2]; file_akhir = argv[3]; alg = atoi(argv[4]);

//penentuan panjang kunci (128 bit) Nr = 128;

// Calculate Nk and Nr from the recieved value. Nk = Nr / 32;

Nr = Nk + 6;

MPI_Init (&argc, &argv);

MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Status status; int send[size]; int displs[size]; int tag[size]; start = MPI_Wtime(); start = MPI_Wtime(); //P0 melakuakan PreProcessing

//P0 melakukan pengecekan inputan sesuai atau tidak

//P0 melakukan pembacaan kunci, pembacaan inputan, menghitung jumlah blok yang terbentuk, dan melakukan padding

if (rank == 0) {

//fungsi kontrol jenis algoritma if ((alg!=1) && (alg!=2)) ex = 1;

(7)

Lampiran 3 (lanjutan)

//fungsi kontrol jumlah argumen if (argc !=5) ex = 1; pk = ambil_pchar(file_kunci); if (pk==16) { //pembacaan kunci kunci = fopen(file_kunci, "rb"); fread(Kunci, pk, 1, kunci); for(i=0;i<Nk*4;i++) Key[i]=Kunci[i];

//membaca ukuran data input ps = ambil_pchar(file_awal); //alokasi memory untuk file input

input=(unsigned char*)malloc(ps*sizeof(unsigned char)); //membaca file input

file = fopen(file_awal, "rb"); fread(input, ps, 1, file);

//menghitung banyak blok yg terbentuk (pembulatan ke atas) bl = ceil(ps/16.0); block = (int)bl; if (alg==1) { sisa = 16-(ps%16); //Proses Padding while (ps%16!=0) { input[ps] = sisa; ps++; } }

//alokasi memori untuk output

output=(unsigned char*)malloc((block*16)*sizeof(unsigned char)); }

//fungsi kontrol panjang kunci else ex = 1;

}

//fungsi kontrol kesalahan input

MPI_Bcast(&ex, 1, MPI_INT,0, MPI_COMM_WORLD); if (ex==1) {

MPI_Finalize();

if (rank==0) printf("\nTerjadi Kesalahan input data!\n+ Argumen Harus Berjumlah 5!\n\t1. File Eksekusi\n\t2. File Kunci\n\t3. File Input\n\t4. File output\n\t5. Algoritma Data

Decomposition (1/2)\n+ Algoritma yang tersedia hanya 1 (Scatter keseluruhan data) dan 2 (Scatter data sedikit demi sedikit)!\n+ Panjang Kunci Kurang/Lebih dari 16

Karakter!\n\nSilahkan Periksa Kembali"); exit(1);

}

//broadcast kunci

MPI_Bcast(&Key, 16, MPI_UNSIGNED_CHAR,0, MPI_COMM_WORLD); //broadast banyak blok yang terbentuk

MPI_Bcast(&block, 1, MPI_INT,0, MPI_COMM_WORLD);

(8)

Lampiran 3 (lanjutan) s=(block%size); b = block/size;

cei = ceil (((float)block)/size); flo = floor (((float)block)/size);

// The KeyExpansion routine must be called before encryption. KeyExpansion();

//jika data dapat dibagi MERATA ke setiap proses if (s == 0){

//alokasi memori untuk data input dan output yang sudah dibagi rata ke setiap proses tempIn = (unsigned char*)malloc((b*16)*sizeof(unsigned char));

tempOut = (unsigned char*)malloc((b*16)*sizeof(unsigned char));

//scatter data, setiap proses langsung mendapat banyak data

MPI_Scatter (input, 16*b, MPI_UNSIGNED_CHAR, tempIn, 16*b, MPI_UNSIGNED_CHAR, 0, MPI_COMM_WORLD);

//proses enkripsi atau dekripsi for (i=0;i<b;i++)

{

for (j=0;j<16;j++) in[j] = tempIn[(i*16)+j]; if (alg==1) Cipher();

else InvCipher();

for (j=0;j<16;j++) tempOut[(i*16)+j] = out[j]; if (alg==2)

{

//unpadding

if (rank==(size-1) && i==(b-1)) {

s = out[15];

for (i=16-s;i<16;i++) if (out[i]==s) Cpad++; }

if (Cpad==s) pad = s; }

}

//gather data hasil enkripsi

MPI_Gather (tempOut, 16*b, MPI_UNSIGNED_CHAR, output, 16*b, MPI_UNSIGNED_CHAR, 0, MPI_COMM_WORLD);

}

//jika data tidak dapat dibagi merata, maka menggunaka prinsip c = a mod b -> a = c*(ceil(a/b)) + (b-c)*(floor(a/b))

else {

for (i=0;i<size;i++) {

//jika sisa bagi masih !=0, maka proses i akan mendapat data pembulatan ke atas if (s!=0) { send[i] = 16*cei; tag[i] = 1; s--; }

(9)

Lampiran 3 (lanjutan)

//jika sisa bagi sudah 0, maka proses i dapat data pembulatan ke bawah else { send[i] = 16*flo; tag[i] = 0; } if (i==0) displs[i]=0;

else displs[i] = displs[i-1]+send[i-1]; } if (tag[rank]==1) tagR=cei; else tagR=flo;

//alokasi memori untuk data yang sudah dibagi

tempIn = (unsigned char*)malloc((tagR*16)*sizeof(unsigned char)); tempOut = (unsigned char*)malloc((tagR*16)*sizeof(unsigned char));

//Scatter data berdasarkan bobotnya masing-masing

MPI_Scatterv(input, send, displs, MPI_UNSIGNED_CHAR, tempIn, 16*tagR, MPI_UNSIGNED_CHAR, 0, MPI_COMM_WORLD);

//proses enkripsi

//jika proses termasuk yang mendapatkan data pembulatan ke atas if (tag[rank]==1)

{

for (i=0;i<cei;i++) {

for (j=0;j<16;j++) in[j] = tempIn[(i*16)+j]; if (alg==1) Cipher();

else InvCipher();

for (j=0;j<16;j++) tempOut[(i*16)+j] = out[j]; if (alg==2)

{

//unpadding

if (rank==(size-1) && i==(cei-1)) {

s = out[15];

for (i=16-s;i<16;i++) if (out[i]==s) Cpad++; }

if (Cpad==s) pad = s; }

} }

//jika proses termasuk yang mendapatkan data pembulatan ke bawah else

{

for (i=0;i<flo;i++) {

for (j=0;j<16;j++) in[j] = tempIn[(i*16)+j]; if (alg==1) Cipher();

else InvCipher();

(10)

Lampiran 3 (lanjutan) if (alg==2)

{

//unpadding

if (rank==(size-1) && i==(flo-1)) {

s = out[15];

for (i=16-s;i<16;i++) if (out[i]==s) Cpad++; }

if (Cpad==s) pad = s; }

} }

MPI_Gatherv(tempOut, 16*tagR, MPI_UNSIGNED_CHAR, output, send, displs, MPI_UNSIGNED_CHAR, 0, MPI_COMM_WORLD); } //broadcast unpadding if (block<size) x=block-1; else x=size-1;

MPI_Bcast(&pad, 1, MPI_INT,x, MPI_COMM_WORLD);

//mencetak hasil enkripsi if (rank==0) {

hasil = fopen (file_akhir, "wb");

for (k=0;k<(((block-1)*16)+16-pad);k++) { fputc(output[k], hasil); } fclose (hasil); } finish = MPI_Wtime(); wp = finish-start; if (rank==0) printf("%f", wp); free(input); MPI_Finalize(); return 0; }

(11)

Lampiran 4 Implementasi AES pipeline /*

******************************************************************

** Advanced Encryption Standard Parallel Functional Decomposition implementation in C. By Sayed Zulfikar ~ sayed.zulfikar@yahoo.com

****************************************************************** */

// Include stdio.h for standard input/output. // Used for giving output to the screen. #include<stdio.h>

#include <stdlib.h> #include <mpi.h>

main(int argc, char *argv[]) {

int rank, size, alg, block, blockCount, proc, i, j, pad=16, ex=0; unsigned long int ps, pk, k;

double start, finish, wp, bl; FILE *file, *hasil, *kunci;

char *file_awal, *file_akhir, *file_kunci; unsigned char *tempIn, *tempOut, Kunci[16]; //penampung argumen file_kunci = argv[1]; file_awal = argv[2]; file_akhir = argv[3]; alg = atoi(argv[4]);

//penentuan panjang kunci (128 bit) Nr = 128;

// Calculate Nk and Nr from the recieved value. Nk = Nr / 32;

Nr = Nk + 6;

MPI_Init (&argc, &argv);

MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Status status;

start = MPI_Wtime();

//P0 melakuakan PreProcessing Tahap 1

//P0 melakukan pengecekan inputan sesuai atau tidak

//P0 melakukan pembacaan kunci, pembacaan inputan, menghitung jumlah blok yang terbentuk, melakukan padding dan membangkitkan Upa-Kunci

if (rank == 0) {

//fungsi kontrol ukuran proses

if ((size==2) || (size==3) || (size==5)) ex = 0; else ex = 1;

//fungsi kontrol jumlah argumen if (argc !=5) ex = 1;

(12)

Lampiran 4 (lanjutan) pk = ambil_pchar(file_kunci); if (pk==16){ kunci = fopen(file_kunci, "rb"); fread(Kunci, pk, 1, kunci); for(i=0;i<Nk*4;i++) Key[i]=Kunci[i];

//membaca ukuran data input ps = ambil_pchar(file_awal); //alokasi memory untuk file input

input=(unsigned char*)malloc(ps*sizeof(unsigned char)); //membaca file input

file = fopen(file_awal, "rb"); fread(input, ps, 1, file);

//menghitung banyak blok yg terbentuk (pembulatan ke atas) bl = ceil(ps/16.0); block = (int)bl; if (alg==1) { sisa = 16-(ps%16); //Prose Padding while (ps%16!=0) { input[ps] = sisa; ps++; } }

//proses pembangkitan Upa-Kunci oleh P0 untuk kemudian d BroadCast ke Proses lain KeyExpansion();

}

//fungsi kontrol panjang kunci else ex = 1;

}

//fungsi kontrol kesalahan input

MPI_Bcast(&ex, 1, MPI_INT,0, MPI_COMM_WORLD); if (ex==1)

{

MPI_Finalize();

if (rank==0) printf("\nTerjadi Kesalahan input data!\n+ Argumen Harus Berjumlah 4!\n\t1. File Eksekusi\n\t2. File Kunci\n\t3. File Input\n\t4. File output\n+ Jumlah Proses yang bisa dibangkitkan hanya 2/3/5 saja!\n+ Panjang Kunci Kurang/Lebih dari 16 Karakter!\n\nSilahkan Periksa Kembali");

exit(1); }

//broadcast kunci

MPI_Bcast(&RoundKey, 240, MPI_UNSIGNED_CHAR,0, MPI_COMM_WORLD); //broadcast jumlah block

MPI_Bcast(&block, 1, MPI_INT,0, MPI_COMM_WORLD); blockCount=block;

//untuk mengetahui berapa banyak proses yang teribat di antara PreProcessing dan Finishing proc = size-2;

(13)

Lampiran 4 (lanjutan)

//PreProcessing tahap 2 dilakukan oleh P0

//P0 mengambil data tiap blok (16 byte) lalu AddRoundKey(0) dan mengirimkan data tersebut ke P1

if (rank == 0) {

while (blockCount > 0) {

for (i=0;i<16;i++) in[i] = input[((block-blockCount)*16)+i];

//Copy the input PlainText to state array.

for(i=0;i<4;i++) for(j=0;j<4;j++) state[j][i] = in[i*4 + j];

if (alg==1) AddRoundKey(0); else AddRoundKey(10);

for(i=0;i<4;i++) for(j=0;j<4;j++) out[i*4+j]=state[j][i];

MPI_Send(out, 16, MPI_UNSIGNED_CHAR, rank+1, rank+1, MPI_COMM_WORLD); blockCount--; } free(input); }

//Pengecekan jika tidak ada proses antara, maka selain PreProcessing sisanya dikerjakan oleh P1

if (proc==0) {

if (rank == 1) {

output=(unsigned char*)malloc((block*16)*sizeof(unsigned char)); while (blockCount > 0)

{

MPI_Recv(in, 16, MPI_UNSIGNED_CHAR, rank-1, rank, MPI_COMM_WORLD, &status);

for(i=0;i<4;i++) for(j=0;j<4;j++) state[j][i] = in[i*4 + j]; if (alg==1) { for(i=1;i<10;i++) { SubBytes(); ShiftRows(); MixColumns(); AddRoundKey(i); } SubBytes(); ShiftRows(); AddRoundKey(10); }

(14)

Lampiran 4 (lanjutan) else { for(i=9;i>0;i--) { InvShiftRows(); InvSubBytes(); AddRoundKey(i); InvMixColumns(); } InvShiftRows(); InvSubBytes(); AddRoundKey(0); }

for(i=0;i<4;i++) for(j=0;j<4;j++) out[i*4+j]=state[j][i]; if (alg==2)

{

//unpadding

if (blockCount == 1) {

for (j=0;j<16;j++) if (out[j]==0x5) pad -=1; }

}

for (i=0;i<16;i++) output[((block-blockCount)*16)+i] = out[i]; blockCount--;

}

hasil = fopen (file_akhir, "wb");

for (k=0;k<(((block-1)*16)+pad);k++) { fputc(output[k], hasil); } fclose (hasil); finish = MPI_Wtime(); wp = finish-start; printf("%f", wp); } }

//Jika ada proses antara else

{

if ((rank>0) && (rank<(size-1))) {

while (blockCount > 0) {

MPI_Recv(in, 16, MPI_UNSIGNED_CHAR, rank-1, rank, MPI_COMM_WORLD, &status);

for(i=0;i<4;i++) for(j=0;j<4;j++) state[j][i] = in[i*4 + j]; if (alg==1)

{

for (i=((rank*proc)-(proc-1));i<=((9/proc)*rank);i++)

(15)

Lampiran 4 (lanjutan) { SubBytes(); ShiftRows(); MixColumns(); AddRoundKey(i); } } else { for (i=(9-((rank*proc)-proc));i>=(10-((9/proc)*rank));i--) { InvShiftRows(); InvSubBytes(); AddRoundKey(i); InvMixColumns(); } }

for(i=0;i<4;i++) for(j=0;j<4;j++) out[i*4+j]=state[j][i];

MPI_Send(out, 16, MPI_UNSIGNED_CHAR, rank+1, rank+1, MPI_COMM_WORLD); blockCount--; } }

//P(size-1) melakukan finishing else if (rank == size-1) {

output=(unsigned char*)malloc((block*16)*sizeof(unsigned char)); while (blockCount > 0)

{

MPI_Recv(in, 16, MPI_UNSIGNED_CHAR, rank-1, rank, MPI_COMM_WORLD, &status);

for(i=0;i<4;i++) for(j=0;j<4;j++) state[j][i] = in[i*4 + j]; if (alg==1) { SubBytes(); ShiftRows(); AddRoundKey(10); } else { InvShiftRows(); InvSubBytes(); AddRoundKey(0); }

for(i=0;i<4;i++) for(j=0;j<4;j++) out[i*4+j]=state[j][i]; if (alg==2)

(16)

Lampiran 4 (lanjutan) //unpadding

if (blockCount == 1) {

s = out[15];

for (i=16-s;i<16;i++) if (out[i]==s) Cpad++;

if (Cpad==s) pad =s; }

for (i=0;i<16;i++) output[((block-blockCount)*16)+i] = out[i]; blockCount--;

}

hasil = fopen (file_akhir, "wb");

for (k=0;k<(((block-1)*16)+16-pad);k++) { fputc(output[k], hasil); } fclose (hasil); finish = MPI_Wtime(); wp = finish-start; printf("%f", wp); } } MPI_Finalize(); return 0; }

(17)

Lampiran 5 Pengaturan dan instalasi MPICH2

Langkah-langkah dalam pengaturan dan istalasi MPICH2 dalam penelitian ini yaitu:

1 Hubungkan tiap komputer dengan Fast Ethernet dan kabel UTP agar membentuk topologi star.

2 Ping ke setiap komputer yang hendak digunakan, pastikan semua komputer saling terhubung agar lebih mudah buat IP menjadi statis dan matikan firewall.

3 Instal mpich2-1.4.1p1-win-ia32.msi di setiap komputer dengan menggunakan administrator priviledge.

4 Tentukan passphrase yang akan digunakan dan pastikan setiap komputer memiliki passphrase

yang sama dan Pilih “Everyone” pada salah satu menu instalasi agar MPICH2 bisa digunakan untuk semua pengguna komputer.

5 Tambahkan path MPICH2 (C:\Program Files\MPICH2\bin) pada system variabel tiap

komputer.

6 Buat user baru dengan nama yang seragam dan password-nya sesuai dengan passphrase di tiap komputer.

7 Daftar user baru di tiap komputer dengan menjalankan perintah “mpiexec –register –user 1” pada jendela command prompt, masukkan nama dan passphrase sesuai dengan poin nomor 7. 8 Jalankan contoh program C:\Program Files\MPICH2\examples\cpi.exe secara paralel dengan

menggunakan user yang sudah daftarkan. Jika contoh program dapat berjalan dengan baik, cluster komputer telah siap digunakan.

(18)

Lampiran 5 (lanjutan)

Beberapa kesalahan umum yang sering terjadi:

1 Pesan eror “Mpiexec is not recognize as internal or external command, operable program or

batch file” ketika hendak menjalankan program paralel.

Penyebab : instalasi MPICH2 atau penambahan path MPICH2 yang tidak sempurna.

Solusi : instalasi ulang MPICH2 dan pastikan sesuai langkah di atas.

2 Pesan eror “SMPD version missmatch” ketika hendak menjalankan program paralel.

Penyebab : ada program lain yang menggunakan smpd dengan versi yang berbeda dari MPICH2 yang digunakan

Solusi : instalasi ulang MPICH2 dan pastikan installer-nya sama, hapus path smpd

(19)

Lampiran 6 Data hasil percobaan algoritme enkripsi AES paralel domain decomposition perlakuan 1

File Tipe File

Jenis Eksekusi

Sekuen Enkripsi domain decomposition perlakuan 1

1 4 8 12 16 20 24 1 pohon.jpg (4.762.960 bytes) 3.070 1.747 1.461 1.397 1.342 1.396 1.369 3.064 1.622 1.365 1.473 1.351 1.446 1.477 3.062 1.726 1.401 1.437 1.443 1.475 1.352 3.197 1.614 1.418 1.359 1.435 1.435 1.456 3.065 1.677 1.521 1.453 1.470 1.400 1.380 Waktu Rata-Rata 3.092 1.677 1.433 1.424 1.408 1.430 1.407 SpeedUp 1.843 2.157 2.172 2.196 2.162 2.198 Efisiensi 0.461 0.270 0.181 0.137 0.135 0.137 Cost 6.709 11.466 17.085 22.530 22.884 22.509 Overhead 3.617 8.374 13.993 19.439 19.792 19.418

File Tipe File

Jenis Eksekusi

Sekuen Enkripsi domain decomposition perlakuan 1

1 4 8 12 16 20 24 2 lagu.flac (23.300.227 bytes) 15.184 7.708 6.191 6.252 6.343 6.325 6.225 15.613 7.742 6.181 6.157 6.233 6.233 6.154 15.672 9.076 6.138 6.502 6.435 6.340 6.242 15.549 8.003 6.263 6.368 6.529 6.220 6.083 15.490 7.900 6.145 6.479 6.384 6.499 6.157 Waktu Rata-Rata 15.502 8.086 6.184 6.352 6.385 6.323 6.172 SpeedUp 1.917 2.507 2.441 2.428 2.451 2.511 Efisiensi 0.479 0.313 0.203 0.152 0.153 0.157 Cost 32.343 49.468 76.220 102.159 101.175 98.757 Overhead 16.842 33.967 60.718 86.657 85.673 83.255

File Tipe File

Jenis Eksekusi

Sekuen Enkripsi domain decomposition perlakuan 1

4 8 12 16 20 24 3 video.mp4 (118.522.028 bytes) 76.177 37.213 30.780 29.028 29.197 30.184 29.294 76.229 37.107 30.813 29.331 29.272 30.301 29.834 76.751 37.701 30.979 29.027 29.176 30.322 29.197 76.238 37.302 30.661 28.972 29.300 30.338 29.902 76.351 37.428 30.861 29.201 29.323 30.286 29.557 Waktu Rata-Rata 76.349 37.350 30.819 29.112 29.254 30.286 29.557 SpeedUp 2.044 2.477 2.623 2.610 2.521 2.583 Efisiensi 0.511 0.310 0.219 0.163 0.158 0.161 Cost 149.400 246.550 349.341 468.056 484.580 472.910 Overhead 73.052 170.201 272.993 391.707 408.231 396.561

(20)

Lampiran 7 Data hasil percobaan algoritme dekripsi AES paralel domain decomposition perlakuan 1

File Tipe File

Jenis Eksekusi

Sekuen Dekripsi domain decomposition perlakuan 1

1 4 8 12 16 20 24 1 pohon.chp (4.762.960 bytes) 5.115 2.338 1.863 1.756 1.750 1.640 1.688 5.106 2.145 1.727 1.654 1.619 1.629 1.696 5.097 2.149 1.727 1.626 1.641 1.646 1.553 5.111 2.160 1.762 1.572 1.610 1.696 1.628 5.106 2.206 1.826 1.769 1.543 1.692 1.657 Waktu Rata-Rata 5.107 2.200 1.781 1.676 1.633 1.661 1.644 SpeedUp 2.322 2.868 3.048 3.128 3.075 3.106 Efisiensi 0.580 0.358 0.254 0.196 0.192 0.194 Cost 8.799 14.248 20.107 26.122 26.573 26.306 Overhead 3.692 9.141 15.000 21.015 21.466 21.199

File Tipe File

Jenis Eksekusi

Sekuen Dekripsi domain decomposition perlakuan 1

1 4 8 12 16 20 24 2 lagu.chp (23.300.227 bytes) 25.010 9.940 8.248 7.358 7.266 7.275 7.369 25.938 9.926 8.485 7.338 7.140 7.278 7.214 25.229 10.301 8.298 7.183 7.195 7.312 7.268 25.550 10.052 8.541 7.376 7.592 7.321 7.333 25.647 10.026 7.509 7.263 7.267 7.319 7.086 Waktu Rata-Rata 25.475 10.049 8.216 7.304 7.292 7.301 7.254 SpeedUp 2.535 3.101 3.488 3.494 3.489 3.512 Efisiensi 0.634 0.388 0.291 0.218 0.218 0.219 Cost 40.195 65.730 87.645 116.672 116.820 116.063 Overhead 14.720 40.256 62.170 91.197 91.345 90.588

File Tipe File

Jenis Eksekusi

Sekuen Dekripsi domain decomposition perlakuan 1

1 4 8 12 16 20 24 3 video.chp (118.522.028 bytes) 127.129 50.608 39.144 35.388 35.064 36.978 35.167 127.174 49.985 39.947 36.527 35.216 36.326 35.363 127.329 50.556 39.201 35.966 35.025 36.977 36.521 127.280 49.881 38.820 36.032 36.218 37.066 36.147 127.220 50.530 38.954 35.891 35.099 36.571 35.940 Waktu Rata-Rata 127.227 50.312 39.213 35.961 35.324 36.784 35.828 SpeedUp 2.529 3.244 3.538 3.602 3.459 3.551 Efisiensi 0.632 0.406 0.295 0.225 0.216 0.222 Cost 201.248 313.706 431.532 565.190 588.539 573.241 Overhead 74.021 186.480 304.305 437.963 461.312 446.014

(21)

Lampiran 8 Data hasil percobaan algoritme enkripsi AES paralel domain decomposition perlakuan 2

File Tipe File

Jenis Eksekusi Sekuen

Enkripsi domain decomposition perlakuan 2 1 4 8 12 16 1 pohon.jpg (4.762.960 bytes) 3.070 1.466 1.517 1.369 1.300 3.064 1.467 1.561 1.481 1.490 3.062 1.494 1.480 1.425 1.354 3.197 1.467 1.605 1.539 1.365 3.065 1.471 1.602 1.368 1.353 Waktu Rata-Rata 3.092 1.473 1.553 1.436 1.372 SpeedUp 2.099 1.991 2.152 2.253 Efisiensi 0.525 0.249 0.179 0.141 Cost 5.891 12.423 17.237 21.957 Overhead 2.800 9.331 14.146 18.865

File Tipe File

Jenis Eksekusi Sekuensial

Enkripsi domain decomposition perlakuan 2 1 4 8 12 16 2 lagu.flac (23.300.227 bytes) 15.184 7.176 6.338 6.534 5.765 15.613 7.165 6.533 6.319 6.298 15.672 7.312 6.390 6.278 6.464 15.549 7.189 6.396 6.256 6.371 15.490 8.245 6.548 6.159 6.463 Waktu Rata-Rata 15.502 7.417 6.441 6.309 6.272 SpeedUp 2.090 2.407 2.457 2.472 Efisiensi 0.522 0.301 0.205 0.154 Cost 29.669 51.530 75.712 100.353 Overhead 14.168 36.029 60.211 84.852

File Tipe File

Jenis Eksekusi Sekuen

Enkripsi domain decomposition perlakuan 2 1 4 8 12 16 3 video.mp4 (118.522.028 bytes) 76.177 37.251 31.667 30.264 29.080 76.229 36.531 32.365 30.145 29.216 76.751 36.560 31.606 31.298 29.052 76.238 36.515 32.106 30.022 29.217 76.351 36.565 31.633 30.293 29.064 Waktu Rata-Rata 76.349 36.684 31.875 30.405 29.126 SpeedUp 2.081 2.395 2.511 2.621 Efisiensi 0.520 0.299 0.209 0.164 Cost 146.737 255.002 364.855 466.016 Overhead 70.388 178.653 288.506 389.667

(22)

Lampiran 9 Data hasil percobaan algoritme dekripsi AES paralel domain decomposition perlakuan 2

File Tipe File

Jenis Eksekusi Sekuen

Dekripsi domain decomposition perlakuan 2 1 4 8 12 16 1 pohon.chp (4.762.960 bytes) 5.115 2.395 1.980 1.633 1.599 5.106 2.393 2.023 1.738 1.604 5.097 2.387 1.916 1.646 1.756 5.111 2.393 1.925 1.729 1.537 5.106 2.391 2.018 1.667 1.723 Waktu Rata-Rata 5.107 2.392 1.972 1.683 1.644 SpeedUp 2.135 2.589 3.035 3.107 Efisiensi 0.534 0.324 0.253 0.194 Cost 9.567 15.778 20.194 26.298 Overhead 4.460 10.671 15.087 21.191

File Tipe File

Jenis Eksekusi Sekuen

Dekripsi domain decomposition perlakuan 2 1 4 8 12 16 2 lagu.chp (23.300.227 bytes) 25.010 11.674 8.760 7.546 7.302 25.938 11.653 8.632 7.573 7.288 25.229 11.654 8.856 7.575 7.221 25.550 11.683 8.758 7.577 7.451 25.647 11.700 8.679 7.527 7.372 Waktu Rata-Rata 25.475 11.673 8.737 7.560 7.327 SpeedUp 2.182 2.916 3.370 3.477 Efisiensi 0.546 0.364 0.281 0.217 Cost 46.692 69.897 90.717 117.227 Overhead 21.217 44.422 65.242 91.753

File Tipe File

Jenis Eksekusi Sekuen

Dekripsi domain decomposition perlakuan 2 1 4 8 12 16 3 video.chp (118.522.028 bytes) 127.129 60.562 43.108 37.679 34.591 127.174 60.526 43.393 37.602 35.059 127.329 59.310 44.178 38.198 34.949 127.280 59.258 43.303 37.564 35.232 127.220 60.476 43.166 37.668 34.650 Waktu Rata-Rata 127.227 60.026 43.429 37.742 34.896 SpeedUp 2.120 2.929 3.371 3.646 Efisiensi 0.530 0.366 0.281 0.228 Cost 240.105 347.436 452.905 558.341 Overhead 112.878 220.209 325.678 431.115

(23)

Lampiran 10 Data hasil percobaan algoritme enkripsi AES pipeline

File Tipe File

Jenis Eksekusi

Sekuensial Enkripsi Pipeline

1 2 3 5 1 pohon.jpg (4.762.960 bytes) 3.070 3.292 3.572 2.705 3.064 3.513 3.704 2.861 3.062 3.362 3.841 2.501 3.197 3.202 3.832 2.421 3.065 3.304 3.717 2.597 Waktu Rata-Rata 3.092 3.335 3.733 2.617 SpeedUp 0.927 0.828 1.181 Efisiensi 0.464 0.276 0.236 Cost 6.669 11.200 13.085 Overhead 3.577 8.108 9.993

File Tipe File

Jenis Eksekusi

Sekuensial Enkripsi Pipeline

1 2 3 5 2 lagu.flac (23.300.227 bytes) 15.184 15.614 18.698 13.498 15.613 16.289 18.634 11.272 15.672 16.305 18.337 12.345 15.549 16.239 18.226 11.698 15.490 16.224 18.294 12.355 Waktu Rata-Rata 15.502 16.134 18.438 12.234 SpeedUp 0.961 0.841 1.267 Efisiensi 0.480 0.280 0.253 Cost 32.268 55.313 61.169 Overhead 16.766 39.811 45.667

File Tipe File

Jenis Eksekusi

Sekuensial Enkripsi Pipeline

1 2 3 5 3 video.mp4 (118.522.028 bytes) 76.177 82.789 93.197 62.170 76.229 83.419 92.668 59.348 76.751 83.289 92.520 62.259 76.238 82.862 91.297 62.184 76.351 83.778 91.446 60.396 Waktu Rata-Rata 76.349 83.227 92.225 61.271 SpeedUp 0.917 0.828 1.246 Efisiensi 0.459 0.276 0.249 Cost 166.455 276.676 306.357 Overhead 90.106 200.327 230.008

(24)

Lampiran 11 Data hasil percobaan algoritme dekripsi AES pipeline

File Tipe File

Jenis Eksekusi

Sekuensial Dekripsi Pipeline

1 2 3 5 1 pohon.chp (4.762.960 bytes) 5.115 5.798 6.523 3.510 5.106 5.949 6.773 3.484 5.097 6.296 6.530 3.349 5.111 5.893 6.722 3.361 5.106 5.965 6.687 3.336 Waktu Rata-Rata 5.107 5.980 6.647 3.408 SpeedUp 0.854 0.768 1.498 Efisiensi 0.427 0.256 0.300 Cost 11.960 19.941 17.041 Overhead 6.853 14.834 11.934

File Tipe File

Jenis Eksekusi

Sekuensial Dekripsi Pipeline

1 2 3 5 2 lagu.chp (23.300.227 bytes) 25.010 30.589 33.663 16.317 25.938 30.523 32.718 17.388 25.229 30.241 34.664 16.281 25.550 29.571 34.184 16.272 25.647 30.447 33.394 16.255 Waktu Rata-Rata 25.475 30.274 33.724 16.503 SpeedUp 0.841 0.755 1.544 Efisiensi 0.421 0.252 0.309 Cost 60.548 101.173 82.513 Overhead 35.073 75.698 57.038

File Tipe File

Jenis Eksekusi

Sekuensial Dekripsi Pipeline

1 2 3 5 3 video.chp (118.522.028 bytes) 127.129 147.072 166.296 82.992 127.174 146.597 167.077 83.703 127.329 148.462 166.662 82.770 127.280 145.313 172.100 84.027 127.220 147.131 168.309 83.160 Waktu Rata-Rata 127.227 146.915 168.089 83.330 SpeedUp 0.866 0.757 1.527 Efisiensi 0.433 0.252 0.305 Cost 293.830 504.267 416.652 Overhead 166.603 377.040 289.425

Referensi

Dokumen terkait

permasalahan dalam pengajaran bahasa Jerman. 3) Mengurus surat ijin penelitian ke SMA Pasundan Cikalong Cianjur.. 7) Melakukan pretest untuk mengetahui kemampuan awal siswa.

– Zat atau obat yg berasal dari tanaman a bukan tanaman, sintetis a semi sintetis yg dapat menyebabkan penurunan atau perubahan kesadaran, hilangnya rasa, mengurangi

Analisis secara kualitatif terhadap karbon aktif kayu randu dan tempurung kelapa dibandingkan dengan karbon aktif standar, dilakukan dengan cara : (1) menghitung luas permukaan

Makna ilmu pengetahuan dalam representasi posrealitas desain Gedung Puspem Badung tersirat dari penggunaan teknologi komputer desain 3D dengan realitas virtual

Perilaku kekerasan adalah suatu keadaan dimana seseorang melakukan Perilaku kekerasan adalah suatu keadaan dimana seseorang melakukan tindakan yang dapat membahayakan

1 Hosyatul Aliyah, PENGEMBANGAN MODEL PEMBELAJARAN TEMATIK BERBASIS PROYEK UNTUK MENINGKATKAN KEMAMPUAN BERPIKIR KREATIF SISWA.. Jakarta: JURNAL

Kondisi engagement diukur dengan mengacu pada dimensi dan komponen engagement pada framework APS yang dilakukan dengan pembobotan dengan metode AHP pada

Reflected from computation results of the pretests and the posttests, there were statistically substantial increases of experimental Year- 8 students’ English vocabulary