Anda di halaman 1dari 106

BAB 02

PERFORMANSI KOMPUTER
INSTITUT TEKNOLOGI DAN SAINS AL-KAMAL
IF1141 ARSITEKTUR KOMPUTER DAN SISTEM OPERASI
MOCHAMAD BETA AUDITAMA
Buku Referensi
Computer Organization and Architecture :
Designing for Performance (10th ed.).
(2015). Pearson.
Tujuan Pembelajaran
• Memahami isu2 penting tentang performansi yang berelasi dengan
desain komputer.
• Mendeskripsikan alasan2 mengapa organisasi multicore diperlukan,
dan memahami trade-off antara cache & processor resources dalam
suatu cip.
• Membedakan antara organisasi multicore, MIC, dan GPGPU.
• Menyimpulkan sebagian isu ttg. penilaian performansi komputer.
• Mendiskusikan tentang SPEC benchmarks.
• Mendekripsikan perbedaan antara nilai rerata aritmetik, harmonik,
dan geometrik.
DESAIN KOMPUTER UNTUK PERFORMANSI
Desain Komputer untuk Performansi
• Setiap tahunnya biaya sistem komputer terus menurun, sedangkan
performansi dan kapasitasnya terus meningkat.
❖ Laptop yang ada saat ini memiliki kemampuan komputasi yang ekuivalen dgn.
komputer mainframe IBM puluhan tahun yang lalu.
❖ Semakin tingginya performansi dan kapasitas sistem komputer memungkinkan
untuk mengembangkan aplikasi2 yg. lebih kompleks, seperti image processing,
three-dimensional rendering, speech recognition, dll.
❖ Di sisi bisnis, perusahaan sudah mulai dependen dengan server yang semakin
canggih untuk menangani transaksi, memproses database, dan mendukung ja-
ringan2 client/server berukuran masif.
(cont. to the next slide)
Desain Komputer untuk Performansi
❖ Semakin canggihnya server juga mendorong lebih masifnya penggunaan cloud
computing. Terdapat sekumpulan server, disebut bank of servers, di cloud utk.
mengeksekusi aplikasi2 dgn. tingkat volume dan kecepatan transaksi yg. tinggi.
• Terdapat sejumlah hal yg. perlu diperhatikan dari fenomena turunnya
biaya dan naiknya performansi & kapasitas sistem komputer, yaitu ke-
cepatan mikroprosesor, kesetimbangan performansi, dan peningkat-
an organisasi & arsitektur cip.
Kecepatan Mikroprosesor
• Suatu hal yang membuat prosesor Intel x86 dan komputer mainframe
IBM luar biasa adalah semakin tingginya kecepatan prosesor yang di-
buat oleh manufaktur cip prosesor.
❖ Semakin tingginya kecepatan prosesor disebabkan oleh hukum Moore.
❖ Selama hukum Moore masih berlaku, produsen cip prosesor dapat membuat
generasi cip terbaru tiap tiga tahun yg. memuat empat kali jumlah transistor
lebih banyak dari cip sebelumnya.
❖ Selain semakin banyaknya rangkaian yang dapat dipasang di dalam cip, berku-
rangnya jarak antar-komponen diskrit menyebabkan kec. prosesor bertambah
tinggi. Hal ini menyebabkan tingkat performansi prosesor meningkat sebanyak
empat s/d lima kali lipat tiap tiga tahun.
(cont. to the next slide)
Kecepatan Mikroprosesor
• Namun, bertambah tingginya kecepatan prosesor saja akan percuma
apabila tidak diberikan beban kerja yang setimbang.
• Pendesain prosesor telah merancang sejumlah teknik untuk memberi
beban kerja yang optimal untuk prosesor yang semakin cepat :
❖ Pipelining : Pada teknik ini, eksekusi instruksi2 dibagi ke dalam beberapa tahap
operasi, seperti mengambil instruksi, mendekode opcode, mengambil operan2,
malakukan kalkulasi, dst. Melalui pipelining, prosesor dapat mengeksekusi se-
jumlah instruksi yang berbeda secara bersamaan dgn. meng-assign tiap tahap
operasi dengan masing2 instruksi tersebut. Misal, ketika suatu instruksi sedang
dieksekusi, komputer juga mendekode instruksi yang berikutnya. Prinsip pipe-
lining ini ekuivalen dengan assembly line yang biasa dilakukan di pabrik.
(cont. to the next slide)
Kecepatan Mikroprosesor
❖ Branch prediction : Prosesor melihat kode yang dimuat oleh instruksi yang di-
ambil dari memori, dan kemudian memprediksi branches, atau grup instruksi,
mana yang akan diproses berikutnya. Apabila prosesor mampu memprediksi
secara benar mayoritas waktu, prosesor dapat mengambil instruksi2 yg. benar,
dan kemudian mem-buffer-nya (i.e., menyimpannya secara sementara) sehing-
ga prosesor selalu dibuat sibuk. Dgn. demikian, teknik branch prediction ber-
potensi untuk meningkatkan beban kerja yang harus diselesaikan oleh prose-
sor. Bentuk implementasi branch prediction yang lebih kompleks tidak hanya
memprediksi satu branch berikutnya, tetapi memprediksi lebih dari satu
branch berikutnya sekaligus.
❖ Superscalar execution : Teknik ini mendukung eksekusi lebih dari satu instruksi
utk. satu clock cycle prosesor. Dampaknya, terdapat lebih dari satu pipeline yg.
digunakan dan dioperasikan secara paralel.
(cont. to the next slide)
Kecepatan Mikroprosesor
❖ Data flow analysis : Pada teknik ini, prosesor menganalisis instruksi2 mana saja
yang dependen terhadap hasil eksekusi instruksi yang lain atau data yang lain.
Hal ini bertujuan untuk membuat suatu jadwal eksekusi instruksi yg. optimal.
Apabila instruksi2 langsung dieksekusi saat sudah siap, terlepas dari urutannya
pada program, bentuk implementasi seperti ini akan menghilangkan delay yg.
tidak diperlukan.
❖ Speculative execution : Dgn. memanfaatkan teknik branch prediction dan data
flow analysis, prosesor dapat secara spekulatif mengeksekusi instruksi2 lebih
dini sebelum kemunculan sebenarnya pada eksekusi program, dan seluruh ha-
sil eksekusi instruksi2 ini akan disimpan pada lokasi sementara. Dengan bentuk
implementasi seperti ini, prosesor tetap dibuat sibuk akibat mengeksekusi ins-
truksi2 yang sepertinya akan dibutuhkan nanti.
Kesetimbangan Performansi
• Sayangnya, kecepatan prosesor yang semakin tinggi tidak dapat diim-
bangi oleh komponen2 komputer kritis lainnya.
• Utk. mengatasi masalah ini, perlu diterapkannya kesetimbangan per-
formansi : Suatu penyetelan terhadap organisasi dan arsitektur untuk
mengompensasi ketidaksesuaian performansi antar-komponen.
• Satu komponen komputer yg. perlu diperhatikan di sini adalah antar-
muka antara prosesor dan main memory.
❖ Sementara kecepatan prosesor semakin tinggi, kecepatan transfer data antara
main memory dan prosesor sangat tertinggal jauh.
❖ Antarmuka antara prosesor dan main memory ini sangat penting karena
(cont. to the next slide)
Kesetimbangan Performansi
❖ Antarmuka antara prosesor dan main memory ini sangat penting karena selu-
ruh instruksi dan data yang dipertukarkan antara prosesor dan main memory
melewati antarmuka ini.
❖ Apabila antarmuka ini (dan/atau main memory) tidak dapat mengimbangi pro-
sesor, prosesor terpaksa masuk ke dalam mode stalling yang pada akhirnya
menghilangkan waktu pemrosesan yang berharga.
❖ Terdapat sejumlah solusi untuk mengatasi masalah ini :
➢ Meningkatkan jumlah bit yang diterima di tiap waktu dengan cara 1) mem-
buat DRAM lebih “lebar” bukannya “mendalam,” dan 2) menggunakan data
bus yang lebar.
➢ Memodifikasi antarmuka agar lebih efisien dgn. memuat cache atau skema
buffering lainnya di dalam cip DRAM.
(cont. to the next slide)
Kesetimbangan Performansi
➢ Mengurangi frekuensi akses memori dengan memasang struktur cache yg.
kompleks dan efisien di antara prosesor dan main memory. Hal ini diterap-
kan dengan memuat satu atau lebih cache di dlm. dan di luar cip prosesor.
➢ Meningkatkan bandwidth dari interkoneksi yang menghubungkan antara
prosesor dan memori dengan 1) menggunakan bus yang lebih cepat; atau
2) menggunakan suatu hierarchy of buses utk. mem-buffer dan mengatur
(mengendalikan) aliran data.
• Komponen komputer yang perlu diperhatikan juga adalah antarmuka
antara prosesor dan perangkat2 peripheral.
❖ Sistem komputer yg. semakin cepat biasanya diikuti oleh aplikasi2 yg. semakin
kompleks yang mendukung penggunaan perangkat2 peripheral dgn. perminta-
an I/O yang sangat intensif.
(cont. to the next slide)
Kesetimbangan Performansi
❖ Sistem komputer yg. semakin cepat biasanya diikuti oleh aplikasi2 yg. semakin
kompleks yang mendukung penggunaan perangkat2 peripheral dgn. perminta-
an I/O yang sangat intensif.
❖ Figure 2.1 di slide berikutnya memperlihatkan beberapa contoh perangkat pe-
ripheral yang biasa digunakan di komputer pribadi atau workstation.
❖ Perangkat2 peripheral di Figure 2.1 menghasilkan permintaan data throughput
(i.e., kecepatan transfer data) yang sangat besar.
❖ Meskipun prosesor modern telah mampu menangani data berukuran sangat
besar, masalah terjadi saat data dipindahkan antara prosesor dan peripheral.
❖ Solusi atas masalah ini adalah memasang skema caching & buffering, menggu-
nakan bus yg. lebih cepat, mendesain struktur interkoneksi yg. lebih kompleks,
dan mengimplementasikan konfigurasi multi-prosesor.
Kesetimbangan Performansi
• Kedua masalah sebelumnya memperlihatkan bahwa diperlukan kese-
timbangan permintaan dan pemrosesan data oleh komponen prose-
sor, main memory, perangkat2 I/O, dan struktur interkoneksi.
• Terdapat dua faktor yang harus selalu diperhatikan ketika ingin men-
desain kesetimbangan performansi secara berkelanjutan :
❖ Amati area teknologi mana saja (prosesor, bus, memori, atau peripheral) yg.
perkembangan performansinya selalu jauh lebih cepat dibandingkan dengan
komponen2 komputer yang lainnya.
❖ Adanya aplikasi2 dan peripheral2 baru selalu membentuk pola permintaan yg.
baru terhadap sistem komputer, tepatnya di sisi instruction profile (e.g., spesi-
fik instruksi2 mana saja yang sering digunakan, berapa besar ukuran memori
yang diperlukan untuk mengeksekusi aplikasi, dst.) dan data access patterns.
Peningkatan Organisasi dan Arsitektur Cip
• Meskipun kesetimbangan performansi harus selalu tercapai, kita juga
tetap membutuhkan agar prosesor terus semakin cepat.
• Terdapat tiga pendekatan untuk meningkatkan kecepatan prosesor :
1) Meningkatkan kecepatan hardware prosesor. Peningkatan ini dapat diterapkan
dengan 1) mengecilkan ukuran fisik dari gerbang2 logika yang dimuat di dalam
cip sehingga semakin banyak gerbang logika yg. terpasang secara berdekatan;
dan 2) meningkatkan kecepatan clock. Dengan semakin dekatnya interkoneksi
antar-gerbang logika, waktu propagasi sinyal berkurang secara signifikan yang
pada akhirnya meningkatkan kecepatan prosesor. Peningkatan pada kecepatan
clock mengartikan bahwa eksekusi operasi2 tunggal semakin cepat.
(cont. to the next slide)
Peningkatan Organisasi dan Arsitektur Cip
2) Meningkatkan ukuran dan kecepatan cache yang dipasang di antara prosesor
dan main memory. Sebenarnya, dgn. mengalokasikan sebagian porsi cip pro-
sesor untuk cache, waktu akses ke cache turun secara signifikan.
3) Memodifikasi organisasi dan arsitektur prosesor agar eksekusi instruksi dapat
dilakukan dengan lebih cepat. Hal ini bertujuan agar suatu skema paralelisme
dapat diimplementasikan.
• Selama ini, pendekatan no. 1 di poin sebelumnya yg. paling dominan
dalam meningkatkan kecepatan prosesor, tetapi dijumpai masalah :
❖ Daya : Seiring meningkatnya densitas cip prosesor dan kecepatan clock, densi-
tas daya yang diukur dalam satuan Watt/cm2 juga semakin besar. Masalah disi-
pasi panas ini merupakan isu kritis yg. dihadapi ketika mendesain cip prosesor.
(cont. to the next slide)
Peningkatan Organisasi dan Arsitektur Cip
❖ RC Delay : Kecepatan aliran elektron antar-transistor di dalam cip dibatasi oleh
resistansi dan kapasitansi yg. dihasilkan oleh kabel berbahan logam beserta in-
terkoneksinya; atau dgn. kata lain, delay meningkat seiring dengan hasil perka-
lian RC yang meningkat. Ketika ukuran fisik komponen2 cip semakin kecil, nilai
resistansi kabelnya semakin tinggi. Ketika jarak antar kabel semakin kecil, nilai
kapasitansinya semakin tinggi.
❖ Latensi memori dan data throughput : Kecepatan akses memori (latensi me-
mori) dan kecepatan transfer data (data throughput) tertinggal dari kecepat-
an prosesor, seperti yang telah dijelaskan sebelumnya.
Peningkatan Organisasi dan Arsitektur Cip
• Untuk mengatasi masalah yang dihadapi oleh pendekatan no.1, kita
dapat atasi dengan memaksimalkan pendekatan no. 2 dan no. 3 :
❖ Untuk meningkatkan kecepatan prosesor, kita dapat meningkatkan kapasitas
cache. Saat ini, sudah digunakan cache sebanyak dua s/d tiga level yang dipa-
sang di antara prosesor dan main memory. Ketika densitas cip tersedia lebih
banyak, kita dapat menginkorporasikan lebih banyak memori cache sehingga
dipeorleh akses cache yang lebih cepat. Cip kontemporer telah mendedikasi-
kan lebih dari setengah porsi (>50%) area cipnya untuk memori cache.
❖ Kecepatan prosesor juga dapat ditingkatkan dengan membuat rangkaian logi-
ka yang bertugas mengeksekusi instruksi lebih kompleks agar prosesor dapat
mengeksekusi instruksi2 secara paralel. Dua teknik yang paling terkenal ialah
pipelining dan superscalar.
(cont. to the next slide)
Peningkatan Organisasi dan Arsitektur Cip
❖ Sayangnya di pertengahan dan akhir tahun ’90-an, pendekatan no. 2 dan no. 3
mulai tidak optimal. Organisasi internal prosesor sudah sangat kompleks shg.
skema paralelisme yang paling baik telah diberikan, dan tidak dapat dieksploi-
tasi lebih jauh lagi. Penggunaan cache sebanyak tiga level di cip kontemporer,
dimana setiap level menyediakan kapasitas memori yg. substansial, jg. dinilai
sudah mencukupi sehingga benefit dari cache telah mencapai batasnya.
• Figure 2.2 di slide berikutnya mengilustrasikan konsep2 yang telah di-
bahas sebelumnya dan memperlihatkan solusi yang dapat diterapkan
agar performansi komputer dapat ditingkatkan lebih jauh lagi.
❖ Garis yang terletak di paling atas pada Figure 2.2 menunjukkan bahwa, sesuai
dengan hukum Law, jumlah transistor yang dapat dipasang pada suatu cip se-
making meningkat.
(cont. to the next two slides)
Peningkatan Organisasi dan Arsitektur Cip
❖ Meskipun densitas transistor semakin tinggi, kecepatan clock mulai mendatar,
seperti yg. diperlihatkan oleh garis kedua dan ketiga dari paling atas di Figure
2.2, untuk mencegah semakin tingginya disipasi panas pada cip prosesor.
❖ Agar performansi sistem komputer dapat ditingkatkan lagi, pendesain cip pro-
sesor perlu mencari cara lain untuk mengeksploitasi tren jumlah transistor yg.
terus semakin banyak dalam suatu cip. Alhasil, di beberapa tahun terakhir ini,
pendesain telah menemukan solusinya, yaitu dgn. mengembangkan cip multi-
core, seperti yang diperlihatkan oleh garis paling bawah di Figure 2.2.
MULTICORE, MIC, DAN GPGPU
MULTICORE, MIC, DAN GPGPU
• Multicore merupakan istilah yg. merujuk pada penggunaan lebih dari
satu prosesor di dalam cip yang sama, dan seluruh prosesor ini saling
berbagi akses ke suatu cache berkapasitas besar.
❖ Seperti yg. telah dijelaskan sebelumnya, penerapan multicore berpotensi utk.
meningkatkan performansi tanpa perlu meningkatkan kecepatan clock.
❖ Suatu studi mengindikasikan bahwa, apabila rangkaian pada prosesor tunggal
dibuat lebih kompleks, peningkatan performansinya proporsional dengan akar
kuadrat dari banyaknya kompleksitas yang ditambahkan. Misal, kompleksitas
rangkaian prosesor ditambah menjadi dua kali lipat dari semula, maka pening-
katan performansinya sebesar √2 ≈ 1,414.
(cont. to the next slide)
MULTICORE, MIC, DAN GPGPU
❖ Namun, apabila jumlah prosesor yang digunakan dua kali lebih banyak dari se-
mula, peningkatan performansinya akan dua kali lebih tinggi. Oleh karena itu,
solusi yg. dipilih utk. meningkatkan performansi adalah penerapan multicore,
bukannya menambah kompleksitas rangkaian prosesor.
❖ Telah disebutkan bahwa besar kapasitas cache untuk multicore cukup besar.
Alasannya karena konsumsi daya oleh rangkaian logika memori (i.e., cache)
yang dipasang secara on-chip (di dalam cip) jauh lebih rendah daripada kon-
sumsi daya oleh rangkaian logika pemrosesan (i.e., prosesor).
• Seiring bertambahnya densitas cip tiap waktu, tren penggunaan core
dan cache lebih banyak di dalam satu cip semakin tinggi.
❖ Pada awal perkembangan teknologi multicore, hanya dua core dalam satu cip.
Saat ini, sudah ada 4, 8, 16, dst. core dalam satu cip.
(cont. to the next slide)
MULTICORE, MIC, DAN GPGPU
❖ Untuk cache, seiring semakin tingginya densitas cache di dalam cip, sudah ada
dua s/d tiga level cache di dalam satu cip.
❖ Awalnya, cache level 1 didekasikan untuk tiap core, dan cache level 2 & 3 diak-
ses secara bersama oleh seluruh core. Saat ini, cache level 2 jg. sudah dideka-
sikan untuk masing2 core.
• Produsen cip prosesor telah mulai memproduksi suatu cip prosesor
yang memuat lebih dari 50 core. Teknologi ini dinamakan many inte-
grated core (MIC).
• Perlu diperhatikan, seluruh core pada multicore dan MIC merupakan
prosesor general-purpose.
❖ Prosesor general-purpose merupakan prosesor yang didesain untuk melaksa-
nakan beragam jenis tugas, tidak dioptimasi untuk mengerjakan tugas spesifik.
MULTICORE, MIC, DAN GPGPU
• Produsen cip prosesor juga memproduksi suatu cip yang tidak hanya
memuat prosesor general-purpose, tetapi juga prosesor yang memi-
liki tugas yang spesifik, salah satunya graphics processing unit (GPU).
❖ GPU merupakan suatu core yang didesain untuk mengimplementasikan opera-
si secara paralel terhadap data grafis.
❖ GPU biasanya terpasang dalam suatu kartu grafis, dan secara keseluruhan, kar-
tu grafis ini berfungsi untuk mengenkode dan me-render grafik 2D & 3D serta
memproses video.
❖ Karena GPU mampu melakukan operasi secara paralel terhadap sejumlah set
data, GPU akhirnya mulai banyak digunakan sbg. prosesor vektor untuk meng-
eksekusi beragam aplikasi yang melibatkan banyak komputasi repetitif.
(cont. to the next slide)
MULTICORE, MIC, DAN GPGPU
❖ Karena GPU mampu melakukan operasi secara paralel terhadap sejumlah set
data, GPU akhirnya mulai banyak digunakan sbg. prosesor vektor untuk meng-
eksekusi beragam aplikasi yang melibatkan banyak komputasi repetitif, dan hal
ini mengaburkan perbedaan fungsionalitas antara GPU dan CPU.
❖ Apabila beragam aplikasi dieksekusi oleh GPU, penggunaan GPU seperti ini di-
istilahkan sebagai general-purpose computing on GPU (GPGPU).
DUA HUKUM YANG MEMBERIKAN
PENGETAHUAN TENTANG PERFORMANSI
Dua Hukum yang Memberikan
Pengetahuan tentang Performansi
• Sekarang, kita akan membahas dua hukum yang tidak saling berelasi
satu sama lain, tetapi dpt. memberikan pengetahuan tentang perfor-
mansi sistem paralel dan sistem multicore.
• Kedua hukum yg. dimaksud adalah hukum Amdahl dan hukum Little.
❖ Tepatnya, hukum Amdahl memperlihatkan performansi untuk sistem paralel,
sedangkan hukum Little memperlihatkan performansi untuk sistem multicore.
Hukum Amdahl
• Hukum Amdahl memperlihatkan potensial peningkatan kecepatan
(speedup) eksekusi suatu program saat diproses oleh multiprosesor
dibandingkan dengan prosesor tunggal.
❖ Bayangkan suatu program yang dieksekusi oleh suatu prosesor tunggal yang
mana fraksi sebesar (1 – f) dari total waktu eksekusi melibatkan kode yang se-
penuhnya harus dieksekusi secara sekuensial dan fraksi sisanya sebesar f meli-
batkan kode yg. sepenuhnya dpt. dieksekusi secara paralel tanpa perlu adanya
overhead utk. scheduling. Asumsikan T sbg. total waktu eksekusi program oleh
prosesor tunggal. Maka, besarnya speedup eksekusi ketika seluruh kode yg. se-
penuhnya dapat dieksekusi secara paralel diproses oleh N prosesor :
(Total waktu eksekusi program oleh prosesor tunggal)
Speedup =
(Total waktu eksekusi program oleh N prosesor−paralel)
(cont. to the next slide)
Hukum Amdahl
T 1 − f + Tf 1
Speedup = =
T 1 − f + N 1 − f + Nf
Tf

