Как ускорить алгоритм Дейкстры в MPI? (МПкспресс)JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как ускорить алгоритм Дейкстры в MPI? (МПкспресс)

Сообщение Anonymous »

Я написал параллельную MPI-реализацию алгоритма Дейкстры на Java, но этот код медленнее последовательной версии более чем в 10 раз. Путем проверки с помощью таймера я определил, что есть две точки замедления: Scatterv и Allreduce в цикле.
Scatterv Piece:

Код: Выделить всё

MPI.COMM_WORLD.Scatterv(sendbuf, displs[myrank], sendcounts, displs, MPI.INT,
localWeight, 0, sendcounts[myrank], MPI.INT, SOURCE);
Все уменьшаемые детали:

Код: Выделить всё

public static void singleSource(int n, int[] wgt, int[] lengths, int[] displs, int myrank) throws MPIException {
int nlocal = lengths.length;
int firstvtx = displs[myrank];
int lastvtx = firstvtx + nlocal - 1;
int[] marker = new int[nlocal];

System.arraycopy(wgt, 0, lengths, 0, nlocal);

Arrays.fill(marker, 1);
if (SOURCE >= firstvtx && SOURCE 

Подробнее здесь: [url]https://stackoverflow.com/questions/78476236/how-do-i-speedup-dijkstras-algorithm-in-mpi-mpjexpress[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»