• Tidak ada hasil yang ditemukan

Pengukuran Kinerja Aplikasi DSP secara Parallel Processing Menggunakan Parallax Propeller P8X32A

N/A
N/A
Protected

Academic year: 2021

Membagikan "Pengukuran Kinerja Aplikasi DSP secara Parallel Processing Menggunakan Parallax Propeller P8X32A"

Copied!
5
0
0

Teks penuh

(1)

Abstrak

Perkembangan prosesor dalam beberapa tahun terakhir cenderung lebih mengarah pada peningkatan jumlah core di dalamnya. Peningkatan jumlah core prosesor diharapkan dapat meningkatkan kecepatan proses untuk eksekusi suatu program. Idealnya, peningkatan kecepatan dalam memproses suatu program adalah sama dengan penambahan jumlah core prosesor yang digunakan. Namun pada kenyataanya, peningkatan kecepatan proses tidak mencapai nilai ideal tersebut dan bahkan nilai peningkatannya cenderung beragam apabila aplikasi yang diproses berbeda. Hal ini dikarenakan tingkat paralelisme proses satu dengan proses lain bisa berbeda. Di samping itu, untuk dapat mengeksekusi proses secara paralel dibutuhkan juga proses-proses tambahan seperti kontrol eksekusi dan sinkronisasi.

Dalam tugas akhir ini, diimplementasi aplikasi-aplikasi digital signal processing (DSP) dalam mikrokontroler multicore 32-bit Parallax Propeller P8X32A. Propeller P8X32A memiliki 8 buah Cog (prosesor) yang dapat bekerja secara simultan. Pengukuran dilakukan untuk mengetahui nilai kinerja dari eksekusi suatu aplikasi, baik secara serial maupun secara paralel dalam multicore. Aplikasi-aplikasi yang diukur terdiri atas operasi perkalian matriks, operasi filter Finite Impulse Response (FIR), operasi deteksi tepi citra, operasi filter median citra, operasi Fast Fourier Transform (FFT) radix-2, dan operasi FFT 2 dimensi. Data-data nilai kinerja yang diperoleh dalam tugas akhir ini menunjukkan adanya keberagaman peningkatan nilai kinerja untuk aplikasi multicore yang berbeda. Data-data tersebut juga menunjukkan adanya kecenderungan peningkatan persentasi proses overhead saat jumlah core prosesor yang digunakan bertambah. Dalam beberapa aplikasi, eksekusi program secara paralel dalam multicore membuat efektivitas proses menjadi kurang efektif. Hal ini dipengaruhi oleh tingkat paralelisme dari proses itu sendiri dan efektivitas implementasi proses tersebut. Keywords

Parallel Processing, Digital Signal Processing, Multicore prosesor, Parallax Propeller P8X32A, Pengukuran Kinerja

1. PENDAHULUAN

Dalam beberapa tahun terakhir ini, perkembangan prosesor sudah cenderung tidak meningkatkan lagi kecepatan clock. Untuk meningkatkan kinerja prosesor, kini pengembangan prosesor lebih mengarah pada peningkatan jumlah core dalam setiap keping prosesor. Perusahaan-perusahaan prosesor terbesar di dunia seperti Intel dan AMD kini pun sudah meluncurkan prosesor yang di dalamnya dua atau bahkan empat core. Dalam beberapa tahun ke depan tidak tertutup

kemungkinan jumlah core prosesor ini akan semakin bertambah.

