Я хочу вычислить n x n
матрицу A
. Это симметрия c, то есть A(i,j)
= A(j,i)
Предположим, вычисление A(i,j)
занимает много времени, это займет 1000 секунд.
Предположим, получить A(j,i)
из A(i,j)
- это просто копирование данных, это очень быстро, это займет 0,00001 с.
Каждый элемент A(i,j)
не имеет зависимости, вы можете сначала вычислить кого угодно, если хотите.
Чтобы быстро получить все элементы в матрице A, необходимо использовать атрибут symmerti c.
Я хочу использовать n
worker для вычисления матрицы A
. Рабочий i
вычислить строку i
из A.
Наивное решение:
worker 1 calculate A(1,1), A(1,2), A(1,3), ..., A(1,n)
worker 2 calculate A(2,2), A(2,3), ..., A(2,n)
worker 2 calculate A(3,3), ..., A(3,n)
...
worker n calculate A(n,n)
then lower triangle part can obtain by upper triangle part.
Это решение приводит к worker 1
требует вычисления n
элемента, но только worker n
вычислить 1
элемент. Это решение для балансировки нагрузки.
Я ищу решение для балансировки нагрузки. Может ли кто-нибудь дать несколько советов? Спасибо за ваше время.