..(1)
Sedangkan kunci public d digunakan untuk
melakukan dekripsi terhadap chipetext C sehingga
menghasilkan plain text M yang semula dengan
menggunakan modular exponentiation yang sama
sebagai berikut
=
mod n.(2)
Adapun dalam penggunaannya untuk tanda
tangan digital, kunci privat dapat digunakan untuk
menandatangi surat suara elektronik dengan
perhitungan yang sama pada persamaan 1.
Sedangkan persamaan 2 digunakan untuk
melakukan pengujian terhadap keaslian surat
suara yang diterima oleh server. Dengan
demikian, dalam hal aplikasi e-voting,
penandatanganan dilakukan menggunakan kunci
privat milik komputer TPS sedangkan pengujian
keaslian dilakukan pada sisi server.
III. Experiment
Bagian ini membahas experiment untuk evaluasi
kinerja program paralel dengan algoritma tanda
tangan digital RSA menggunakan komputer
berbasis prosesor multicore.
III.1. Perangkat Lunak Yang Digunakan
Dalam eksperimen ini, antrian pesan-pesan hasil
pemungutan suara disimulasikan dengan
menggunakan array bertipe integer. Jumlah
elemen array ada sebanyak 1024. Setiap elemen
array ditanda tangani secara berulang-ulang
dengan kunci RSA 1024 bit sedemikian sehingga
jumlah operasi tanda tangan berkisar 590000
hingga 620000 operasi tanda tangan. Proses tanda
tangan dilakukan secara paralel. Algoritma RSA
dalam eksperimen ini diimplementasikan
menggunakan pustaka GMP 4. Program
dikompilasi menggunakan Intel C compiler
dengan pustaka intel Cilkplus yang tersedia pada
perangkat lunak Intel Parallel Studio. Pada saat
program dikompilasi, digunakan opsi O3 lgmp.
III.1. Metode
Dalam penelitian ini, lunak yang
dikembangkan berdasar pada teknik pemrograman
parallel menggunakan teknik worstealing dan
algoritma divide and conquer.
Teknik workstealing[6][7][8][9] adalah
teknik pemrograman parallel dimana prosesor-
prosesor logika atau thread-thread yang tidak
memiliki kerja secara aktif mencari tugas-tugas
dari thread yang lain. Thread-thread yang lain bias
sibuk atau membuat banyak tugas-tugas. Metode
yang digunakan adalah thread membuat tugas-
tugas seperti melakunan pemanggilan sub
program/function. Dengan demikian thread tidak
banyak mengorbankan siklus clock untuk
membuat tugas-tugas. Teknik ini sangat efisien
dan dikenal dengan teknik lazy task creation[10].
Jurnal JPE-UMUM/TST/TEI/TMI/TKM/TAP/TGT., VOL. XX-A/B/C/D/E/F, No. xx, BULAN XX TAHUN 20xx JPE-UNHAS
201X Jurnal Penelitian Enjiniring, Fakultas Teknik, Universitas Hasanuddin
Supported by IEEE Indonesia Section
Hal | 7
Untuk memanfaatkan sejumlah sumber daya
komputasi seperti prosesor multicore, komputasi
di distribusikan ke setiap core-core yang dimiliki.
Dalam hal ini, aplikasi memanfaatkan paralelisme
dalam for-loop. Satu bahasa yang melakukan
paralelisme pada loop adalah bahasa cilk_for.
Bahasa cilk_for ini menggunakan pendekatan
divide-and-conquer untuk mengimplementasikan
parallel for-loop. Algoritma divide-and-
conquer melakukan transformasi loop menjadi
suatu bentuk pohon biner dimana pada daun-daun
pohon biner itulah thread-thread mengeksekusi
setiap iterasi dengan menggunakan teknik
workstealing.
III.2. Konfigurasi Percobaan
Eksperimen dilakukan pada sebuah komputer
multicore dengan spesifikasi sebagai berikut
a. Dua Prosesor AMD 6168 1,9 GHz
b. Total 24 core processor
c. RAM DDR 3 1066 MHz 4 GB
d. Sistem Operasi Linux Centos 5.5
III.3. Pelaksanaan dan Hasil Percobaan
Percobaan penggunakan prosesor multicore pada
algoritma RSA 1024 bit dilakukan secara
berulang-berulang mengikuti pengaturan jumlah
inti prosesor. Pada percobaan yang pertama kali
hanya digunakan sebuah inti prosesor untuk
melakukan sebanyak 594177 tanda tangan digital.
Percobaan diulang dengan jumlah inti prosesor
dan jumlah operasi yang berbeda seperti yang
ditunjukan pada tabel 2. Tabel 2 menunjukkan
waktu-waktu eksekusi algoritma RSA dengan
jumlah prosesor core yang berubah-ubah. Jumlah
prosesor core ini diubah-ubah dengan mensetting
variabel lingkungan CILK_NWORKERS yaitu
jumlah worker. Jumlah worker 1 mengeksekusi
594177 tanda tangan RSA dalam waktu 961 detik
76 milidetik. Dan jumlah worker 24
mengeksekusi 595238 tanda tangan RSA dalam
waktu 41 detik 968 milidetik. Meskipun jumlah
operasi tanda tangan yang terakhir ini lebih
banyak, speedup S
24
menggunakan 24 prosesor
core yaitu
=
Tabel 2. Waktu Eksekusi algoritma RSA
menggunakan parallel-for-loop
CILK
NWORKERS
Jumlah operasi
(tanda tangan rsa)
Waktu
eksekusi
1
2
4
8
16
24
594177
619386
598981
620156
600420
595238
961 s 760 ms
501 s 586 ms
243 s 124 ms
126 s 808 ms
61 s 504 ms
41 s 968 ms
IV. Kesimpulan
Dengan metode workstealing dan divide-and-
conquer yang diimplementasikan oleh bahasa
cilk_for sejumlah besar operasi tanda tangan
digital RSA dieksekusi dengan peningkatan
kecepatan 22.9 kali menggunakan prosesor core
sebanyak 24. Sehingga efisiensi sumberdaya
prosesor yaitu 95%. Dengan demikian metode
yang digunakan dapat membantu aplikasi e-voting
untuk mempercepat waktu pemrosesan surat suara
digital.
Kepustakaan
[1] Nichols, B., Buttlar, D., and Farrell, J.~P.}
Pthreads programming - a POSIX standard for
better multiprocessing, O'Reilly, 1996.
[2] OpenMP ARB. Openmp application program
interface, v.3.0. Online, 2008.
[3] R. Blumofe et~al., ``Cilk: An efficient
multithreaded runtime system,'' Journal of
Parallel and Distributed Computing, vol.~37,
no. 1, pp. 55--69, 1996.
[4] M. Frigo, C.E. Leiserson, and K.H. Randall,
``The implementation of the Cilk-5
multithreaded language,'' ACM SIG PLAN
Notices}, vol.33, no.5, pp. 212--223, May
1998.
[5] Adnan, Metode Divide and Conquer Parallel
dan Parallel-Reduce Pada Cilk for Untuk
Aplikasi E-Voting Berbasis Sistem Prosesor
Multicore, Seminar Nasional Aplikasi
Teknologi Informasi 2013. pp L13-L18.
[6] Blumofe, R.D., and Leiserson, C.E. Scheduling
multithreaded computations by work stealing.
J. ACM 46 (September 1999), 720--748.
[7] Efficient work stealing strategies for fine-grain
task parallelism.In Proceedings of the 2011
IEEE International Symposium on Parallel and
Distributed Processing Workshops and PhD
Forum\/} (Washington, DC, USA, 2011),
IPDPSW '11, IEEE Computer Society,
pp.~577--583.
[8] Adnan, and Sato, M.Dynamic multiple work
stealing strategy for flexible load
Jurnal JPE-UMUM/TST/TEI/TMI/TKM/TAP/TGT., VOL. XX-A/B/C/D/E/F, No. xx, BULAN XX TAHUN 20xx JPE-UNHAS
201X Jurnal Penelitian Enjiniring, Fakultas Teknik, Universitas Hasanuddin
Supported by IEEE Indonesia Section
Hal | 8
balancing.Information and Systems, IEICE
Trans. E95-D, 6 (2012), 1565--1576.
[9] A work stealing scheduler for parallel loops on
shared cache multicores. In Proceedings of
the 2010 conference on Parallel processing
(Berlin, Heidelberg, 2011), Euro-Par 2010,
Springer-Verlag, pp.~99--107.
[10] Mohr, E., Kranz, D.~A., and Halstead, Jr.,
R.~H. Lazy task creation: A technique for
increasing the granularity of parallel programs.
IEEE Trans. Parallel Distrib. Syst. 2\/} (July
1991), 264--280.