Idealnya, peningkatan kinerja multiprosesor dibandingkan dengan uniprosesor adalah sama dengan penambahan jumlah core yang dimiliki multiprosesor. Artinya secara ideal, penggunaan n buah core seharusnya meningkatkan kinerja proses pada multiprosesor n kali dibandingkan dengan kinerja pada uniprosesor. Namun dalam banyak aplikasi, peningkatan kinerja multiprosesor ini tidak sebesar itu. Hal ini lebih dikarenakan algoritma yang sudah ada merupakan algoritma yang dirancang untuk diproses secara sekuensial. Agar algoritma tersebut dapat dieksekusi secara paralel oleh multiprosesor, algoritma tersebut perlu dimodifikasi menjadi algoritma yang dapat berjalan secara paralel. Proses ini biasa disebut sebagai proses paralelisme. Di samping itu, masalah data bersama, ketersediaan resource, serta komunikasi antar proses merupakan sebagian kendala yang dihadapi dalam mengaplikasikan suatu program di dalam multiprosesor. Dalam tugas akhir ini, penulis akan mengaplikasikan beberapa algoritma digital signal processing (DSP) untuk kemudian diproses secara paralel oleh multiprosesor. Pengaplikasian ini kemudian diukur nilai kinerjanya. Lalu, hasil pengukuran nilai kinerja ini dibandingkan dengan kinerja eksekusi aplikasi dalam uniprosesor. Dalam hal ini, algoritma diimplementasikan dalam mikrokontroler multiprosesor 32-bit Parallax Propeller P8X32A yang di dalamnya terdapat 8 buah Cog (prosesor).

2. PROPELLER P8X32A

Mikrokontroller Parallax Propeller P8X32A merupakan perangkat yang dirancang untuk sistem embedded dengan kecepatan proses tinggi dengan tingkat konsumsi daya yang rendah dan ukuran fisik yang kecil. Untuk dapat memproses dengan cepat, Propeller menyediakan fleksibilitas penggunaan melalui delapan buah prosesor yang terdapat di dalam chip. Masing-masing prosesor dalam Propeller disebut sebagai Cog. Masing-masing Cog dapat berjalan sendiri ataupun bersama-sama secara simultan dalam mengerjakan suatu proses. Chip Parallax Propeller P8X32A memiliki komponen-komponen yang dapat mendukung eksekusi program dalam sejumlah Cog secara simultan. Komponen-komponen tersebut di antaranya adalah komponen shared resource, System Clock,

Pengukuran Kinerja Aplikasi DSP secara Parallel

Processing Menggunakan Parallax Propeller P8X32A

1

Bagus Prasetyo Wibowo - 13204091

1

Sekolah Teknik Elektro dan Informatika – ITB

Jalan Ganesha 10 Bandung

(2)

Cog atau prosesor, Hub sebagai penghubung antara Cog dengan shared resource, serta memori utama yang berukuran 64 KB.

Gambar 1: Chip dan pin I/O chip Propeller P8X32A-D40

Arsitektur dari mikrokontroller Propeller P8X32A ini dapat dilihat pada gambar berikut.

Gambar 2: Diagram blok Propeller

Dari gambar arsitektur di atas, dapat terlihat beberapa bagian yang terdapat pada mikrokontroler Propeller. Masing-masing Cog dapat mengakses memori utama dengan menggunakan Hub. Hub-lah yang akan mengatur pembagian waktu akses Cog terhadap resource yang mutually-exclusive seperti memori utama. Dengan demikian, dapat diperoleh integritas dari resource yang bersifat mutually-exclusive.

3. PERANCANGAN

Untuk dapat melakukan proses secara paralel, masing-masing proses yang diukur, terlebih dahulu dibuat rancangan program dalam bentuk flowchart. Rancangan program dimulai dengan membuat rancangan program untuk dieksekusi secara serial. Kemudian dilanjutkan dengan membuat rancangan yang dapat dieksekusi secara paralel. Dalam ringkasan ini, hanya akan ditampilkan flowchart dari rancangan program paralel. Berikut merupakan flowchart untuk membuat aplikasi multiprosesor yang mengerjakan operasi perkalian matriks.

Matrix Multiplication Multiprocessor

For i from start_n to stop_n For j from 0 to matrix_size - 1 matrix_out[i][j] = temp end For k from 0 to matrix_size - 1 temp = 0

temp = temp + matrix_in[i][k] * matrix_in[k][j]

Gambar 3: Flowchart program perkalian matriks secara paralel

Selanjutnya, berikut merupakan gambaran flowchart rancangan program multiprosesor untuk proses filter FIR.

(3)

Kemudian, dibuat juga rancangan program untuk mengeksekusi proses deteksi tepi. Berikut merupakan flowchart programnya.

Edge Detection Multiprocessor For y from start_n

