Inti mana yang sesuai dengan masing-masing "CPU" di bawah ini?
Dengan asumsi kita memiliki Core 1, 2, 3, dan 4, CPU4 dan CPU5 mewakili core 3.
Apakah (katakanlah) CPU 6 dan CPU 7 di bawah ini mewakili satu inti; HT dan inti sesungguhnya?
Tidak ada perbedaan antara keduanya - keduanya memiliki antarmuka perangkat keras fisik ke CPU, antarmuka logis diimplementasikan dalam perangkat keras (lihat Lembar Data Prosesor Intel Core, Volume 1 untuk detail lebih lanjut). Pada dasarnya, setiap inti memiliki dua unit eksekusi yang terpisah, tetapi berbagi beberapa sumber daya yang sama di antara mereka. Inilah sebabnya mengapa dalam kasus-kasus tertentu hyperthreading sebenarnya dapat mengurangi kinerja.
Jika, misalnya, CPU 6 mewakili inti nyata dan CPU 7 sebuah inti HT, akankah utas yang ditugaskan hanya untuk CPU7 hanya mendapatkan sumber daya sisa dari inti nyata? (dengan asumsi inti menjalankan tugas lain)
Lihat di atas. Sebuah thread yang ditugaskan untuk HANYA CPU6 atau HANYA CPU7 akan mengeksekusi pada kecepatan yang sama persis (dengan asumsi thread melakukan pekerjaan yang sama, dan core lain dalam prosesor berada pada idle). Windows tahu tentang prosesor yang mendukung HT, dan penjadwal proses mempertimbangkan hal-hal ini.
Apakah hyperthreaded dikelola sepenuhnya dalam prosesor sedemikian rupa sehingga benang disulap secara internal? Jika demikian, apakah itu pada ruang lingkup CPU atau ruang lingkup inti? Contoh: Jika CPU 6 dan 7 mewakili satu inti, tidak masalah proses mana yang ditugaskan karena CPU akan menetapkan sumber daya yang sesuai untuk thread yang sedang berjalan?
Kedua. Perangkat keras yang sebenarnya itu sendiri tidak menjadwalkan inti untuk menjalankan program, itulah tugas sistem operasi. CPU itu sendiri, bagaimanapun, bertanggung jawab untuk berbagi sumber daya antara unit eksekusi yang sebenarnya, dan Intel menentukan bagaimana Anda dapat menulis kode untuk membuat ini seefisien mungkin.
Saya perhatikan bahwa proses single-threaded yang berjalan lama terpental di sekitar core, setidaknya menurut task manager. Apakah ini berarti bahwa menetapkan proses ke satu inti akan meningkatkan kinerja sedikit (dengan menghindari sakelar konteks dan pembatalan cache, dll.)? Jika demikian, dapatkah saya tahu bahwa saya tidak menggunakan "hanya virtual core"?
Itu adalah perilaku normal, dan tidak, menugaskannya ke satu inti tidak akan meningkatkan kinerja. Yang sedang berkata, jika karena alasan tertentu Anda ingin memastikan satu proses hanya dieksekusi pada inti fisik tunggal, tetapkan ke prosesor logis tunggal.
Alasan proses "terpental" adalah karena penjadwal proses. Ini adalah perilaku normal, dan Anda kemungkinan besar akan mengalami penurunan kinerja dengan membatasi inti apa yang dapat dijalankan oleh proses (terlepas dari berapa banyak utas yang dimilikinya), karena penjadwal proses sekarang harus bekerja lebih keras untuk membuat semuanya berfungsi dengan batasan yang Anda tetapkan. Ya, hukuman ini mungkin dapat diabaikan dalam kebanyakan kasus, tetapi intinya adalah kecuali Anda memiliki alasan untuk melakukan ini, jangan !