Zaman Planlaması ve Görev tahsisi

Download Report

Transcript Zaman Planlaması ve Görev tahsisi

T.C.
TRAKYA ÜNİVERSİTESİ
FEN BİLİMLERİ ENSTİTÜSÜ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
Ödev Konusu : Scheduling and Task Allocation
(Zaman Planlaması ve Görev Tahsisatı)
Oğuz ATA
Zaman Planlama Problemi
• Bir hesaplama işi, görevler dizisi olarak tasarlanıp
gerçeklendikten sonra, bu görevlerin belirlenen
mimarideki işlemciye ideal bir atamasına karar
verilmelidir.
• Ortaya çıkan bu problem “Zaman Planlama Problemi”
(scheduling problem) olarak adlandırılır.
Zaman Planlaması Problemi
• Eş zamanlı program parçalarının veya eş zamanlı
program grubunun zamana göre düzenlenme
gerekliliği
(Öncelik ilişkisi)
• Programı oluşturan görevler arasında bir öncelik
ilişkisi yoksa: “Görev Tahsisatı Problemi”
(Task Allocation)
Amaç
• Zaman planlamasının amacı, görevlerin
işlemciye atanmasını, belirlenen performans
değerini (kriterini) en iyi hale getirecek şekilde
gerçekleştirmektir.
Değerlendirme Kriterleri
• Performans, verimlilik (Kriterler)
• Yapılan görev atamasının başarımı
(Optimize edilmek istenen performans kriteri)
• Zaman Planlaması Algoritmasının Etkinliği
(Algoritmanın Karmaşıklığı)
• İki farklı zaman planlama algoritması aynı kalitede ise;
Daha az karmaşık olan daha iyi
Algoritmalar
• İdeal algoritmalar ancak programı ve dağınık sistemi temsil
eden modeller üzerinde bazı sınırlandırmalar kabul
edildiğinde elde edilebilir.
• Problemi makul bir zaman içerisinde çözmek için sezgisel
algoritmaların kullanımına ihtiyaç duyulur.
• Bu algoritmalar optimum sonucu vermeyi garanti etmemekle
birlikte optimuma çok yakın sonuçlar verirler.
Zaman Planlaması Teknikleri
• Belirleyici (Deterministic) zaman planlaması :
Görevlerin tüm bilgisi ve diğerleriyle olan ilişkileri, programın
çalışmasından önce bütünüyle bilinir
• Belirleyici olmayan (Nondeterministic) zaman planlaması :
Bazı bilgiler programın çalışmasından önce bilinmeyebilir.
Belirleyici Olmayan Zaman Planlaması
Metodlar
• Statik Metot: Bilgi önceden belirlenir
• Dinamik Metot: Görevler için anlık zaman planlaması yapılır.
Dezavantajı: Program koşarken zaman planlaması yapma zorluğu
• Hibrid Metodu: Dinamik ve statik metotların birleşiminden
teşekkül eder.
Zaman Planlaması Modeli
• Program Görevleri (Program Tasks)
• Hedef Makine (Target Machine)
• Zaman Planı (Schedule)
• Programın Çalışma Zamanı ve İletişim Zamanı
Program Görevleri
• “T = {t1,…,tn}” => Çalıştırılacak görevler kümesi.
• “ti<tj” =>
tj başlamadan önce ti tamamlanmalı.
• “D” => n x n iletişim veri matrisi. “Dij>=0” ti den
tj ye aktarılması gereken veri miktarını belirtir.
• “A” => yapılan işlem miktarını belirtir. “Ai>0” ti
görevinde ne kadar hesap işlemi yapıldığı gösterir.
Hedef Makine
• Keyfi bir ara bağlantı iletişim ağını kullanarak
birbirine bağlanan heterojen işlemcilerden oluşur.
• İşlemcilerin bağlantısı “İletişim Ağı Diyagramı” adlı
yönlendirilmemiş tablo kullanılarak gösterilebilir.
Zaman Planı
• m tane işlemcili bir sistemdeki görev diyagramının zaman
planı, f fonksiyonunun her bir görevi bir işlemciye ve bir
başlangıç zamanına yönlendirmesi demektir.
• f: T → {1,2,…,m} x [0,∞).
• F(v) = (i,t) ise; ‘v görevi, i işlemcisi tarafından t anında
başlayarak işleme tabi tutulur’ deriz.
• f fonksiyonu her bir görevin başlangıç ve bitiş zamanlarının
kolaylıkla gösterilebileceği “Gannt chart” ile gösterilebilir.
Programın Çalışma Zamanı ve
İletişim Zamanı
• Görev diyagramının ve hedef makinenin parametreleri
bilindiği andan itibaren programın çalışma zamanı ve iletişim
zamanı kolaylıkla elde edilebilir.
• ti görevi Pj işlemcisinde çalıştırılıyorsa;
çalışma zamanı = Ai / Sj
• Görevler bitişik veya komşu olan Pk ve Pl işlemcilerinde
çalıştırılıyorsa;
ti ve tj görevleri arasındaki iletişim gecikmesi = Dij / Rkl
İletişim Gözardı Edilerek Yapılan Zaman
Planlaması
• Bu bölümde zaman planlaması probleminin bazı koşullu
modelleri için çok terimli zaman optimizasyonu algoritmaları
kullanacağız. En uygun üç algoritma şunlardır:
• (1) Görev diyagramının in-forest veya out-forest olduğu;
(2) Görev diyagramının interval order olduğu;
(3) Sadece iki işlemcinin mümkün olduğu.
İletişim Gözardı Edilerek Yapılan Zaman
Planlaması
Bu üç durum için bu bölümde;
• Bir görev diyagramının n adet görevi içerdiğini;
• Hedef makinenin m adet işlemciye sahip olduğunu;
• Her bir görev için çalışma zamanının bir birim zaman
olduğunu;
• Görevler arası iletişimin olmadığını;
• Amacımızın toplam çalışma zamanının minimize edilerek ideal
zaman planlaması yapmak olduğunu;
varsayarak hareket edeceğiz.
In-Forests/Out-Forests Görev
Diyagramı için Zaman Planlaması
• In-forest: Her bir düğümün en fazla bir tane doğrudan ardıla
sahip olduğu görev diyagramı
• Out-forest: Her bir düğümün en fazla bir tane doğrudan
öncele sahip olduğu görev diyagramı
Algoritma 1
1. Görev diyagramındaki her bir düğümün seviyesi düğümün
öncelik belirleyicisi olarak atanır.
2. Bir işlemci kullanılabilir hale geldiğinde yüksek öncelikli olan
sıradaki göreve tahsis edilir.
In-forest Örneği
Interval Ordered Görevler İçin
Zaman Planlaması
Algoritma 2
1. Her bir düğüm için tüm ardıllarının sayısı düğümlerin
önceliğini belirlemek için kullanılır.
2. Bir işlemci kullanılabilir hale geldiğinde yüksek öncelikli olan
sıradaki göreve tahsis edilir.
Interval Ordered Örneği
İki İşlemcili Zaman Planlaması
İki İşlemci Örneği
İletişim Modelleri
• Programın tamamlanma süresine etki eden iki
bileşen bulunmaktadır:
• Hesaplama zamanı
• İletişim gecikmesi
İki Bileşen Olarak Tamamlanma Zamanı
• Program tamamlanma zamanının çalışma zamanı bileşenleri
Gannt chart üzerinden herhangi bir görevin maksimum bitiş
zamanı olarak saptanabilir ve buna Zaman Planlaması
Uzunluğu denir.
• Eğer toplam iletişim gecikmesini hesaplayabiliyorsak,
programın tamamlanma süresini de şu şekilde
hesaplayabiliriz:
• Program Tamamlanma Süresi = Çalışma Zamanı + Toplam
İletişim Gecikmesi
• Toplam iletişim gecikmesi şu şekilde hesaplanabilir:
• Toplam İletişim Gecikmesi = Toplam Mesaj Sayısı * Mesaj
Başına İletişim Gecikmesi
İki Bileşen Olarak Tamamlanma Zamanı
• Toplam mesaj sayısı iki model ile elde edilebilir:
• Model A
Toplam mesaj sayısı (u,v) şeklinde tanımlanan bir düğüm çifti
olarak tanımlanır, öyle ki (u,v) ε E ve proc(u) ≠ proc(v)
• Model B
Toplam mesaj sayısı (P,v) şeklinde bir işlemci görev çifti olarak
tanımlanır, öyle ki P işlemcisi v görevini hesaplamaz fakat en
azından v nin ardıllarınden birini hesaplar.
Gantt Chart Üzerinden Tamamlanma
Süresinin Hesaplanması
• İletişim gecikmesi, zaman planlamasını temsil eden Gantt
chart içinde ifade edilir. Bundan dolayı programın
tamamlanma süresi Gantt chart üzerinden direk olarak
saptanabilir:
Program Tamamlanma Süresi = Zaman planlaması uzunluğu
Model C
• Bu model I/O işlemcisinin sistemdeki her bir işlemci ile ilişkili
olduğunu varsayar. İşlemci iletişim halinde iken bir görevi bir
işlemciye atamak mümkündür.
• Aynı işlemciye paylaştırılan iki görev arasındaki iletişim
gecikmesi göz ardı edilebilir. Farklı iki işlemciye paylaştırılan iki
görev arasındaki iletişim gecikmesi ise mesaj büyüklüğünün,
hattın ve iletişim hızının bir fonksiyonudur.
Örnek
Örnek Açıklama
• A ve B modelleri için a,b,d görevlerinin P1 işlemcisine, c ve e
görevlerinin P2 işlemcisine tahsis edildiğini düşünelim.
• A modelini kullanırsak toplam mesaj sayısı = |(a,c),(a,e)| = 2.
• B modelini kullanırsak toplam mesaj sayısı = |(a,P2)| = 1.
• Her bir mesajın bir birim zaman tuttuğunu varsayarsak,
program bitirme zamanı şu şekilde bulunur:
• Model A kullanılarak program tamamlanma zamanı = 3 + 2 = 5
birim zaman
• Model B kullanılarak program tamamlanma zamanı = 3 + 1 = 4
birim zaman
Örnek Açıklama
• Model C de ise iki ayrı işlemciye tahsis edilen iki iletişim görevi
arasındaki iletişim gecikmesini bir birim zaman kabul edelim.
10.4c şekli göstermektedir ki b görevi a görevi gibi aynı
işlemcilere tahsis edilmiştir, ki bu gecikme olmadığı anlamına
gelir. a dan mesajı gelmeden evvel d görevi P2 de başlayamaz.
Bu yüzden program tamamlanma zamanı:
• Program Tamamlanma Zamanı = Zaman Planlaması Uzunluğu
= 4 birim zaman