Jika suatu tugas membutuhkan waktu 10 jam pada prosesor 1GHz, apakah itu membutuhkan waktu 5 jam pada prosesor 2Ghz?

12

Jika suatu tugas membutuhkan waktu 10 jam pada prosesor 1GHz, apakah itu membutuhkan waktu 5 jam pada prosesor 2Ghz?

Atau apakah saya terlalu menyederhanakan masalah?

aneuryzm
sumber

Jawaban:

20

Seperti yang ditunjukkan oleh jawaban lain, bahkan jika CPU bekerja 5 kali lebih cepat, tidak semuanya akan menjadi 5 kali lebih cepat, karena kadang-kadang komputer menghabiskan waktu tidak bekerja dengan CPU, tetapi menunggu operasi lain, seperti disk atau jaringan I / HAI.

Selain itu, CPU modern cukup rumit secara internal, dan melakukan segala macam trik mewah (pipelining, prediksi cabang, eksekusi out-of-order) untuk mempercepat. Ini mungkin bekerja lebih baik atau tidak pada CPU yang lebih cepat, sehingga bahkan untuk tugas-tugas yang terikat CPU percepatan mungkin tidak akan 5 kali.

Mungkin kurang, atau bahkan lebih, tergantung pada sifat tugas dan seberapa baik itu sejalan dengan optimisasi yang coba digunakan CPU. Juga, optimasi ini sendiri mungkin akan berbeda dalam model CPU baru (bahkan jika itu dari seri yang sama).

sleske
sumber
1
+1 untuk penjelasan yang sangat jelas tentang beberapa poin yang sangat halus.
Shinrai
2
Kadang-kadang Anda mungkin memiliki lebih banyak core yang memberikan tolok ukur yang lebih tinggi pada tugas-tugas seperti encoding video tetapi banyak tugas lain tidak akan melihat speedup kecuali mereka dapat memanfaatkan semua core.
Jared Updike
8

Tidak, itu hanya 1 kasus terbaik. Jika tugas Anda memerlukan mis. Akses jaringan atau hard drive, itu akan menjadi hambatan yang tidak dapat Anda kompensasi dengan CPU yang lebih cepat.

1 ) dengan asumsi tidak ada perubahan lain di mana dilakukan pada sistem dan CPU

Tobias Kienzler
sumber
8

Tidak. Semua waktu yang dibutuhkan oleh aplikasi untuk menjalankan tidak hanya tergantung pada kecepatan prosesor.
Sebagai contoh:

  • Input dan output disk bergantung pada kecepatan rotasi piringan disk
  • Memori membaca, menulis bisa lebih lambat atau lebih cepat tergantung pada cache
  • Penjadwalan proses mungkin berbeda.
Benoit
sumber
2

Jika Anda membuat, katakanlah, program yang menghitung bilangan prima dan sama sekali tidak ada akses I / O atau akses jaringan yang dilakukan, kecepatannya masih belum berlipat ganda. Itu bisa sangat berbeda.

Jika merupakan CPU dengan merek, generasi, teknologi, jumlah transistor, set instruksi yang sama, dan ukuran komponen yang sama dalam nanometer, frekuensi ganda dapat berarti kecepatan ganda. Itu berarti jika Anda tidak menyimpan apa pun dan tidak ada hambatan pada cache CPU.

sinni800
sumber
Anda lupa elemen lain seperti memori cache, yang tidak akan berlipat ganda dalam kecepatan. Bagaimanapun, CPU mengeksekusi instruksi dari cache (dalam skenario best-of).
harrymc
Saya tidak lupa cache, baca dua kata terakhir :). Prasyaratnya adalah bahwa tidak ada hambatan pada cache tersebut, bahwa cache berfungsi masih cukup cepat
sinni800