❖ Persamaan speedup di poin sebelumnya diilustrasikan oleh Figure 2.3 dan 2.4
di satu dan dua slide berikutnya. Terdapat dua kesimpulan yg. dapat diperoleh
dari kedua figure ini :
➢ Ketika f bernilai kecil, penggunaan prosesor-paralel hanya memberikan ke-
untungan yang sedikit.
➢ Saat nilai N mendekati tak hingga, besarnya speedup dibatasi oleh 1/(1 – f)
sehingga keuntungan yang diperoleh dari penggunaan prosesor-paralel yg.
semakin banyak akan semakin berkurang.
(cont. to the next three slides)
Hukum Amdahl
❖ Namun, terdapat suatu studi yg. menyatakan bahwa kedua kesimpulan hukum
Amdahl sebelumnya terlalu pesimistik. Studi tersebut mengemukakan bahwa
penggunaan prosesor-parallel dalam jumlah yang cukup banyak bermanfaat
ketika diimplementasikan pada situasi2 sbb :
➢ Suatu server dapat menangani sejumlah thread atau task yang diminta oleh
sejumlah klien secara paralel sesuai dengan jumlah prosesor yang tersedia.
Semakin banyak prosesor yang tersedia, maka semakin banyak klien yg. da-
pat dilayani oleh server.
➢ Telah banyak database application yg. melakukan komputasi terhadap data
berukuran masif yang terlebih dahulu memisahkan data tersebut ke dalam
sejumlah task, dan baru kemudian mengeksekusinya secara paralel.
(cont. to the next slide)
Hukum Amdahl
❖ Terlepas dari pesimistik atau tidaknya hukum Amdahl, terdapat satu masalah
pasti yang diperlihatkan oleh hukum Amdahl : Ketika jumlah core pada mesin
multicore semakin banyak, software yang dieksekusi pada mesin tersebut ha-
rus didesain agar dapat beradaptasi dengan operational environment dengan
tingkat eksekusi paralel yang tinggi sehingga software tersebut dapat meman-
faatkan kemampuan pemrosesan paralel secara maksimal.
• Hukum Amdahl dapat digeneralisir untuk mengevaluasi performansi
sistem komputer ketika salah satu fiturnya ditingkatkan.
❖ Bayangkan suatu sistem komputer, dimana salah satu fiturnya belum ditingkat-
kan kualitasnya, digunakan untuk mengeksekusi fraksi paralel f. Lalu, setelah fi-
tur ditingkatkan kualitasnya menjadi SUf, besarnya speedup eksekusi adalah :
1
Speedup = f (cont. to the next slide)
1 − f + SU
f
Hukum Amdahl
❖ Example 2.1 : Bayangkan suatu task yang melibatkan secara intensif operasi2
floating-point, tepatnya 40% dari total waktu eksekusi task digunakan untuk
mengeksekusi operasi2 floating-point ini. Setelah adanya desain hardware yg.
baru, modul floating-point ditingkatkan kualitasnya dengan faktor sebesar K.
Maka, besar speedup eksekusi task yang diperoleh :
1 1
Speedup = =
f
1 − f + SU 1 − 0,4 + 0,4
K
f
Dgn. demikian, berapapun nilai K-nya, besar speedup maksimum adalah 1,67.
Hukum Little
• Hukum Little merupakan suatu teorema yg. menentukan jumlah rata2
items (atau unit) yang berada di dalam sistem antrian stasioner.
❖ Bayangkan suatu sistem steady state yang mana kec. rata2 kedatangan items
ke sistem ini adalah λ-(items per satuan waktu). Setiap item ini perlu berada di
dalam sistem selama kurun waktu rata2 W-(satuan waktu) agar dapat diproses.
Dengan demikian, kita dapat menghitung jumlah rata2 items di dalam sistem di
tiap waktu sebagai L = λW-(items).
• Hukum Little diaplikasikan untuk sistem antrian. Mari kita pahami apa
itu sistem antrian?
❖ Elemen sentral dari sistem antrian adalah server yang memiliki tugas utk. me-
layani (atau memproses) items yang diberikan kepadanya.
(cont. to the next slide)
Hukum Little
❖ Ketika sekumpulan item dari suatu populasi items datang ke server utk. minta
dilayani dan apabila server sedang dlm. keadaan idle (diam), server akan sege-
ra melayani sekumpulan item tsb. satu-per-satu. Apabila suatu item datang
dan server tdk. sedang dalam keadaan idle, item tsb. masuk ke dalam antrian.
❖ Terdapat sejumlah model sistem antrian yang dapat diterapkan : Satu antrian
dilayani oleh satu server, satu antrian dilayani oleh dua/lebih server, dan dua/
lebih antrian masing2 dilayani oleh satu server.
❖ Ketika suatu server telah selesai melayani suatu item, item tersebut keluar dari
sistem, dan apabila masih ada item yg. berada di dalam antrian, item tersebut
dikirim ke server untuk dilayani.
(cont. to the next slide)
Hukum Little
❖ Server pada sistem antrian dapat diperankan oleh modul apapun selama mo-
dul tsb. bertugas untuk memproses atau melayani sekumpulan item. Misal :
Prosesor yang berfungsi untuk melayani task yang diberikan, kabel transmisi
yg. menyediakan layanan transmisi paket atau frame data, dan perangkat I/O
menyediakan layanan baca/tulis untuk memenuhi permintaan I/O.
• Untuk memahami lebih jauh tentang hukum Little, kita sekarang meli-
hat contoh penerapan hukum Little pd. sistem komputer multicore.
❖ Sistem komputer multicore terdiri dari sejumlah core yang mana masing2 core
ini mendukung eksekusi multi-thread. Di level tertentu, seluruh core ini saling
berbagi akses ke main memory dan cache; di sini, kita boleh menyebut kedua
memori ini sebagai common memory. Ketika suatu thread sedang dieksekusi,
thread ini dpt. dibilang akan selalu sampai pd. situasi dimana thread memer-
lukan data dari common memory. (cont. to the next slide)
Hukum Little
Untuk memperoleh data yang diinginkan, thread berhenti (disebut stopped
thread), dan kemudian mengeluarkan request utk. meminta data yg. dimak-
sud. Seluruh stopped thread yg. ada kemudian masuk ke dlm. suatu antrian.
❖ Perlu diketahui sebelumnya bahwa thread terbentuk akibat dari adanya per-
mintaan oleh user. Tepatnya, setiap permintaan user diuraikan ke dalam sub-
task2 yang lebih kecil, dan masing2 subtask ini diimplementasikan oleh thread.
❖ Apabila ada seorang analis yang ingin memeriksa apakah kebutuhan user telah
terpenuhi atau tidak oleh sistem komputer multicore, dia dapat memeriksanya
dengan menerapkan hukum Little sbb :
Kita definisikan sistem komputer multicore sebagai server. Terpenuhi atau ti-
daknya kebutuhan user dapat dilihat dari kemampuan sistem sebagai server
dlm. melayani stopped threads secara baik atau tidak. (cont. to the next slide)
Hukum Little
Dengan demikian, analis dapat menerapkan hukum Little dengan mendefinisi-
kan variabel λ, W, dan L sbb : λ = kecepatan rata2 terbentuknya thread akibat
dari permintaan user, W = kurun waktu rata2 yang dibutuhkan oleh sistem un-
tuk menyelesaikan permintaan suatu stopped thread terhitung sejak stopped
thread tersebut mengeluarkan request (i.e., awal mengantri), dan L = jumlah
rata2 stopped threads yg. sedang menunggu di dalam antrian. Semakin besar
nilai L = λW, maka performansi sistem komputer multicore semakin buruk.
MENILAI PERFORMANSI SISTEM KOMPUTER
Menilai Performansi Sistem Komputer
• Terdapat dua dari sekian banyak hal yang dinilai untuk mengetahui
performansi sistem komputer, yaitu kecepatan clock dan kecepatan
eksekusi instruksi.
Kecepatan clock
• Seluruh operasi yang dilakukan oleh prosesor, seperti mengambil ins-
truksi, mendekode instruksi, melakukan operasi aritmetika, dst. diatur
oleh system clock.
❖ Biasanya, seluruh operasi prosesor dimulai ketika adanya pulsa dari clock.
❖ Dengan demikian, kecepatan prosesor ditentukan oleh frekuensi pulsa yang
diukur dalam unit satuan cycles-per-second atau Hertz (Hz).
• Sinyal clock, dihasilkan oleh suatu quartz crystal (i.e., kristal kuarsa)
yg. dpt. menyediakan suatu gelombang sinus secara konstan ketika
diberi daya listrik.
❖ Gelombang sinus ini dikonversi ke sekuens pulsa tegangan digital yang kemu-
dian diberikan ke rangkaian prosesor (lihat Figure 2.5 di slide berikutnya)
(cont. to the next two slides)
Kecepatan clock
❖ Misal, apabila kita menemukan produk prosesor 1-GHz, hal ini mengertikan
bahwa rangkaian prosesor menerima 1 miliar pulsa tegangan per detik. Ke-
cepatan pulsa ini disebut juga sebagai kecepatan clock.
❖ Terdapat dua istilah yang perlu dipahami pada sekuens pulsa tegangan digital,
yaitu clock cycle dan cycle time. Satu clock cycle, atau disebut juga satu clock
tick, merujuk pada satu kenaikan, atau pulsa, yang diikuti dengan satu penu-
runan. Cycle time merujuk pada durasi waktu antara pulsa atau durasi waktu
untuk menyelesaikan satu clock cycle.
• Tidak boleh sembarangan dlm. menentukan kecepatan clock karena
harus sesuai dengan layout fisik dari prosesor.
❖ Setiap operasi prosesor diimplementasikan dalam bentuk sinyal2 listrik yg. di-
kirimkan dari satu elemen prosesor ke elemen prosesor lainnya.
(cont. to the next slide)
Kecepatan clock
❖ Ketika suatu sinyal listrik dialirkan pada- atau dihilangkan dari- kabel konduksi
di dalam prosesor, perlu adanya sedikit waktu agar besar tegangan naik atau
turun ke batas nilai tertentu agar nilai logika 1 atau 0 dapat tersedia.
❖ Selain itu, akibat dari bentuk fisik rangkaian prosesor yang kemungkinan besar
dapat beragam, sebagian sinyal listrik dapat lebih cepat berubah dibandingkan
dengan sebagian sinyal listrik lainnya.
❖ Oleh karena itu, setiap pengimplementasian operasi prosesor harus disinkro-
nisasi dan diatur secara baik supaya besar sinyal listrik (i.e., nilai tegangan) yg.
dimiliki oleh seluruh komponen prosesor telah tersedia dengan benar.
Kecepatan clock
• Kita tdk. dapat membandingkan performansi antar-sistem komputer
hanya dari kecepatan clock saja berdasarkan deskripsi sbb :
❖ Eksekusi instruksi melibatkan beberapa langkah, seperti mengambil instruksi
dari memori, mendekode beragam porsi dari instruksi, loading & storing data,
dan melakukan operasi2 aritmetika & logika.
❖ Dalam mengeksekusi instruksi sesuai dengan langkah2 yang telah disebutkan,
setiap prosesor biasanya memiliki spesifik eksekusi instruksinya masing2 ber-
dasarkan bentuk arsitektur dan organisasi yang dimilikinya.
❖ Dengan demikian, dua prosesor yang memiliki besar kecepatan clock berbeda
sedikit atau bahkan ekuivalen sangat mungkin performansinya berbeda jauh.
❖ Misal, prosesor multicore yang mengimplementasikan teknik pipelining dapat
mengeksekusi sejumlah instruksi sekaligus shg. lebih cepat daripada prosesor
tunggal walaupun kecepatan clock-nya ekuivalen.
Kecepatan Eksekusi Instruksi
• Utk. memahami tentang kecepatan eksekusi instruksi, kita perlu me-
ngetahui variabel2 yang memengaruhinya sbb :
❖ Variabel f : Setiap operasi prosesor disinkronisasi dan diatur oleh clock dgn.
besar frekuensi f yang konstan. Kita juga boleh merepresentasikan clock ini
dalam cycle time τ yang konstan, dimana τ = 1/f.
❖ Variabel Ic : Ini merupakan variabel instruction count utk. merepresentasikan
total instruksi dari eksekusi suatu program hingga selesai, atau total instruksi
yang telah dieksekusi selama interval waktu tertentu.
(cont. to the next slide)
Kecepatan Eksekusi Instruksi
❖ Variabel CPIavg : Setiap program terdiri dari suatu sekuens instruksi yang tipe2
instruksinya beragam, spt. load, store, branch, dst. Setiap tipe instruksi umum-
nya memerlukan jumlah clock cycle yang berbeda agar dapat selesai diekseku-
si oleh prosesor. Apabila didefinisikan variabel CPIi sebagai jumlah clock cycle
yang diperlukan untuk mengeksekusi satu intruksi tipe ke-i hingga selesai dan
variabel Ii sbg. jumlah instruksi tipe ke-i pada suatu program, kita dapat meng-
hitung jumlah clock cycle rata-rata yang diperlukan untuk mengeksekusi satu
instruksi dari program hingga selesai, didenotasikan sebagai CPIavg, sbb :
σn CPIi × Ii
CPIavg = i=1 ….. (2.2)
Ic
dimana CPI merupakan singkatan dari cycles per instruction.
(cont. to the next slide)
Kecepatan Eksekusi Instruksi
❖ Variabel T : Ini merupakan variabel time untuk merepresentasikan waktu pro-
sesor yang dibutuhkan untuk mengeksekusi suatu program. Kita dapat meng-
hitung nilai T melalui persamaan sbb :
T = Ic x CPIavg x τ
Pers. T di atas sebenarnya dapat dimodifikasi apabila kita melihat proses ekse-
kusi instruksi secara lebih detil : Saat mengeksekusi suatu instruksi, sebagian
eksekusi dilakukan oleh prosesor, dan sebagiannya lagi berupa proses transfer
suatu word dari- atau ke- memori. Lamanya waktu untuk menyelesaikan pro-
ses transfer word ini dependen terhadap cycle time memori yg. mana nilainya
itu umumnya lebih besar dari cycle time prosesor. Oleh karena itu, kita dapat
mengubah persamaan T untuk mengakomodasi cycle time memori sbb :
T = Ic x [p + (m x k)] x τ
(cont. to the next slide)
Kecepatan Eksekusi Instruksi
dimana p = jumlah clock cycle prosesor yg. dibutuhkan untuk mendekode dan
mengeksekusi instruksi, m = jumlah memory references (i.e., akses ke memori)
yg. diperlukan, dan k = nilai rasio antara cycle time memori dan cycle time pro-
sesor. Perlu diperhatikan, lima parameter performansi yang ada di pers. T hasil
modifikasi, yaitu (Ic, p, m, k, τ), dipengaruhi oleh empat atribut sistem : desain
dari instruction set (i.e., instruction set architecture); teknologi compiler (sebe-
rapa efektifnya compiler dalam memproduksi program dgn. bahasa mesin dari
program dengan bahasa tingkat tinggi); implementasi prosesor; dan hierarki
cache & memori. Table 2.1 di slide berikutnya memperlihatkan suatu matriks
lima parameter performansi vs. empat atribut sistem; tanda X yang ada di sel
mengindikasikan atribut sistem ybs. memengaruhi parameter performansi yg.
dimaksud.
Kecepatan Eksekusi Instruksi
• Salah satu bentuk pengukuran performansi sistem komputer adalah
dengan mengetahui kecepatan eksekusi instruksi yang direpresenta-
sikan dalam satuan millions of instructions per second (MIPS).
❖ Karena satuannya adalah MIPS, kecepatan eksekusi instruksi biasanya disebut
juga sebagai MIPS rate.
❖ Kita dapat mengekspresikan MIPS rate dalam kec. clock prosesor dan CPIavg :
Ic f
MIPS rate = = ….. (2.3)
T × 106 CPIavg × 106
(cont. to the next slide)
Kecepatan Eksekusi Instruksi
❖ Example 2.2 : Bayangkan eksekusi suatu program pada prosesor tunggal 400-
MHz yang mana total instruksi yg. dieksekusi sebanyak dua juta instruksi. Pro-
gram terdiri dari empat tipe instruksi yang dominan. Nilai instruction mix dan
CPI untuk tiap tipe instruksi disediakan pd. tabel di bawah ini yang diperoleh
dari hasil pelacakan instruksi terhadap program :
Tipe Instruksi CPI Instruction Mix (%)
Arithmetic and logic 1 60
Load/store witch cache hit 2 18
Branch 4 12
Memory reference with cache miss 8 10
Nilai CPIavg saat program dieksekusi oleh prosesor tunggal 400-MHz berdasar-
kan tabel di atas adalah CPIavg = 0,6 + (2 x 0,18) + (4 x 0,12) + (8 x 0,1) = 2,24.
Dengan demikian, nilai MIPS rate = (400 x 106)/(2,24 x 106) ≈ 178.
Kecepatan Eksekusi Instruksi
• Pengukuran performansi sistem komputer yg. lain adalah dgn. menge-
tahui kemampuan sistem dlm. menangani instruksi2 floating-point.
❖ Instruksi2 floating-point sangat digunakan pada aplikasi2 dengan beban kom-
putasi berat, seperti gim dan aplikasi yang berakaitan dengan sains.
❖ Performansi sistem komputer dalam menangani instruksi2 floating-point di-
ekspresikan sbg. millions of floating-point operations per second (MFLOPS)
yang didefinisikan sbb :
Total operasi floating−point pada program yang dieksekusi
MFLOPS rate =
Waktu eksekusi × 106
MENGHITUNG NILAI RERATA
Menghitung Nilai Rerata
• Proses benchmarking utk. membandingkan performansi antar-sistem
komputer melibatkan perhitungan nilai rerata terhadap suatu set of
data points yang berkaitan dengan waktu eksekusi.
❖ Apa itu set of data points? Suatu set data yang terdiri dari satu atau lebih hasil
pengukuran terhadap satu unit observasi.
❖ Sbg. informasi saja, unit observasi yg. biasa dipilih utk. mengukur performansi
sistem komputer adalah waktu eksekusi atau besar penggunaan memori.
• Ternyata, terdapat tiga alternatif algoritma dalam menghitung nilai re-
rata, yaitu nilai rerata aritmetik, geometrik, dan harmonik.
❖ Kita perlu mengerti karakteristik2 dari ketiga alternatif algoritma nilai rerata ini
secara satu-per-satu agar dapat memahami tentang benchmarking yg. akan di-
jelaskan di bagian selanjutnya.
Menghitung Nilai Rerata
• Apabila diberikan suatu set n-bilangan riil (x1, x2, …, xn), ketiga algorit-
ma nilai rerata didefinisikan sbb :
Nilai rerata aritmetik :
x +…+xn 1 n
AM = 1 = σi=1 xi ….. (2.4)
n n
Nilai rerata geometrik :
1/n 1 σn ln x
GM = n x1×…×xn = ςn i=1 xi = e n i=1 i
….. (2.5)
Nilai rerata harmonik :
n n
HM = 1 1 = 1 untuk xi > 0 ….. (2.6)
+…+ σn
x
1 xn i=1 x i
(cont. to the next slide)
Menghitung Nilai Rerata
• Berikut karakteristik yang dapat diperoleh dari tiga persamaan nilai
rerata AM, GM, HM :
❖ Dapat dibuktikan bahwa ketiga alternatif nilai rerata AM, GM, dan HM meme-
nuhi pertidaksamaan di bawah ini (pembuktian tidak dijbarkan di sini).
AM ≥ GM ≥ HM
❖ Ketiga alternatif nilai rerata AM, GM, dan HM hanya akan memberikan nilai yg.
ekuivalen apabila x1 = x2 = … xn.
❖ Example 2.3 : Figure 2.6 di slide berikutnya memperlihatkan tiga alternatif
algoritma nilai rerata yg. diaplikasikan ke beragam set data, dimana setiap
set data terdiri dari sebelas data points dan nilai maksimum dari seluruh
data points dalam suatu set data adalah 11.
Menghitung Nilai Rerata
• Sekarang, bagaimana cara memilih alternatif algoritma nilai rerata yg.
tepat untuk mengukur performansi komputer?
❖ Sudah banyak paper ilmiah dan buku yg. mengargumentasikan kelebihan dan
kekurangan dari ketiga alternatif algoritma nilai rerata ketika digunakan untuk
menganalisis performansi sistem komputer. Sayangnya, argumentasi antara sa-
tu sumber dan sumber lainnya seringkali konflik (berbeda pandangan).
❖ Setelah diteliti, ternyata konflik ini sangat dependen terhadap spesifik contoh
masalah yang dihadapi dan objektif yang ingin dicapai.
❖ Dengan demikian, agar kita dapat memilih algoritma nilai rerata yang tepat,
beberapa slide berikutnya, kita akan membahas lebih mendalam untuk tiap
alternatif algoritma nilai rerata di beberapa slide berikutnya.
Menghitung Nilai Rerata
• Deskripsi nilai rerata aritmetik (AM) :
❖ Contoh masalah yg. tepat menggunakan nilai AM untuk mengukur performan-
si komputer adalah ketika ingin membandingkan sejumlah produk sistem kom-
puter dgn. memeriksa waktu eksekusinya dalam menjalankan suatu program.
❖ Asumsikan spesifik program yang dijalankan adalah program simulasi. Di tiap
produk, kita jalankan simulasi secara berulang kali dgn. nilai masukan yg. ber-
beda. Maka, kita akan memperoleh satu set nilai waktu eksekusi utk. masing2
produk, dan kemudian kita menghitung nilai AM dari tiap set tsb. Setiap nilai
AM mewakili performansi tiap produk dan dapat dibandingkan satu sama lain.
➢ Sebagai informasi saja, contoh masalah menggunakan nilai masukan yang
berbeda ini penting karena mengakomodasi beragam kemungkinan nilai
masukan sehingga hasil pengukuran yang diperoleh tidak bersifat bias.
(cont. to the next slide)
Menghitung Nilai Rerata
❖ Berdasarkan contoh masalah yg. diberikan, kita dapat lihat bahwa, ketika unit
observasinya adalah variabel waktu (e.g., detik) seperti pada waktu eksekusi
program, nilai AM cocok digunakan di sini karena nilai AM sendiri berbanding
lurus dengan total waktu eksekusi. Dengan demikian, apabila nilai total waktu
eksekusi berubah menjadi dua kali lipat, nilai AM juga menjadi dua kali lipat.
• Deskripsi nilai rerata harmonik (HM) :
❖ Sekarang asumsikan unit observasi yg. digunakan pada contoh masalah sebe-
lumnya adalah kecepatan eksekusi instruksi, bukan waktu eksekusi program.
Dengan demikian, kita menginginkan kondisi sbb : Apabila total waktu ekseku-
si yg. diperlukan oleh produk A dua kali lipat lebih besar daripada yg. diperlu-
kan oleh produk B, kita ingin agar nilai rerata kec. eksekusi instruksi untuk pro-
duk A setengah kali dari nilai rerata kec. eksekusi instruksi untuk produk B.
(cont. to the next slide)
Menghitung Nilai Rerata
❖ Kondisi di poin sebelumnya dapat dipenuhi apabila nilai rerata berbanding ter-
balik dengan total waktu eksekusi, dan spesifik nilai rerata yang tepat untuk ini
adalah nilai HM, bukannya nilai AM. Hal ini dapat dilihat sbb :
Bayangkan kita memiliki suatu set yang terdiri dari n-program benchmark dan
mencatat waktu eksekusi untuk masing2 program yang dijalankan pada suatu
sistem komputer sebagai t1, t2, …, tn. Agar sederhana, kita asumsikan tiap pro-
gram benchmark dieksekusi dgn. jumlah operasi yang ekuivalen, yaitu Z (nanti
akan dijelaskan kasus dimana tiap program memiliki jumlah operasi yg. berbe-
da). Maka, kecepatan eksekusi instruksi untuk masing2 program ialah Ri = Z/ti.
Mari kita lihat eksepresi nilai rerata AM dan HM untuk kasus ini :
1 1 n Z Z n 1
AM = σn R = σ = σ
n i=1 i n i=1 ti n i=1 ti
(cont. to the next slide)
Menghitung Nilai Rerata
n n nZ
HM = = = n
σn
1
i=1 Ri σn
1
i=1 Zൗti
σ
i=1 ti
Kita dapat lihat bahwa nilai AM berbanding lurus dgn. total dari se-per-waktu
eksekusi yang mana tidak ekuivalen dengan kriteria yang diinginkan, yaitu ber-
banding terbalik dengan total waktu eksekusi, sehingga nilai AM tdk. cocok di-
gunakan di sini. Justru, nilai HM yang cocok digunakan karena nilainya yg. ber-
banding terbalik dengan total waktu eksekusi.
❖ Perlu diketahui bahwa satuan kecepatan eksekusi instruksi yang biasa diguna-
kan untuk mengukur performansi sistem komputer adalah MIPS atau MFLOPS.
(cont. to the next slide)
Menghitung Nilai Rerata
❖ Example 2.4 : Di sini akan diperlihatkan suatu contoh sederhana yg. mengilus-
trasikan perbedaan antara dua nilai rerata (i.e., nilai AM dan HM) sebagai nilai
rerata kecepatan eksekusi instruksi, seperti yang diperlihatkan oleh Table 2.2
di slide berikutnya. Tabel ini membandingkan performansi dari tiga komputer
dlm. mengeksekusi dua program. Agar sederhana, kita asumsikan program di-
eksekusi dgn. jumlah operasi floating-point yang ekuivalen, yaitu 108-operasi.
Tiga kolom paling kiri pd. tabel memperlihatkan waktu eksekusi utk. tiap kom-
puter yang mengeksekusi masing2 program, total waktu eksekusi, dan nilai AM
utk. waktu eksekusi. Kita dapat lihat bahwa komputer A mengeksekusi dengan
waktu yang lebih sedikit daripada B (i.e., kecepatan eksekusi komputer A lebih
cepat daripada komputer B) & komputer B mengeksekusi dengan waktu yg. le-
bih sedikit daripada C (i.e., kecepatan eksekusi komputer B lebih cepat daripa-
da komputer C), dan hal ini direpresentasikan secara baik oleh nilai AM.
(cont. to the next two slides)
Menghitung Nilai Rerata
Tiga kolom paling kanan pd. tabel memperlihatkan kecepatan eksekusi instruk-
si utk. ketiga komputer dlm. satuan MFLOPS. Perhitungan kecepatan ini sangat
mudah untuk dilakukan. Misal, program 1 mengeksekusi 108-operasi floating
point, dan computer A perlu waktu selama 2 detik utk. mengeksekusi program
1 ini sehingga kecepatan MFLOPS-nya ialah 108/2 = (100/2) x 106 = 50 MFLOPS.
Sekarang, mari kita lihat nilai AM untuk kecepatan eksekusi instruksi dari kom-
puter A, B, dan C, yaitu (91,67; 75,00; 79,17) MFLOPS. Nilai AM memperlihat-
kan bahwa kecepatan komputer A > C > B yg. mana tidak benar karena, berda-
sarkan total waktu eksekusi, seharusnya kecepatan komputer A > B > C. Seka-
rang, mari kita lihat nilai HM untuk kecepatan eksekusi instruksi dari komputer
A, B, dan C, yaitu (72,72; 66,67; 42,11) MFLOPS. Nilai HM menunjukkan bahwa
kecepatan computer A > B > C yang mana hal ini benar. Dengan demikian, nilai
HM lebih disukai ketika menghitung nilai rerata kecepatan.
(cont. to the next slide)
Menghitung Nilai Rerata
❖ Ketika membandingkan performansi antar-komputer seperti yg. diperlihatkan
pada Table 2.2, kita dapat membandingkannya hanya dengan memperhatikan
total waktu eksekusinya saja, tdk. perlu menghitung nilai AM. Apabila unit ob-
servasinya adalah kecepatan eksekusi instruksi, kita hanya perlu memperhati-
kan nilai se-per-total waktu eksekusinya saja, tidak perlu menghitung nilai HM.
Namun, terdapat setidaknya satu alasan kuat mengapa nilai AM dan HM ini di-
perlukan, yaitu seringkali program2 benchmark yang digunakan untuk keperlu-
an evaluasi memiliki bobot yang berbeda. Pada Table 2.2, kita mengasumsikan
bahwa program 1 dan 2 mengeksekusi jumlah operasi yang ekuivalen. Apabila
asumsi ini tidak terpenuhi, kita perlu memberikan bobot yang berbeda untuk
masing2 program. Atau, kita juga boleh memberikan bobot yg. berbeda untuk
merefleksikan derajat kepentingan atau prioritas.
(cont. to the next slide)
Menghitung Nilai Rerata
❖ Mari kita lihat bagaimana ekspresi nilai HM apabila setiap program benchmark
diberi bobot yang berbeda. Asumsikan tiap program i mengeksekusi Zi-instruk-
si selama rentang waktu ti. Maka, persamaan HM dengan bobot, yaitu sbb :
σn Zj
n n j=1
WHM = = = n ….. (2.7)
σn
Zi 1 σn
Zi ti σ
i=1 ti
i=1 σn Zj Ri i=1 σn Zj Zi
j=1 j=1
Menghitung Nilai Rerata
• Deskripsi nilai rerata geometrik (GM) :
❖ Suatu studi mengobservasi dua karakteristik dari nilai GM. Observasi yang per-
tama adalah, ketika salah satu nilai dari suatu set data berubah angkanya, nilai
GM mendistribusikan perubahan angka ini ke seluruh nilai pada set data.
❖ Misal, asumsikan set data terdiri dari sedikit nilai yang angkanya besar dan ba-
nyak nilai yang angkanya kecil. Di sini, nilai AM sangat dipengaruhi oleh nilai2
yang angkanya besar, meskipun jumlahnya hanya sedikit.
❖ Perubahan sebesar 10% pada salah satu nilai yang angkanya besar akan mem-
berikan perubahan nilai AM yg. sangat signifikan, sedangkan perubahan pada
salah satu nilai yg. angkanya kecil dengan faktor yang sama (i.e., sebesar 10%)
hanya akan memberikan perubahan nilai AM yang sangat kecil.
(cont. to the next slide)
Menghitung Nilai Rerata
❖ Berbeda dgn. nilai GM, perubahan sebesar 10% pada salah satu nilai manapun
pd. set data akan menghasilkan perubahan yg. sama pd. nilai GM, yaitu n 1,1.
❖ Example 2.5 : Asumsikan kita memiliki set data (1, 1, 2, 2, 3, 3, 5, 5, 8, 8, 11).
Tabel di bawah ini memperlihatkan efek yang terjadi ketika nilai maksimum
dan minimum pada set data dinaikkan nilainya sebesar 10% :
Nilai Rerata Geometrik Nilai Rerata Aritmetik
\
Nilai awal 3,37 4,45
Menaikkan nilai maks. 11 3,40 (+0,87%) 4,55 (+2,24%)
menjadi 12,1 (+10%)

