Apa arti satu komputer lebih baik daripada yang lain? Meskipun ini hanya pertanyan sederhana, analogi penumpang pesawat akan memberi gambaran yang jelas. Tabel dibawah menunjukan tipikal pesawat penumpang, lengkap dengan data-data pendukung
pesawat Kapasitas penumpang Jarak tempuh (mil)
4630 4150 4000 8720
Kecepatah (mph)
610 610 1350 544
Boeing 777 375 Boeing 747 470 BAC/Sud Concorde Douglas DC-8-50 132 146
Jika ingin performa terbaik, terlebih dahulu harus jelas melihat definisi performa. Contoh, dengan pertimbangan perhitungan performa yang berbeda-beda, dapat dilihat pesawat tercepat adalah concorde, pesawat dengan jarak tempuh terjauh adalah DC-8 dan yang terbesar kapasitasnya adalah 747
Jika didefiniskan performa, maka didapatkan 2 kemungkinan. 1. Pesawat tercepat, didapatkan dari kecepatan tercepat, yang membutuhkan waktu tersingkat untuk memindahkan penumpang dari satu tempat ke tempat lain. 2. Pesawat dengan keluaran terbaik, dapat memindahkan banyak penumpang yang banyak, mis 450 orang. Dalam hal ini 747 adalah terbaik, ditunjukan oleh kolom terakhir dari tabel. Maka dapat dikatakan performa komputer dapat didefiniskan dengan berbagai cara
Jika dijalankan sebuah program pada 2 buah komputer, seringkali orang mengatakan bahwa yang tercepat adalah yang terlebih dahulu menghasilkan keluaran. Akan tetapi, pada sebuah pusat data yang memiliki banyak server yang menjalankan banyak program, yang diminta oleh banyak user, maka komputer terbaik adalah yang mampu melakukan seluruh pekerjaan sepanjang hari. Sebagai individu, yang dilakukan adalah mengurangi reponse time waktu antara memulai dan mengakhiri sebuah tugas yang dikenal juga sebagai execution time. Tetapi, manajer pusat data lebih tertarik untuk meningkatkan keluaran, throughput total jumlah
meningkatkan throughput. Maka pada kasus satu, performa kedua-duanya akan meningkat b) Pada kasus 2, tidak ada pekerjaan yang selesai lebih cepat, hanya throughput meningkat. Namun,jika permintaan pekerjaan bagi prosesor kedua sebesar throuhput, maka akan ada antrian. Pada kasus ini, meningkatkan throughput juga akan meningkatkan response waktu, namun mengurangi waktu tunggu di
Melakukan perubahan pada sistem komputer, apakah akan meningkatkan throuhput atau menurunkan response time atau kedua-duanya? Untuk: 1. Mengganti prosesor pada komputer dengan versi tercepat 2. Memberi prosesor tambahan pada sistem sehingga memiliki multiple prosesor untuk tugas yang a. berbeda? Menurunkan response time selalu
Berdasarkan hal tersebut, maka titik berat ada pada response waktu, dimana untuk memaksimalkan performa, maka harus diminimalisir response atau execution time. Sehingga untuk komputer x, hubungan performa dan execution time adalah
Ini berarti untuk 2 komputer, X dan Y, jika performa X lebih besar daripada performa Y, maka
Berarti execution time Y lebih lama daripada X, atu X lebih cepat n kali dari Y, sehingga
Jika komputer A menjalankan sebuah program dalam waktu 10 detik dan komputer B menjalankan program yang sama dalam waktu 15 detik, berapa kali lebih cepat A dibandingkan B? A akan lebih cepat n kali dibanding B jika
digunakan CPU untuk melakukan pekerjaan tertentu. User CPU time: CPU time yang dihabiskan pada program itu System CPU time: CPU time yang dihabiskan di operasi sistem untuk melakukan pekerjaan yang ditugaskan oleh program. Clock cycle: waktu prosesor yang berjalan secara konstan Clock period: panjang clock cycle/ waktu clock cycle untuk selesai Clock cycles per Instruction (CPI), jumlah rata-rata clock cycle yang dipakai oleh setiap instruksi. TUGAS Komputer C bekerja 4x lebih cepat daripada komputer B. Jika komputer B menjalankan sebuah aplikasi dalam waktu 28 detik, berapa lama waktu yang
X Clock cycle
Sebuah program memerlukan waktu ekseskusi 10 detik di komputer A, yang memiliki clock sebesar 4 GHz. Komputer B dirancang untuk menjalankan program selama 6 detik, dengan peningkatan clock rate. Tetapi peningkatan akan menyebabkan komputer B memerlukan waktu 1,2 kali lebih banyak dari clock cycle pada komputerA. Jadi berapa clock rate yang dibutuhkan oleh komputer B
Terlebih dahulu hitung clock cycle yang dibutuhkan oleh program pada komputer A
CPU
arsitektur instruksi yang sama. Komputer A memiliki clock cycle time 250 ps dan CPI 2,0 untuk beberapa program. Komputer B memiliki clock cycle time 500 ps dan CPI 1,2 untuk program yang sama. Komputer mana yang lebih cepat dan seberapa cepat?
Kita tahu bahwa setiap komputer mengekseskusi jumlah
instruksi yang sama untuk program tersebut, sebut saja I. Pertama, cari jumlah clock cycle dari processor untuk setiap komputer.
clock cycles A =
CPU
CPU
I X 2,0 = I X 1,2
setiap komputer
= CPU clock cycles A X Clock Cycle time A = I x 2,0 x 250 ps = 500 I ps CPU time B = CPU clock cycles B X Clock Cycle time B = I x 1,2 x 500 ps = 600 I ps Terlihat bahwa komputer A lebih cepat. Seberapa cepat? Lihat rasio execution time
time A
CPU
berdasar instruction count (jumlah instruksi yang dieksekusi oleh program), CPI dan clock cycle time CPU time = Instruction Count X CPI X Clock Cycle time
clock cycle dengan melihat beberapa tipe instruksiyang berbeda dan mempergunakan masing-masing perhitungan clock cycle.
diantara 2 kode sekuensial untuk komputer tertentu. Fakta CPI untuk instruksi kelas ini dari designer hardware B C menunjukkan A
CPI 1 2 3
kompiler mempertimbangkan 2 kode sekuensial yang dibutuhkan oleh perhitungan instruksi berikut ini
Kode Sekuensial 1
2 Instruction Count untuk instruksi kelas ini
A 2
4
B 1
1
C 2
1
keseluruhan instruksi? Kode sekuensial mana yang lebih cepat? Berapa CPI untuk setiap sekuensial?
Sekuensial 1 melakukan 2+1+2 = 5 instruksi Sekuensial 2 melakukan 4+1+1 = 6 instruksi Gunakan rumus Sehingga:
CPU clock cycle 1 = (1x2)+(2x1)+(3x2)= 2+2+6 =10
melakukan 1 instruksi ekstra. Karena sekuensial 2 memerlukan clock cycle yang lebih sedikit, namun memiliki instruksi lebh banyak,maka pasti memiliki CPI yang lebih rendah.
Java dieksekusi selama 15 detik pada sebuah prosesor. Sebuah kompiler Java yang baru hanya membutuhkan 0,6 dari instruksi kompiler lama, sayangnya akan meningkatkan CPI sebesar 1,1. seberapa cepat aplikasi ini dapat dijalankan pada kompiler baru?
Berdasarkan contoh sebelumnya, maka didapatkan perhitungan kode untuk program yang sama menggunakan 2 kompiler yang berbeda
Kode dari Kompiler 1 Kompiler 2 Instruction Count (milyar) untuk setaip kelas instruksi A 5 10 1 1 B 1 1 C
Asumsikan bahwa clock rate Komputer adalah 4 GHz. Sekuensial mana yang lebih cepat berdasarkan MIPS? Dan berdasarkan execution time?
CPU clock cycles1 = ((1x5)+(2x1)+(3x1) x 109) = 10x 109 CPU clock cycles2 = ((1x10)+(2x1)+(3x1) x 109) = 15x 109 Sekarang dihitung execution time untuk kedua kompiler
Berdasarkan execution time, kompiler 1 menghasilkan program yang lebih cepat. Sekarang hitung MIPS rate untuk setiap versi program dengan rumus
Jadi kompiler 2 memiliki rating MIPS yang lebih tinggi, akan tetapi kode dari kompiler 1 lebih cepat