2017-06-29 61 views
5

Ihrlich'in yorumuna göre (teşekkürler btw), "zamanlama" terimi yanıltıcı olabilir ve bu daha uygun bir açıklama olabilir: bir N * N matrisi verilirse, verilecek satırda bir permütasyon elde edilir. en büyük çapraz toplamı.İşlemcilerde işlerin zamanlaması için algoritma

Ben N işler ve N işlemcilerin bir dizi var. Tüm işlemciler birbirinden farklı olabilir. Her (iş, işlemci) çifti için, bu işlemin o işlemci üzerinde çalıştığı performansa sahibim. Performans IPC'de ölçülür (Döngü Başlığı).

Ben IPC genel toplamını maksimize bir zamanlama (1-to-1 ayırma) bulmaya çalışıyorum. Mümkün olan tüm çizelgeleri, O (N!) Ile yaşayamayacağım, bu da geçerli değil.

Sonra yüklerini ve işlemcilerin tercihlerini sıralamak için IPC'leri kullanılarak, "kararlı uygun" algoritması O (N^2) kullanmayı denemişlerdir. Çok hızlı çalışır ve iyi bir program getirir, ama en uygun olanı değil.

Sorularım şunlardır:

1) Gerçekten kararlı eşleştirme algoritması optimum ödevi geri edebilmek için bekliyordu. Birisi neden başarısız olduğunu açıklayabilir mi? Şimdiye kadarki en iyi tahminim farklı (iş, işlemci) çiftleri arasındaki bağların varlığı. Ayrıca şanssız "kayıtsızlık ile istikrarlı eşleme" algoritmasını denedim. Algoritmanın benim uygulamam nedeniyle başarısız olmadığından bahsetmeliyim. Algoritmanın neden bu sorunu çözemediğine dair daha teorik bir cevap arıyorum.

2) Bundan ben kullanabileceğiniz bir algoritma biliyor musunuz? Biri bile var mı?

+2

Bunun için bir bilgisayar bilimi dalı var. Aslında başlangıçta üretim yönetiminden geliyor. Başlıyor – iehrlich

+0

için https://en.wikipedia.org/wiki/Scheduling_(computing) okuma düşünün, oldukça yararlı görünüyor. Ancak, hızlı bir şekilde gözden geçirdikten sonra, sunulan tüm algoritmaların sezgisel olduğu anlaşılıyor ve en uygun zamanlamayı geri getirmesi garanti edilmiyor. – prodromou

+0

Bir sebepten dolayı "yeni başlayanlar için" dedim :) Ayrıca, programın optimal olup olmadığını nasıl kontrol edersiniz? – iehrlich

cevap

2

istikrarlı eşleştirme yanlış algoritma olmasının sebebi işlemcilerin bir çift her birbirlerinin işleri tercih ediyorum nerede bir eşleme ile sarabilir olduğunu, ancak işlerden biri açık olduğunda işlemciyi tercih ediyor. Anahtarlama birini kötüleştirir, bu yüzden bu eşleşme sabittir. Bununla birlikte, sorununuzda, global optimum olup olmadığına dikkat ediyoruz. Eğer bir işteki iyileşme diğerinin ne kadar kötü olduğunu aşarsa, geçiş yapmak istersiniz. Küresel optimum için istikrarlı bir eşleşme gereklidir, ancak yeterli değildir.

aslında Macar algoritması genel optimal çözüm bulmak için doğru biridir.

+0

Açıklama için teşekkürler! Scipy uygulamasını kullanarak Macar algoritmasını daha yeni denedim. En uygun zamanlamayı döndürür (scipy uygulamasının O (N^3) olabileceğini düşünüyorum ama emin değilim). Çok değerli yorumları için iehrlich ve user3080953'e teşekkürler. Ve tabii btilly sayesinde teşekkürler! – prodromou

+0

Sadece FYI, Macar algoritması maliyeti en aza indirdiği için IPC ölçümlerini reddetmek zorunda kaldım. – prodromou