Menaikkan nilai min. 1 3,40 (+0,87%) 4,44 (+0,20%)


menjadi 1,1 (+10%)

(cont. to the next slide)


Menghitung Nilai Rerata
❖ Observasi yang kedua adalah, Ketika nilai GM digunakan untuk menghitung ni-
lai rerata dari rasio, nilai GM ekuivalen dengan rasio dari dua nilai GM sbb :
1Τ𝑛 1Τ𝑛
𝑛 𝑍𝑖 ς𝑛
𝑖=1 𝑍𝑖
GM = ς𝑖=1 = 1Τ𝑛 ….. (2.8)
𝑡𝑖 ς𝑛 𝑡𝑖
𝑖=1
❖ Sayangnya, di beberapa kasus tertentu ketika unit observasinya adalah waktu
eksekusi, bukan kecepatan eksekusi instruksi, nilai GM memiliki kekurangan di-
bandingkan nilai AM, yaitu nilai GM dari suatu set data lebih kecil dari nilai GM
pada set data lainnya, padahal seharusnya tdk. demikian. Example 2.6 di poin
berikutnya merupakan contoh kasus yang mengilustrasikan situasi ini.
Menghitung Nilai Rerata
❖ Example 2.6 : Asumsikan kita miliki set data c = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
dan set data d = (1, 4, 4, 7, 7, 9, 9, 10, 10, 11, 11). Seperti yang diperlihatkan
oleh table di bawah ini, nilai AM untuk set data d lebih besar dari set data d,
dan sebaliknya untuk nilai GM.
Set data c Set data d