to stop_n For x from 0 to

img_width - 1 Get 3x3 data Calculate convolution

result for each mask

end Get absolute value of

each result

output[y][x] = threshold(result) result = result_mask1 + result_mask2

Gambar 5: Flowchart proses deteksi tepi citra secara paralel

Selanjutnya, dapat dibuat juga rancangan program untuk mengimplementasikan proses filter median. Berikut merupakan rancangan program yang mengimplementasikan filter median.

Gambar 6: Flowchart operasi filter median secara paralel

Aplikasi lain yang akan dirancang programnya dalam bentuk flowchart adalah aplikasi FFT dan FFT 2 dimensi. Berikut merupakan kedua flowchart yang dirancang.

FFT Multicore For j from 1 to signal_length/2 step j Copy tempR to tempS Do FFT core Multiprosesor end Set initial input FFT

Store result to output Synchronize

Synchronize

Set initial input FFT

For i from start_n to stop_n

tempR[i] = input[ initIndex[i] ]

return

Copy tempR to tempS

For i from start_n to stop_n

tempS[i] = tempR[i]

return

Store result to output

For i from start_n to stop_n

output[i] = tempR[i]

return

Do FFT core

For i from start_n to stop_n return index1 = i-j index2 = i (i|j) != (i+j) yes

tempR[i] = tempS[index1] - temp

index1 = i-j index2 = i

temp = tempS[index2] * wn[ (index1%(2*j)) * signal_length/(2*j) ]

tempR[i] = tempS[index1] - temp no

temp = tempS[index2] * wn[ (index1%(2*j)) * signal_length/(2*j) ]

Gambar 7: Flowchart proses FFT radix-2 secara paralel

Gambar 8: Flowchart proses FFT 2 dimensi secara paralel

4. IMPLEMENTASI

Untuk dapat mengimplementasikan program dalam Propeller, dibuat kode program dalam bahasa C dari rancangan program yang telah dibuat. Hasil kode program bahasa C ini kemudian ditranslasikan ke dalam kode program bahasa Spin. Kode program bahasa Spin ini kemudian dikompilasi untuk kemudian dieksekusi oleh Propeller.

Implementasi dilakukan pada board sistem minimum Propeller P8X32A. Board dapat dilihat pada gambar berikut.

(4)

Modul LED-Bar EEPROM 24C256 2x port PS/2 Mikrokontroller Parallax Propeller P 8X32A-D40 Regulator Tombol Reset MAX3232 Crystal 5 MHz Tombol On/Off Socket DC TV-out Output VGA Port Serial Male

Gambar 9: Implementasi Sistem Minimum Propeller P8X32A

Dengan menggunakan rancangan program yang telah dibuat pada bagian perancangan, dapat dibuat kode program bahasa C yang mengimplementasikan rancangan tersebut. Kemudian, kode bahasa C tersebut ditranslasikan ke dalam bahasa Spin agar dapat dieksekusi oleh Propeller secara paralel.

5. METODE PENGUKURAN

Untuk melakukan pengukuran, digunakan media perantara PC sebagai perantara untuk pengguna. Gambaran ini dapat dilihat pada gambar berikut.

Gambar 10: Ilustrasi cara komunikasi antara PC dengan Propeller

PC digunakan sebagai antarmuka bagi pengguna dalam proses pengukuran kinerja. PC terhubung dengan Propeller dengan saluran komunikasi serial dengan protokol RS232. Untuk selanjutnya, PC dan Propeller dapat saling berkomunikasi untuk melakukan proses pengukuran yang disertai proses verifikasi.

Untuk mendapatkan nilai kinerja, digunakan System Counter yang merupakan 32-bit counter. Untuk mendapatkan nilai kinerja, dilakukan dua kali pengambilan data sebelum dan sesudah melakukan proses. Kemudian, diselisihkan nilai kedua data pengambilan. Dengan demikian dapat diperoleh data nilai kinerja.

Gambar 11: Prosedur pengukuran nilai kinerja program dengan normalisasi

