Bagikan melalui


Beberapa Prosesor

Komputer dengan beberapa prosesor biasanya dirancang untuk salah satu dari dua arsitektur: akses memori non-seragam (NUMA) atau multiproses simetris (SMP).

Dalam komputer NUMA, setiap prosesor lebih dekat ke beberapa bagian memori daripada yang lain, membuat akses memori lebih cepat untuk beberapa bagian memori daripada bagian lain. Di bawah model NUMA, sistem mencoba menjadwalkan utas pada prosesor yang dekat dengan memori yang digunakan. Untuk informasi selengkapnya tentang NUMA, lihat Dukungan NUMA.

Dalam komputer SMP, dua atau beberapa prosesor atau inti yang identik terhubung ke satu memori utama bersama. Di bawah model SMP, utas apa pun dapat ditetapkan ke prosesor apa pun. Oleh karena itu, menjadwalkan utas pada komputer SMP mirip dengan menjadwalkan utas pada komputer dengan satu prosesor. Namun, penjadwal memiliki kumpulan prosesor, sehingga dapat menjadwalkan utas untuk berjalan bersamaan. Penjadwalan masih ditentukan oleh prioritas utas, tetapi dapat dipengaruhi oleh pengaturan afinitas utas dan prosesor ideal utas, seperti yang dibahas dalam topik ini.

Afinitas Utas

Afinitas utas memaksa utas berjalan pada subset prosesor tertentu. Mengatur afinitas utas umumnya harus dihindari, karena dapat mengganggu kemampuan penjadwal untuk menjadwalkan utas secara efektif di seluruh prosesor. Hal ini dapat mengurangi perolehan performa yang dihasilkan oleh pemrosesan paralel. Penggunaan afinitas utas yang sesuai adalah menguji setiap prosesor.

Sistem mewakili afinitas dengan bitmask yang disebut masker afinitas prosesor. Masker afinitas adalah ukuran jumlah maksimum prosesor dalam sistem, dengan bit diatur untuk mengidentifikasi subset prosesor. Awalnya, sistem menentukan subset prosesor dalam masker.

Anda dapat memperoleh afinitas utas saat ini untuk semua utas proses dengan memanggil fungsi GetProcessAffinityMask . Gunakan fungsi SetProcessAffinityMask untuk menentukan afinitas utas untuk semua utas proses. Untuk mengatur afinitas utas untuk satu utas, gunakan fungsi SetThreadAffinityMask . Afinitas utas harus merupakan subset dari afinitas proses.

Pada sistem dengan lebih dari 64 prosesor, masker afinitas awalnya mewakili prosesor dalam satu grup prosesor. Namun, afinitas utas dapat diatur ke prosesor dalam grup yang berbeda, yang mengubah masker afinitas untuk proses tersebut. Untuk informasi selengkapnya, lihat Grup Prosesor.

Prosesor Ideal Utas

Saat Anda menentukan prosesor ideal utas, penjadwal menjalankan utas pada prosesor yang ditentukan jika memungkinkan. Gunakan fungsi SetThreadIdealProcessor untuk menentukan prosesor pilihan untuk utas. Ini tidak menjamin bahwa prosesor ideal akan dipilih tetapi memberikan petunjuk yang berguna kepada penjadwal. Pada sistem dengan lebih dari 64 prosesor, Anda dapat menggunakan fungsi SetThreadIdealProcessorEx untuk menentukan prosesor pilihan dalam grup prosesor tertentu.

Dukungan NUMA

Grup Prosesor