Nilai AM 7,00 7,55

Nilai GM 6,68 6,42

❖ Satu karakteristik nilai GM yang menarik untuk keperluan analisis benchmark


adalah nilai GM memberikan hasil yang selalu konsisten ketika mengukur per-
formansi relatif (i.e., teknik normalisasi) dari sejumlah mesin. Example 2.7 di
poin berikutnya memperlihatkan keunggulan nilai GM ini.
Menghitung Nilai Rerata
❖ Example 2.7 : Di sini akan diperlihatkan konsistensi nilai GM utk. hasil2 norma-
lisasi. Table 2.3 di slide berikutnya dibuat berdasarkan hasil performansi yang
ada pd. Table 2.2. Pada Table 2.3a, setiap waktu eksekusi program 1 dan 2 utk.
komputer A, B, dan C dinormalisasi nilainya terhadap komputer A, dan baik ni-
lai AM maupun GM-nya dihitung dari nilai2 yang telah dinormalisasi. Berdasar-
kan total waktu eksekusinya, kita dapat pastikan bahwa kecepatan komputer A
lebih besar dari B dan kecepatan komputer B lebih besar dari C. Kita lihat bah-
wa nilai AM dan GM merefleksikan ini dengan baik. Pada Table 2.3b, setiap sis-
tem dinormalisasi terhadap komputer B. Sekarang, kita lihat bahwa nilai GM
merefleksikan ini dengan baik, tetapi nilai AM tidak.
(cont. to the next slide)
Menghitung Nilai Rerata
Sayangnya, meskipun nilai GM mampu menyediakan hasil yg. konsisten, tetapi
dapat memberikan hasil pengukuran performansi yg. keliru. Pada Table 2.4 di
slide berikutnya, sebagian waktu eksekusi diubah nilainya. Sekali lagi, nilai AM
memberikan hasil yang benar untuk normalisasi terhadap komputer A, tetapi
memberikan hasil yg. salah untuk normalisasi terhadap komputer B. Nilai GM
memberikan hasil yang konsisten untuk kedua normalisasi, tetapi memberikan
hasil pengukuran performansi yg. salah, tepatnya komputer B lebih cepat dari
A & C dan kecepatan komputer A & C ekuivalen.
Menghitung Nilai Rerata
• Meskipun demikian, SPEC telah memilih algoritma GM untuk keper-
luan benchmarking berdasarkan alasan2 sbb :
❖ Seperti yang telah dilihat, nilai GM memberikan hasil yang konsisten terlepas
dari sistem komputer mana yg. dijadikan referensi. Karena benchmarking pada
hakikatnya merupakan suatu analisis perbandingan antar-sistem, karakteristik
nilai GM yang mampu memberikan hasil yang konsisten ini sangat diperlukan.
❖ Hasil analisa SPEC terhadap algoritma GM memperlihatkan bahwa nilai GM le-
bih less biased (tidak terlalu bias) ketika ada nilai2 pencilan (i.e., outliers).
❖ Analis dari SPEC mendemonstrasikan bahwa distribusi performansi berupa ra-
sio lebih baik dimodelkan dalam distribusi lognormal dibandingkan dgn. distri-
busi normal krn. nilai2 hasil normalisasi umumnya terdistribusi secara skewed.
Seperti yg. dapat dilihat pada Persamaan (2.5), algoritma GM dapat dideskrip-
sikan sebagai nilai rerata back-transformed dari distribusi lognormal.
BENCHMARKS DAN SPEC
Prinsip 2 Benchmark
• Pengukuran performansi prosesor dalam MIPS dan MFLOPS telah ter-
bukti tidak cukup.
❖ Umumnya, dua prosesor dengan arsitektur yang berbeda umumnya memiliki
instruction set yang berbeda sehingga keduanya tidak dapat dibandingkan.
Lihat Example 2.8 di poin berikutnya untuk memahami hal ini.
❖ Example 2.8 : Asumsikan kode yang ditulis dalam bahasa tingkat tinggi sbb :
A = B + C /*asumsikan seluruh operan ada di dalam main memory*/
Apabila arsitektur prosesor yg. digunakan adalah complex instruction set com-
puter (CISC), kode di atas dapat di-compile ke dalam satu baris instruksi sbb :
add mem(B), mem(C), mem(A)
(cont. to the next slide)
Prinsip 2 Benchmark
Apabila proses compile dilakukan pada mesin reduced instruction set compu-
ter (RISC), kita peroleh sekuens instruksi sbb :
load mem(B), reg(1);
load mem(C), reg(2);
add reg(1), reg(2), reg(3);
store reg(3), mem(A)
Karena karakteristik yang dimiliki oleh RISC, meskipun sekuens instruksi di atas
terdiri dari empat baris instruksi, waktu eksekusi yg. dibutuhkan untuk menye-
lesaikan sekuens instruksi di atas hampir sama seperti CISC. Dengan demikian,
kita boleh asumsikan waktu eksekusi RISC dan CISC dlm. mengeksekusi seluruh
instruksinya masing2 adalah ekuivalen. Krn. waktu eksekusinya ekuivalen dan
berdasarkan jumlah instruksi yg. dimilikinya, CISC diberi sebesar rating 1 MIPS
dan RISC diberi sebesar rating 4 MIPS.
(cont. to the next slide)
Prinsip 2 Benchmark
Karena waktu eksekusinya ekuivalen dan berdasarkan jumlah instruksi yang di-
milikinya, CISC diberi rating 1 MIPS dan RISC diberi rating 4 MIPS. Apabila kita
hanya melihat dari nilai MIPS-nya saja, mesin RISC lebih cepat dari mesin CISC.
Namun, faktanya tidak demikian karena keduanya mengeksekusi kode dalam
periode waktu yang sama sehingga seharusnya performansi dari kedua mesin
adalah ekuivalen. Hal ini memperlihatkan bahwa MIPS tidak dapat memban-
dingkan performansi prosesor dengan arsitektur yang berbeda secara baik.
❖ Selain itu, performansi MIPS yg. diperoleh oleh suatu prosesor setelah meng-
eksekusi program bertipe tertentu tidak dapat digunakan sebagai patokan ka-
rena prosesor dapat saja memiliki performansi MIPS yg. berbeda ketika meng-
eksekusi program bertipe lainnya.
Prinsip 2 Benchmark
• Agar proses benchmarking dapat mengakomodasi sistem komputer
yang beragam, khususnya di sisi arsitektur komputernya, pelaku in-
dustri dan para akademisi beralih untuk mengukur performansi via
suatu set program benchmark berstandar yg. diakui secara bersama.
❖ Set program benchmark berstandar ini dapat dieksekusi di mesin yg. berbeda,
dan kemudian dibandingkan waktu eksekusinya.
❖ Karena distandarkan, setiap program pd. set harus memiliki karakteristik2 sbb :
1) program ditulis dalam bahasa pemrograman tingkat tinggi agar dapat diek-
sekusi di mesin2 yang berbeda; 2) program merepresentasikan pemrograman
dari suatu domain atau paradigma tertentu, apakah itu system programming,
numerical programming, atau commercial programming; 3) program dpt. di-
evaluasi tingkat performansinya dengan mudah; dan 4) program dpt. didistri-
busikan (disebarkan) secara luas.
SPEC Benchmarks
• Suatu konsorsium industri yang bernama Standard Performance Eval-
uation Corporation (SPEC) telah mengeluarkan sejumlah set program
benchmark berstandar untuk mengevaluasi sistem komputer.
• SPEC CPU2006 merupakan set program benchmark berstandar dari
SPEC yg. paling terkenal untuk industri yg. umumnya menggunakan
aplikasi2 prosesor-intensif.
❖ Aplikasi prosesor-intensif adalah suatu aplikasi yang mayoritas waktu eksekusi-
nya dialokasikan untuk komputasi daripada untuk keperluan I/O.
• Berikut set program benchmark berstandar lainnya dari SPEC :
❖ SPECviewperf : Mengukur performansi grafis 3D bertaraf aplikasi profesional.
(cont. to the next slide)
SPEC Benchmarks
❖ SPECwpc : Mengukur seluruh aspek kritis dari performansi workstation berda-
sarkan beragam aplikasi profesional, seperti media & hiburan, pengembangan
produk, life sciences (ilmu ttg. organisme hidup), layanan finansial, dan energi.
❖ SPECjvm2008 : Mengevaluasi seluruh aspek hasil kombinasi antara hardware
dan software pada platform klien Java Virtual Machine (JVM).
❖ SPECjbb2013 (Java Business Benchmark) : Mengevaluasi aplikasi2 e-commerce
berbasis Java yang dipasang di sisi server.
❖ SPECsfs2008 : Mengevaluasi kecepatan dan kemampuan penanganan request
pada file server (server yang bertugas menyimpan dan mengelola data).
❖ SPECvirt_sc2013 : Mengevaluasi server2 di datacenter yang mengimplemen-
tasikan virtualized server consolidation.
SPEC Benchmarks
• SPEC2006 terdiri dari program2 yang telah digunakan di dunia nyata
(i.e., real-life applications) dan telah di-porting ke beragam platform.
❖ Alasan mengapa program2 pada SPEC2006 berupa real-life applications adalah
agar hasil benchmark yang diperoleh reliabel dan realistik.
❖ SPEC2006 terdiri dari 12 program utk. integer-benchmarking yg. ditulis dalam
C & C++ dan 17 program untuk floating-point-benchmarking yg. ditulis dalam
C, C++, dan Fortran. Table 2.5 dan 2.6 di slide berikutnya memperlihatkan pro-
gram2 benchmark ini.
SPEC Benchmarks
• Untuk memahami hasil pengukuran performansi dari SPEC2006, kita
perlu memahami istilah2 yang digunakan pada dokumen SPEC :
❖ Benchmark : Suatu program yang ditulis dalam bahasa pemrograman tingkat
tinggi yang di-compile dan dapat dieksekusi di beragam mesin komputer yang
mengimplementasikan compiler ybs.
❖ System under test : Sistem komputer yang sedang dievaluasi.
❖ Reference machine : Ini merupakan sistem komputer yg. digunakan oleh SPEC
sbg. baseline (tolak ukur) untuk seluruh proses benchmark. Setiap benchmark
dieksekusi dan diukur berdasarkan sistem komputer ini (i.e., normalisasi). Dgn.
kata lain, system under test yang dievaluasi dengan mengeksekusi seluruh pro-
gram benchmark SPEC2006 akan dibandingkan dengan reference machine yg.
mengeksekusi program2 benchmark SPEC2006 yang sama.
(cont. to the next slide)
SPEC Benchmarks
❖ Base metric : Sebenarnya, seluruh program benchmark yg. ada pada SPEC2006
berupa source code sehingga perlu di-compile terlebih dahulu. Apabila mode
base metric yang dipilih, proses kompilasi masing2 program benchmark pada
system under test dilakukan menggunakan suatu compiler standar dgn. opsi
setting yang sama, yaitu default settings.
❖ Peak metric : Apabila peak metric yang dipilih, proses kompilasi masing2 pro-
gram benchmark pada system under test dapat dilakukan dengan opsi setting
untuk compiler yang berbeda. Dengan mode peak metric, pengguna diperbo-
lehkan untuk meningkatkan performansi system under test dgn. mengoptimi-
sasi keluaran compiler.
(cont. to the next slide)
SPEC Benchmarks
❖ Speed metric : Ini merupakan pengukuran waktu yang diperlukan untuk meng-
eksekusi suatu program benchmark yg. telah di-compile hingga selesai. Speed
metric, disebut juga sebagai throughput, berfungsi untuk membandingkan ke-
mampuan suatu komputer dalam menyelesaikan tugas2 tunggal.
❖ Rate metric : Ini merupakan pengukuran seberapa banyak tugas yang dapat di-
selesaikan oleh suatu komputer dlm. rentang waktu tertentu. Dgn. rate metric,
system under test diperbolehkan utk. mengeksekusi multi-tugas secara bersa-
ma agar dapat memanfaatkan multi-prosesor yang dimilikinya.
• SPEC menggunakan sistem milik SUN, yaitu Ultra Enterprise 2, seba-
gai mesin referensi pada SPEC2006.
❖ Mesin referensi menggunakan prosesor UltraSPARC II dengan clock speed se-
besar 296-MHz.
(cont. to the next slide)
SPEC Benchmarks
❖ Mesin referensi memerlukan sekitar 12 hari untuk mengeksekusi seluruh pro-
gram benchmark dengan mode base metric.
❖ Table 2.5 dan 2.6 memperlihatkan waktu eksekusi yang diperlukan oleh mesin
referensi untuk menyelesaikan masing2 program benchmark. Kedua tabel juga
memperlihatkan jumlah instruksi aktual yang dieksekusi oleh mesin referensi
untuk tiap program benchmark.
• Sekarang, kita lihat prosedur penilaian performansi sistem komputer
ketika dievaluasi dgn. SPEC2006.
❖ Perlu diperhatikan, prosedur yang akan dideskripsikan berlaku untuk integer-
benchmarking. Namun, prosedur ini jg. dpt. dimodifikasi sedikit utk. floating-
point-benchmarking.
(cont. to the next slide)
SPEC Benchmarks
❖ Prosedur penilaian performansi terdiri dari tiga tahap sbb :
1. Tahap pertama utk. mengevaluasi system under test adalah dengan meng-
compile kode program lalu mengeksekusi program pd. sistem sebanyak tiga
kali. Utk. tiap program benchmark, waktu eksekusi dari ketiga proses ekse-
kusi diukur, dan kemudian menentukan nilai mediannya. Alasan mengapa
perlu utk. mengeksekusi program benchmark sebanyak tiga kali dan memi-
lih nilai median adalah untuk memperhitungkan variasi waktu eksekusi yg.
berasal dari non-instrinsik (luar) program, seperti variasi waktu dlm. meng-
akses disk dan variasi eksekusi kernel OS dari satu eksekusi program dengan
eksekusi program lainnya.
(cont. to the next slide)
SPEC Benchmarks
2. Kemudian, setiap nilai dari 12 hasil yang telah diperoleh dinormalisasi dgn.
menghitung rasio antara waktu eksekusi oleh mesin referensi thdp. waktu
eksekusi oleh system under test. Kalkulasi rasio memiliki ekspresi sbb :
Trefi
ri = ….. (2.9)
Tsuti
dimana Trefi ialah waktu eksekusi program benchmark ke-i oleh mesin re-
ferensi dan Tsuti ialah waktu eksekusi program benchmark ke-i oleh mesin
system under test.
3. Terakhir, nilai GM dari 12 nilai rasio yang telah diperoleh dapat dikalkulasi
untuk memperoleh nilai metrik secara keseluruhan sbb :
12 1Τ12
rG = ςi=1 ri
SPEC Benchmarks
❖ Figure 2.7 di slide berikutnya memperlihatkan flowchart dari prosedur penilai-
an performansi sistem komputer yang dimaksud di poin sebelumnya.
❖ Untuk integer-benchmarking, terdapat empat jenis nilai metrik yang dapat di-
hitung dengan prosedur di atas :
➢ SPECint2006 : Ini merupakan nilai GM dari 12 nilai rasio hasil normalisasi
ketika proses benchmarking dilakukan dalam mode peak.
➢ SPECint_base2006 : Ini merupakan nilai GM dari 12 nilai rasio hasil normali-
sasi ketika proses benchmarking dilakukan dalam mode base.
➢ SPECint_rate2006 : Ini merupakan nilai GM dari 12 nilai rasio throughput
hasil normalisasi ketika proses benchmarking dilakukan dalam mode peak.
➢ SPECint_rate_base2006 : Ini adalah nilai GM dari 12 nilai rasio throughput
hasil normalisasi ketika proses benchmarking dilakukan dalam mode base.
(cont. to the next two slides)
SPEC Benchmarks
❖ Example 2.9 : Seluruh hasil pengukuran utk. Sun Blade 1000 diperlihatkan oleh
Tabel 2.7a di slide berikutnya. Salah satu program benchmark SPEC CPU2006
utk. integer-benchmarking bernama 464.h264ref. Program benchmark ini me-
rupakan H.264/AVC (Advanced Video Coding) yg. merupakan standar kompre-
si video versi paling terkini. Sun Blade 1000 mengeksekusi program benchmark
ini dgn. nilai median sebesar 5259 detik, sedangkan mesin referensi memerlu-
kan waktu eksekusi selama 22130 detik. Dengan demikian, nilai rasio dapat di-
hitung sebagai : 22130/5259 = 4,21. Apabila kalkulasi nilai rasio ini diterapkan
juga utk. sebelas program benchmark lainnya, nilai speed metric dapat dikom-
putasi dengan mengambil akar dua belas dari hasil perkalian nilai rasio sbb :
(3,18 x 2,96 x 2,98 x 3,91 x 3,17 x 3,61
x 3,51 x 2,01 x 4,21 x 2,43 x 2,75 x 3,42)1/12 = 3,12
(cont. to the next three slides)
SPEC Benchmarks
❖ Rate metric mengakomodasi sistem komputer dgn. multiprosesor. Utk. meng-
uji sistem ini, setiap program benchmark disalin sebanyak N salinan program,
dimana N ekuivalen dengan jumlah prosesor atau jumlah thread yang dapat
dieksekusi secara bersama oleh sistem. Nilai rate untuk tiap program bench-
mark diperoleh dengan mengambil nilai median dari tiga eksekusi. Setiap ek-
sekusi terdiri dari N salinan program yg. dieksekusi secara bersama pd. sistem.
Waktu eksekusi merupakan total waktu yang dibutuhkan untuk mengeksekusi
seluruh salinan program hingga selesai. Nilai rate metric untuk suatu program
benchmark dapat dilkalkulasi melalui ekspresi sbb :
Trefi
ratei = N x
Tsuti
Nilai rate metric secara keseluruhan kemudian dapat dihitung dgn. mengkalku-
lasi nilai GM dari seluruh nilai rate metric masing2 program benchmark.
(cont. to the next slide)
SPEC Benchmarks
❖ Example 2.10 : Seluruh hasil pengukuran untuk Sun Blade X6250 diperlihatkan
oleh Table 2.7b. Sistem ini memiliki dua cip prosesor yang mana masing2 pro-
sesor memuat dua core sehingga secara keseluruhan sistem memiliki empat
core. Untuk menghitung nilai rate metric, setiap program benchmark diekse-
kusi secara bersama pada keempat core, dimana waktu eksekusi terhitung dari
awal eksekusi keempat salinan program hingga selesainya salinan program yg.
dieksekusi paling lama. Nilai rasio untuk tiap program benchmark dpt. dihitung
dengan cara yang sama seperti pada Example 2.9. Kemudian, kita menghitung
nilai rate untuk tiap program benchmark dengan mengalikan N = 4 dengan ni-
lai rasio. Maka, kita dapat menghitung nilai rate metric dgn. menghitung nilai
GM dari dua belas nilai rate sbb :
(78,63 x 62,97 x 60,87 x 77,29 x 65,87 x 83,68 x 76,70
x 134,98 x 106,65 x 40,39 x 48,41 x 65,40)1/12 = 71,59
SELESAI

Anda mungkin juga menyukai