Katakanlah kita memiliki dua CPU, Satu adalah Quad Core 3.2 Ghz dengan 4 Cores, dan Kami memiliki Dual Core 3.2 Ghz dengan 2 Cores dengan 2 utas di setiap Core (Hyper-Threading). Asumsi saya sebagai seorang programmer adalah, 4 core 4 thread harus berkinerja lebih cepat dari 2 core 4 thread karena CPU kedua perlu beralih antar thread untuk mengemulasi 4 core sementara yang pertama tidak perlu melakukan switching seperti masing-masing core dapat tampil secara independen dan individual.
Saya ingin mengkonfirmasi bahwa asumsi saya benar, jika tidak tolong jelaskan mengapa yang satu lebih baik dari yang lain.
Jawaban:
Saya percaya itu benar - karena hyper threading memang berbagi beberapa elemen - khususnya sumber daya eksekusi utama, Anda akan dapat menjalankan 4 utas sekaligus, daripada menunggu sumber daya tersebut dibebaskan.
Inti dari HT adalah untuk mendapatkan kinerja yang lebih baik dengan penggunaan area die yang lebih kecil - quad core Anda umumnya akan menjadi chip yang lebih besar - katakanlah hampir dua kali lebih besar, daripada chip dual core non HT, sedangkan chip dual core HT adalah sekitar 5% lebih besar. Quad core dapat melihat hingga dua kali kecepatan di bawah beban kerja yang tepat (meskipun, tidak mungkin karena Anda mungkin tidak akan menjalankan 4 thread pada kapasitas penuh dalam kebanyakan kasus), sedangkan prosesor dual core HT akan melihat 15-30% lebih baik kinerja ( menurut wikipedia ) daripada prosesor dual core non HT.
Core yang lebih aktual biasanya lebih baik.
sumber
Dari Wikipedia :
Jika Anda memiliki sistem quad core, maka 4 utas dapat berjalan masing-masing pada inti penuh. Jika Anda memiliki sistem dual core hyperthreading, maka 2 utas dapat berjalan masing-masing pada inti penuh, tetapi dengan 4 utas, benang 1 dan 2 akan berbagi satu inti dan utas 3 dan 4 akan berbagi inti lainnya. Hyperthreading memungkinkan dua utas untuk berjalan secara paralel (hanya) jika tidak menggunakan sumber daya prosesor yang sama. Jadi dalam kasus ideal Anda mungkin mendapatkan tingkat paralelisasi yang tinggi, tetapi seperti yang dinyatakan oleh Wikipedia, peningkatan kinerja bukanlah 100%, tetapi hanya 15-30%.
sumber
Dalam hyper-threading, waktu idle dari core untuk taskA (core tersebut bisa mengirim permintaan ke disk untuk data, tunggu disk untuk mencari area piring-piring, membaca data dan mengirimkannya kembali ke core ) dieksploitasi untuk melakukan tugas lainB. Jadi, ketika taskB sedang dilayani oleh yang disebut thread 2, dan jika data mengambil permintaan oleh taskA selesai, taskA masih harus menunggu inti untuk menyelesaikan thread 2. Kedua thread tidak dapat dieksekusi secara bersamaan dalam satu inti. Sekali lagi, HT mengeksploitasi ketidakcocokan kecepatan antara inti / prosesor dan berbagai subsistem di komputer Anda. HT menggunakan core Anda untuk kapasitas penuh ... itu seperti pemanfaatan kapasitas penuh. Jadi, jika Anda membuka empat tab di peramban, setiap tab akan memiliki inti di sistem 4 inti dan dua tab harus berbagi inti di sistem 2 inti.
sumber