Single Core Threaded Qaud vs Dual-Hyper Threading [duplikat]

10

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.

David
sumber
3
Downvote karena pencarian Google singkat (Wikipedia) akan memberikan jawabannya.
Werner Henze
4
@WernerHenze sementara apa yang Anda katakan itu benar, kami ingin orang melihat hasil SuperUser ketika mereka Google hal-hal seperti itu :)
Shekhar

Jawaban:

10

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.

Journeyman Geek
sumber
1
Prosesor HT akan melihat 15-30% ... Mereka kunci di sini. HT bukan pengganti inti kedua yang sebenarnya (atau 2, atau 4 dll.)
Austin T French
1
Lebih banyak CPU, dengan lebih banyak core, dengan hyper-threading akan lebih baik ...: D
Keltari
Penting untuk dicatat bahwa alasan terbesar peningkatan kinerja dengan HT adalah CPU jarang dimuat sepenuhnya; itu adalah bahwa utas tunggal jarang akan memproses data dengan setiap siklus CPU. HT memungkinkan CPU untuk menjadwalkan utas kedua selama siklus yang sebelumnya tidak digunakan. Untuk beralih antara facebook dan e-mail, ini bisa sangat efektif, tetapi semakin intensif CPU setiap utasnya, semakin rendah peningkatan kinerjanya.
Thomas
1

Dari Wikipedia :

Hyper-threading bekerja dengan menduplikasi bagian-bagian tertentu dari prosesor - yang menyimpan keadaan arsitektur - tetapi tidak menduplikasi sumber daya eksekusi utama. Hal ini memungkinkan prosesor hyper-threading muncul sebagai prosesor "fisik" yang biasa dan prosesor "logis" tambahan untuk sistem operasi host (sistem operasi HTT-tidak melihat dua prosesor "fisik"), memungkinkan sistem operasi untuk menjadwalkan dua utas. atau proses secara bersamaan dan tepat. Ketika sumber daya eksekusi tidak akan digunakan oleh tugas saat ini dalam prosesor tanpa hyper-threading, dan terutama ketika prosesor macet, prosesor yang dilengkapi hyper-threading dapat menggunakan sumber daya eksekusi untuk menjalankan tugas terjadwal lainnya. (Prosesor dapat macet karena kehilangan cache, salah duga cabang,

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%.

Werner Henze
sumber
1

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.

Siva
sumber