Nilai kinerja yang diperoleh ini kemudian dikirimkan ke PC melalui media komunikasi serial dengan protokol RS232. Untuk mendapatkan nilai kinerja yang lebih presisi, diperlukan proses normalisasi.

6. DATA PENGUKURAN

Dengan menggunakan teknik pengukuran yang telah dijabarkan dalam bagian metode pengukuran, dapat diperoleh hasil data pengukuran seperti yang terlihat pada gambar di bawah ini.

Jenis proses Nilai kinerja dalam siklus clock

1 cog 2 cog 4 cog 8 cog

Perkalian Matrix 2.418.339.232 1.210.214.724 605.271.304 303.206.080 Filter FIR 82.404.256 41.250.048 20.631.632 10.323.168 Deteksi tepi 840.839.440 420.488.448 210.522.304 105.284.964 Filter median 909.239.424 458.556.112 232.561.116 117.019.548 FFT 1D 69.439.936 86.320.900 46.172.452 25.652.826 FFT 2D 186.040.976 93.031.944 46.529.374 23.277.028

Gambar 12: Data pengukuran kinerja

Data-data yang diperoleh di atas dapat diolah untuk mendapatkan data-data yang lebih mudah dimengerti.

7. PENGOLAHAN DATA

Dari seluruh data-data kinerja yang berhasil diperoleh, dapat dibuat perbandingan kinerja antara satu proses dengan proses lainnya. Salah satu perbandingannya tergambar dalam gambar di bawah ini.

(5)

1 cog 2 cog 4 cog 8 cog 0,00000 1,00000 2,00000 3,00000 4,00000 5,00000 6,00000 7,00000 8,00000 9,00000 Perkalian Matrix Filter FIR Deteksi tepi Filter median FFT 1D FFT 2D

Gambar 13: Perbandingan nilai peningkatan kinerja terhadap jumlah core

Dari grafik pada gambar di atas, dapat dilihat bahwa secara keseluruhan, peningkatan kinerja eksekusi secara paralel berbeda-beda untuk aplikasi yang berbeda juga. Dalam hal ini, aplikasi FFT radix-2 merupakan aplikasi yang tidak efektif untuk diproses secara paralel. Perbedaan tingkat kinerja akan semakin terlihat apabila jumlah prosesor yang digunakan semakin banyak.

1 cog 2 cog 4 cog 8 cog 0,00000 0,50000 1,00000 1,50000 2,00000 2,50000 3,00000 3,50000 Perkalian Matrix Filter FIR Deteksi tepi Filter median FFT 2D

Gambar 14: Perbandingan persentasi overhead clock terhadap jumlah core

Grafik di atas menunjukkan perbandingan persentasi overhead clock terhadap jumlah prosesor yang digunakan dalam proses paralel. Pada grafik tersebut, nilai kinerja FFT tidak disertakan karena pada grafik tersebut lebih ditekankan pada perbandingan kinerja proses selain FFT. Dari grafik tersebut, terlihat bahwa nilai persentasi overhead clock untuk setiap proses cenderung meningkat. Hal itu disebabkan penambahan waktu satu clock pada satu prosesor akan meningkatkan waktu proses keseluruhan jauh lebih kecil daripada peningkatan pada multiprosesor. Dengan demikian dalam eksekusi program secara paralel, peningkatan overhead clock pada penambahan jumlah prosesor memang sulit untuk dihindari.

8. KESIMPULAN

Nilai peningkatan kinerja yang diperoleh saat menggunakan multiprosesor dibandingkan dengan saat menggunakan uniprosesor bergantung dari aplikasi yang diproses. Dalam beberapa aplikasi nilai peningkatan kinerja ini cukup mendekati nilai peningkatan yang ideal, namun dalam

beberapa aplikasi lain penggunaan multiprosesor dapat membuat proses eksekusi menjadi kurang efektif.

Proses-proses tambahan dalam eksekusi secara paralel menghasilkan overhead yang dapat menurunkan nilai kinerja. Proses-proses tambahan itu di antaranya adalah proses kontrol multiprosesor, proses sinkronisasi, dan proses tambahan lainnya sebagai konsekuensi eksekusi proses secara paralel. Tingkat persentasi proses overhead pada setiap eksekusi proses secara paralel cenderung meningkat seiring dengan penambahan jumlah prosesor yang digunakan.

