Saya telah menerapkan jenis topologi berdasarkan artikel Wikipedia yang saya gunakan untuk resolusi dependensi, tetapi mengembalikan daftar linier. Algoritma apa yang dapat saya gunakan untuk menemukan jalur independen?
13
Saya telah menerapkan jenis topologi berdasarkan artikel Wikipedia yang saya gunakan untuk resolusi dependensi, tetapi mengembalikan daftar linier. Algoritma apa yang dapat saya gunakan untuk menemukan jalur independen?
Jawaban:
Saya berasumsi bahwa edge berarti bahwa Anda harus dieksekusi sebelum v . Jika bukan ini masalahnya, balikkan semua tepinya. Saya selanjutnya berasumsi bahwa Anda kurang tertarik pada jalur (yang sudah diberikan oleh DAG) daripada strategi eksekusi yang baik mengingat dependensi.( kamu , v ) kamu v
Anda kemudian dapat menjalankan tugas-tugas Anda seperti ini (mari kita asumsikan adak set):
Tentu saja, ini tidak menghasilkan throughput maksimum jika tugas mengambil jumlah waktu yang berbeda: dua paralel, rantai linear yang bebas disinkronkan setelah setiap elemen. Untuk menghindari ini, saya sarankan Anda bekerja langsung pada DAG dengan traversal paralel yang dimulai pada node sumber - yang ada diS0 - dan sinkronisasi / forking dalam node dengan beberapa tepi masuk / keluar:
dimana
dan
T.count
merupakan penghitung sederhana yang memiliki jumlah pendahuluT
yang telah dieksekusi,T.indeg
jumlah pendahulunya danT.succ
perangkat penerusnya.sumber