Kuyruktaki Bir Prizmayı Yansıtma Beklenmedik Sonuçlara Yol Açar


Bilgisayarlar, bir görevi yerine getiren yalnızca tek bir iş parçacığı olduğunda bunun nedenini anlamak için yeterince zordur. Günümüzün modern işlemci dünyasında düzinelerce çekirdek vardır ve programınız birden fazla çekirdek kullanmanın avantajlarından yararlanmaya çalışabilir. Eşzamanlı olarak meydana gelen şeyler, durumların ve etkileşimlerin sayısının bir karmaşaya dönüşmesine neden olur, biz insanlar muhtemelen anlamakta güçlük çekeceğiz. Yani, gibi [Hillel]Eğer olabilir Bu etkileşimleri denemek ve modellemek için bilgisayara dönün.

Söz konusu model bir görev kuyruğudur. Yığına bir şeyler eklenir ve “işçiler” yığından bir tane alır ve onu işler. Bir görev kuyruğunun etkinliğini ölçmek için kullanılan iki ölçü vardır: aktarım hızı ve gecikme. Verim, saniyede yapabileceğiniz işlerin sayısıdır (bu maksimum verimli 3d yazıcı gibi), gecikme ise bir şeyi bitirmek için geçen süredir.

Simülasyon yazmak yerine, [Hillel] PRISM adlı olasılıksal bir model denetleyicisine döndü. Modelde, her bir görevin bağımlı olması ve tamamlanması farklı bir zaman alması gibi birkaç kısıtlama vardır. Bu, her adımda bir çalışanın görevini tamamlama şansının %50 olduğu gerçeğiyle modellenmiştir. Her adım için, N toplam görev sınırına kadar yeni bir görevin sıraya gelme olasılığı %50’dir. Ardından, bize tüm görevleri tamamlamamız için attığımız toplam adım sayısını veren bir ödül işlevi oluşturarak verimi modelledi. Gecikme başka bir ödül işlevidir, ancak her zaman adımı için kuyruktaki öğelerin sayısının toplamıdır.

Yalnızca bir çalışanla gecikmedeki büyüme ikinci dereceden görünüyor. Sadece on görev 29’luk adımları beklerken, 20 görev 97’lik adımları bekler. İkinci bir işçi eklerken, verim iki katına çıkmaz, bunun yerine bir işçi için olanın yaklaşık 2/3’ü kadardır. Ancak diğer taraftan gecikme, doğrusala daha yakın bir şeye düştü.

Basit bir model olsa da, karmaşık bir alanı simüle etmek için bir model fikri vardır. Kolayca öncelik, daha fazla işçi, yeniden deneme, sıraya tekrar öğe ekleme, bir seferde birden çok öğe ekleme ve diğer şeyleri ekleyebilirsiniz. [Hillel] biraz python özü sağlar keyfi sayıda işçi için PRISM oluşturmanıza yardımcı olmak için.

Resmi yöntemler/doğrulama, Hackaday’de sıkça bahsettiğimiz bir şey değildir ve daha fazlasını merak ediyorsanız, C derleyicinizin güvenilir olup olmadığını nasıl doğrulayacağınız hakkında konuştuk.


Kaynak : https://hackaday.com/2022/05/07/reflecting-on-a-queueing-prism-leads-to-unexpected-results/

Yorum yapın