align="justify"> Впорядкуємо St (j) у порядку зростання
. Побудуємо діаграму ранніх термінів закінчення виконання операторів з вказівкою зв'язків між операторами, з обліків часу передачі між операторами. Утворюємо безлічі незв'язних між собою пучків ниток { }; S = {0 , 1, ..., q}.
7. Серед множин { } знайдемо безліч { }, що має нитка з максимальною кількістю елементів у множині (таблиці зв'язків к-й нитки). Припустимо таблиця зв'язків має елементів.
Примітка: таких множин ниток може бути кілька, і тоді вибирається будь-яке з них.
. Складемо з зв'язків між нитками множини { } масив MS і обнулив всі його елементи.
9. Якщо ступінь i-й вершини обчислювальної мережі є , то порівнюємо і .
. Якщо , то нитка розміщується у вузлі i, і переходимо до кроку 12, інакше наступний крок.
. Якщо то утворюється комплексний вузол, в якому один обчислювач основний, інші є передавальними ланками.
12. Визначимо з якою ниткою з безлічі {Pz} пов'язана нитка . Нехай це буде нитка = (max ? Tj), Tj? T.
. Нитка займає вузол j m обчислювальної мережі на мінімально можливій відстані від вузла i.
. Утворюємо послідовність вхідних і вихідних зв'язків i-ой нитки з , S 1 , S 2 , ..., S d (1) з безлічі MS.
. Нехай зв'язок S m , де m? {1,2, .. d}, в нитки i> пов'язує оператор з оператором нитки . Тоді, якщо зв'язок входить, то якщо sT ( ? )? fT (?) + r (i, j m ) *? A , то переходимо на крок 17, інакше P? = P? + r (i, j m ) *? A.
Якщо зв'язок виходить, то якщо S m = 0, то
P? = P? + r (i, j m ) * ? A,
інакше якщо sT ( ? ) (?), то
sT ( ? ) = fT (?).
. Якщо ...