Aracılığıyla paylaş


Birden Çok İşlemci

Birden çok işlemciye sahip bilgisayarlar genellikle iki mimariden biri için tasarlanmıştır: tekdüzen olmayan bellek erişimi (NUMA) veya simetrik çoklu işlem (SMP).

NUMA bilgisayarında, her işlemci belleğin bazı bölümlerine diğerlerinden daha yakındır ve belleğin bazı bölümleri için bellek erişimini diğer bölümlere göre daha hızlı hale getirir. NUMA modeli altında, sistem kullanılan belleğe yakın işlemcilerde iş parçacıklarını zamanlamayı dener. NUMA hakkında daha fazla bilgi için bkz. numa desteği .

SMP bilgisayarında, iki veya daha fazla özdeş işlemci veya çekirdek tek bir paylaşılan ana belleğe bağlanır. SMP modeli altında, herhangi bir iş parçacığı herhangi bir işlemciye atanabilir. Bu nedenle, bir SMP bilgisayarında iş parçacıklarını zamanlamak, tek işlemcili bir bilgisayarda iş parçacıklarını zamanlamaya benzer. Ancak zamanlayıcının bir işlemci havuzu vardır, böylece iş parçacıklarını eşzamanlı olarak çalışacak şekilde zamanlayabilir. Zamanlama hala iş parçacığı önceliğine göre belirlenir, ancak bu konuda açıklandığı gibi iş parçacığı benzini ve iş parçacığı ideal işlemcisini ayarlayarak etkilenebilir.

İş Parçacığı Benzitesi

İş parçacığı benzini bir iş parçacığını belirli bir işlemci alt kümesinde çalışmaya zorlar. zamanlayıcısının iş parçacıklarını işlemciler arasında etkili bir şekilde zamanlamasını engelleyebileceğinden, iş parçacığı benzitesini ayarlamaktan genellikle kaçınılmalıdır. Bu, paralel işleme tarafından üretilen performans artışlarını azaltabilir. İş parçacığı benzitesinin uygun bir kullanımı, her işlemciyi test etmedir.

Sistem, işlemci benzite maskesi olarak adlandırılan bit maskesiyle benziteyi temsil eder. Benzite maskesi, sistemdeki işlemci sayısı üst sınırının boyutudur ve bitler işlemcilerin bir alt kümesini tanımlamak için ayarlanır. Başlangıçta, sistem maskedeki işlemcilerin alt kümesini belirler.

GetProcessAffinityMask işlevini çağırarak işlemin tüm iş parçacıkları için geçerli iş parçacığı benzini elde edebilirsiniz. SetProcessAffinityMask işlevini kullanarak işlemin tüm iş parçacıkları için iş parçacığı benzini belirtin. Tek bir iş parçacığı için iş parçacığı benzini ayarlamak için SetThreadAffinityMaskişlevinikullanın. İş parçacığı benşimi, işlem benzitesinin bir alt kümesi olmalıdır.

64'ten fazla işlemciye sahip sistemlerde benşim maskesi başlangıçta tek bir işlemci grubundaki işlemcileri temsil eder. Ancak, iş parçacığı benzitesi farklı bir gruptaki bir işlemciye ayarlanabilir ve bu işlem için benşim maskesini değiştirir. Daha fazla bilgi için bkz. İşlemci Grupları.

İş Parçacığı İdeal İşlemci

biriş parçacığı ideal işlemci belirttiğinizde zamanlayıcı, mümkün olduğunda iş parçacığını belirtilen işlemcide çalıştırır. bir iş parçacığı için tercih edilen işlemciyi belirtmek için SetThreadIdealProcessor işlevini kullanın. Bu, ideal işlemcinin seçileceğini garanti etmez, ancak zamanlayıcıya yararlı bir ipucu sağlar. 64'ten fazla işlemciye sahip sistemlerde, belirli bir işlemci grubunda tercih edilen işlemciyi belirtmek için SetThreadIdealProcessorExişlevinikullanabilirsiniz.

numa desteği

İşlemci Grupları