Permasalahan yang mendasar dalam mengeksekusi suatu proses dalam multiprosesor adalah bagaimana cara agar suatu proses dapat dieksekusi secara paralel.

9. REFERENCES

[1] Jain, A. K. (1989), Fundamental of Digital Image Processing. Prentice-Hall International Inc.

[2] A. Grama, A. Gupta, G. Karypis, V. Kumar (2003), Introduction to Parallel Computing, Second Edition. Addison Wesley. [3] J. G. Proakis, D. G. Manolakis (1996), Digital Signal Processing:

Principles, Algorithms, and Applications, Third Edition. Prentice Hall.

[4] W. P. Peterson, P. Arbenz. (2004), Introduction to Parallel Computing. Oxford University Press Inc.

[5] Klaus Sander, Oliver Thamm (2007), Propeller RPM: Propeller Rapid Prototyping Module, Elektronikladen ELMICRO. [6] _______________ (2006), Propeller Manual version 1.01,

Parallax Inc.

[7] _______________ (2007), PropellerTM P8X32A Preliminary Datasheet: 8-Cog Multiprocessor Microcontroller, Parallax Inc. [8] _______________ (1998), Datasheet: 2-Wire Serial EEPROMs,

AT24C128 AT24C256, Atmel Corporation.

[9] _______________ (2004), Datasheet: LM1117/LM1117I, 800mA Low-Dropout Linear Regulator, National Semiconductor.

[10] _______________ (2007), Datasheet: 3.0V to 5.5V, Low-Power, up to 1Mbps, True RS-232 Transceivers Using Four 0.1µF External Capacitors,

MAX3222/MAX3232/MAX3237/MAX3241, Maxim Integrated Products

Gambar

Gambar 4: Flowchart proses filter FIR secara paralel
Gambar 7: Flowchart proses FFT radix-2 secara paralel
Gambar 10: Ilustrasi cara komunikasi antara PC dengan Propeller  PC digunakan sebagai antarmuka bagi pengguna dalam proses  pengukuran  kinerja
Gambar 13: Perbandingan nilai peningkatan kinerja terhadap jumlah core Dari  grafik  pada  gambar  di  atas,  dapat  dilihat  bahwa  secara  keseluruhan,  peningkatan  kinerja  eksekusi  secara  paralel  berbeda-beda untuk aplikasi yang berbeda juga

Referensi

Dokumen terkait

• Memenuhi keb anggota kelg • Membantu anak u/ sosialisasi • Beradaptasi dg anak ke 2.. • Pembagian waktu u/ individu,

Analisis Terjemahan Jenis Proses Pidato Pelantikan Presiden Barack Hussein Obama dan Donald Trump (Sebuah Kajian Terjemahan dengan Pendekatan Sistemik

Kemudian jika ditinjau dari komposisi kimianya, baja laterit berpeluang untuk menjadi baja HSLA dengan mengkhususkan Ni sebagai unsur pemadu untuk memperoleh sifat mekanik yang

Seiring dengan fungsi bank sebagai lembaga intermediasi, bank dengan kegiatan penyaluran dana dalam bentuk kredit dianggap sebagai tonggak pergerakan ekonomi suatu negara, dimana

Hasil penelitian ini menunjukan bahwa minat mahasiswa Penjaskesrek FKIP Unsyiah sebagai instruktur senam kebugaran jasmani (SKJ) dengan rata- rata 61,45 berada

Perbedaan yang sangat mencolok adalah pada tahun 2015 dimana rata-rata laba yang didapatkan oleh Bank dengan kategori ini mengalami penurunan hingga nilainya mencapai – Rp85.299

Kepala Bagian Hukum dan Hak Asasi Manusia mempunyai tugas pokok melaksanakan sebagian tugas Asisten Pemerintahan dalam memimpin, mengkoordinasikan, membina dan

Hasil dari penelitian menunjukkan bahwa pengawasan internal, pengawasan oleh kreditur, dan pengawasan oleh auditor independen dari sudut pandang kompetensi