Bab 4. Mengkaji dan Memahami Kinerja (Performance) •
Clock cycle – Tik, waktu untuk satu periode clock, biasanya dari sebuah clock prosesor, yang berjalan dalam laju yang konstan
•
Laju clock – 1 / (clock cycle) – Jumlah clock cycle per unit waktu, frekuensi – Contoh, jika clock ratenya 4 GHz, maka cycle timenya ..... (catatan: 1 Hz = 1 cycle / detik) –
•
1 1 = = 2.5 ᄡ 10−10 s / cycle = 0.25ns / cycle 9 4GHz 4 ᄡ 10 Hz
Performance =
MMD 2405
1 Execution time
Andi WRE
1
Kinerja Komputer: WAKTU, WAKTU, WAKTU •
Waktu respons (latency): – Waktu antara saat mulai dan penyelesaian dari sebuah tugas – Biasanya disebut waktu eksekusi atau waktu elaps – Termasuk akses disk, akses memori, aktifitas I/O, overhead sistem operasi, waktu eksekusi CPU, dll
•
Waktu CPU atau waktu eksekusi CPU – Waktu sebenarnya dari CPU yang dipakai untuk komputasi dari tugas spesifik – Tidak termasuk I/O atau waktu yang dihabiskan untuk program yang lainnya – Dapat dipilah menjadi waktu sistem dan waktu user
•
Waktu CPU User – Waktu CPU yang dipakai untuk program itu sendiri
•
Waktu CPU Sistem – Waktu CPU yang dipakai oleh sistem operasi dalam menjalankan tugas karena program tersebut MMD 2405
Andi WRE
2
Kinerja CPU CPU Performance =
1 CPU time
•Waktu CPU = jumlah instruksi x CPI x cycle time, •atau Waktu CPU = jumlah instruksi x CPI / laju clock •CPI : clock cycle dari CPU per instruksi, atau •clock cycle CPU = jumlah instruksi x CPI •Jika terdapat tipe instruksi yang bebeda dengan clock cycle yang berbeda, maka Ci = jumlah instruksi untuk tipe i) n
CPU clock cycles = ¥(CPI i ᄡ Ci ) i =1
MMD 2405
Andi WRE
3
Contoh 1 • Sebuah program berjalan dalam 100 detik di komputer A, yang berjalan dengan clock 2 GHz. Sebuah desainer komputer mencoba membuat mesin baru B, yang akan menjalanka program ini dalam 60 detik. Desainer tersebut dapat menggunakan teknologi baru untuk secara substansial meningkatkan laju clock, tapi peningkatan ini akan berakibat pada desain CPU lainnya, yang menyebabkan mesin B membutuhkan 1.2 kali clock cycle dibandingkan mesin A untuk program yang sama. Berapakah laju clock yang harus ditargetkan oleh desainer? • Jawaban:
MMD 2405
Andi WRE
4
Contoh 2 (CPI) •
Misalnya kita memiliki dua buah implementasi dari instruction set architecture (ISA) yang sama. – Untuk sebuah program • Mesin A memiliki waktu clock cycle 350 ps dan CPI 2.0 • Mesin B memiliki waktu clock cycle 400 ps dan CPI 1.5 • Pertanyaan: Mesin mana yang lebih cepat untuk program diatas dan berapa kali kecepatannya?
•
Jika 2 buah mesin memiliki ISA yang sama, nilai mana (misalnya, laju clock, CPI, waktu eksekusi, # instruksi, MIPS) yang akan identik? MIPS adalah jumlah instruksi dalam juta instruksi per detik
MMD 2405
Andi WRE
5
Contoh 3 (# dari instruksi) • Seorang desainer kompiler mencoba memutuskan diantara 2 buah program (kode sekuens) dari sebuah mesin tertentu. Berdasarkan dari implementasi perangkat keras, terdapat tiga buah kelas instruksi: Kelas A, Kelas B, dan Kelas C, dan ketiganya membutuhkan satu, dua, dan tiga cycle (menurut tipe kelasnya) – Program yang pertama memiliki 10 instruksi : 5 dari A, 2 dari B, dan 3 dari C – Program yang kedua memiliki 12 instruksi: 8 dari A, 3 dari B, dan 1 dari C • Pertanyaan: – Sekuens mana yang lebih cepat? Berapa kali lebih cepat? – Berapakah CPI untuk setiap sekuens? MMD 2405
Andi WRE
6
Contoh 4 (MIPS) •
•
•
Dua kompiler yang berbeda dites untuk mesin berkecepatan 2 GHz, kompiler ini memiliki 3 buah kelas instruksi yang berbeda: Kelas A, Kelas B, dan Kelas C yang membutuhkan satu, dua, dan tiga cycle (untuk masing - masing kelas secara berurutan). Kedua kompiler ini digunakan untuk memproduksi sebuah software yang sangat besar. Kompiler pertama menggunakan 5 juta instruksi kelas A, 1 juta kelas B, dan 2 juta kelas C. Sedangkan kompiler kedua menggunakan 10 juta instruksi kelas A, 1 juta instruksi kelas B, dan 1 juta instruksi kelas C. Pertanyaan: – Sekuens mana yang lebih cepat berdasarkan MIPS? – Sekuens mana yang lebih cepat berdasarkan waktu eksekusi
MMD 2405
Andi WRE
7
Benchmarks • Benchmarks: – Program yang dipilih khusus untuk mengukur kinerja
• Kinerja biasanya lebih baik ditentukan dengan menjalankan aplikasi yang nyata – Menggunakan program tipikal dengan beban kerja yang diharapkan – Atau, tipikal dari kelas aplikasi yang diharapkan, misalnya: kompiler / editor, aplikasi scientific, grafis, dll. • SPEC (System Performance Evaluation Cooperative) – Perusahaan - perusahaan sepakat pada sebuah set dari program nyata dan inputnya – Indikator yang berharga untuk inerja (dan teknologi kompiler) – Masih bisa “dioprek” untuk disalahgunakan
MMD 2405
Andi WRE
8
SPEC 2000 Apakah menggandakan laju clock akan menggandakan kinerja? Dapatkan mesin dengan laju clock rate yang lebih rendah memiliki kinerja yang lebih baik? 1400 1200 Pentium 4 CFP2000 1000 Pentium 4 CINT2000 800 600 Pentium III CINT2000 400 Pentium III CFP2000
200 0 500
1000
1500
2000
2500
3000
3500
Clock rate in MHz
MMD 2405
Andi WRE
9
Hukum Amdahl • Hukum Amdahl: – Waktu eksekusi setelah perbaikan: Waktu eksekusi yang tidak terpengaruh + (Waktu eksekusi yang terpengaruh / jumlah perbaikan). • Contoh: Misalnya sebuah program berjalan 100 detik pada sebuah mesin, dengan operasi perkalian berjalan dalam 80 detik dalam waktu tersebut. Berapakah jumlah perbaikan dalam peningkatan kecepatan perkalian apabila kita ingin program berjalan 4 kali lebih cepat? Bagaimana kalau 5 kali lebih cepat? MMD 2405
Andi WRE
10
Dua Contoh Tambahan 1.
Misalnya kita ingin meningkatkan kinerja sebuah mesin dengan membuat instruksi floating point berjalan 5 kali lebih cepat. Jika waktu eksekusi dari sebuah benchmark sebelum peningkatan adalah 10 detik, berapakah peningkatan kecepatan jika setengah dari 10 detik itu dihabiskan untuk instruksi floating point?
2.
Kita mencari sebuah benchmark yang menunjukkan unit floating point yang digambarkan diatas, dan menginginkan benchmark keseluruhan untuk menunjukkan peningkatan kecepatan 3 kali lipat. Sebuah benchmark yang dipertimbangkan berjalan 100 detik dengan perangkat keras floating point yang lama. Berapakah waktu eksekusi dari instruksi floating point yang harus diperhitungkan di program ini untuk mencapai peningkatan kecepatan yang diinginkan dalam benchmark ini?
MMD 2405
Andi WRE
11
Tentang Peningkatan Kinerja •
Untuk sebuah arsitektur, peningkatan kinerja dapat dicapai dengan satu dari: – Peningkatan laju clock (tanpa merubah CPI) – Peningkatan dalam organisasi prosesor sehingga menurunkan CPI – Peningkatan kompiler yang menurunkan CPI dan / atau jumlah instruksi – Algoritma / pemilihan bahasa pemrograman yang berakibat ke jumlah instruksi
•
Kerugian: mengharapkan peningkatan pada satu aspek pada sebuah mesin akan mempengaruhi kinerja totalnya. MMD 2405
Andi WRE
12