Форум программистов, компьютерный форум, киберфорум
MPI
Войти
Регистрация
Восстановить пароль
Другие темы раздела
MPI MPI win32, process exited without calling finalize https://www.cyberforum.ru/ mpi/ thread567303.html
// Lab11.cpp: определяет точку входа для консольного приложения. #include <iostream> #include <stdio.h> #include <math.h> #include <afxmt.h> #include <mpi.h>
MPI Параллельные вычисления MPI
Всем привет, ребят объясните пожалуйста почему работает не корректно ? задание такое : нужно посчитать сумму элементов 2х массивов, число элементов произвольное, число процессов тоже. вычисление суммы необходимо разбить на процессы, а потом что бы каждый процесс передал свою частную сумму на 0ой процесс который собственно и выведет результат на экран, вот что сам написал. если задаю 2...
MPI MPI и сортировка пузырьком https://www.cyberforum.ru/ mpi/ thread560621.html
Здравствуйте. Есть программа, сортировка массива пузырьковым методом. #include <stdio.h> #define SIZE 10 int i, j; int main (int argc, char* argv) { int mass = {44,55,45,16,9,-1,65,19,3,5}; for (i = 0; i < SIZE; ++i) printf("%d ",mass);
MPI MPI https://www.cyberforum.ru/ mpi/ thread555673.html
Помогите написать прогу с использованием MPI. Нужно матрицу Крамера распаралелить на несколько компьютеров
MPI MPI.NET: Посылка данных узлам
Решил освоить MPI.NET + C#. Пишу тестовую программу для выбора точек. Лист точек делится на подлисты и раскидывается по нодам, они считаю и возвращают результат: using System; using System.Collections.Generic; using System.Linq; using System.Text; using MPI; namespace MPItest {
MPI Как из MPI программы переделать на OpenMP https://www.cyberforum.ru/ mpi/ thread538849.html
Всё откомпелировалось нормально.запускал через Linux Ubuntu.а теперь у меня задача запустить эту прогу на линуксе только уже с помощью OpenMP а не MPI.как мне это сделать? #include<mpi.h> #include<stdlib.h> #include<stdio.h> #define Wtime MPI_Wtime #define MEGABYTE (1024*1024) #define BUFFER_SIZE (16*MEGABYTE)
MPI Тест эффективности основных операций MPI есть прога "Тест эффективности основных операций MPI" не могу найти где скачать mpi.h чтоб добавить в Microsoft Visual Studio 2010,соответсвенно не могу её откомпелировать.у кого установлены нормально MPI,можете пожалуйста проверить,работает вообще прога,или нет. #include<mpi.h> #include<stdlib.h> #include<stdio.h> #define Wtime MPI_Wtime #define MEGABYTE (1024*1024) https://www.cyberforum.ru/ mpi/ thread523286.html Распараллеливание цикла в MPI (0ая ветвь рассылает задание остальным ветвям, как только те освобождаются) MPI
Имеется примерно такой код (упрощённая запись). int size, rank; int operations = 10000; //всего операций int op_na_1_proc; // операций на каждый процессор double x, y, z; /**/MPI_Init(&argc,&argv); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI MPI параллельный алгоритм. 1.Разработать параллельный алгоритм,вычислить ускорение и эффективность алгоритма(за основу взять простую каскадную схему суммирования). 2. Используя функция написать программу для алгоритма на языке MPI. В MPI в обще не шарю)может кто чем поможет. Добавлено через 17 часов 38 минут необходимо реализовать умножение матрицы на вектор. https://www.cyberforum.ru/ mpi/ thread514636.html MPI MPI - передача сообщений, код не работает #include <iostream> #include <string> #include "mpi.h" using namespace std; int matr; int main(int argc, char* argv) { char message; https://www.cyberforum.ru/ mpi/ thread512068.html
cpp + mpi MPI
Здравствуйте, у меня проблема с mpi. код: #include <iostream> #include <mpi.h> int main(int ac, char** av) { int size,rank; MPI_Status status;
MPI MPI в Visual Studio 2010 Привет! Для паралельного программирования использую MPI. Мне нужно работать в Visual Studio 2010. Сделал все настройки как описано в MSDN http://msdn.microsoft.com/ru-ru/library/ee441265.aspx#BKMK_debug1 но увы когда вставил нужный код мне студия ругается, что ей не удается открыть файл #include "mpi.h". И от этой ошибки она не понимает пространство имен MPI. В чем может быть проблема? https://www.cyberforum.ru/ mpi/ thread445544.html
0 / 0 / 0
Регистрация: 10.12.2009
Сообщений: 7
0

Ленточное умножение матриц с использованием MPI - MPI - Ответ 3061210

21.05.2012, 16:10. Показов 9422. Ответов 2
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите разобраться, почему в результирующей матрице С диагональные элементы считаются неправильно? Код взят отсюда.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
void InitProcess (double* &A,double* &B,double* &C ,int &Size) {
MPI_Comm_size(MPI_COMM_WORLD, &ProcNum);
MPI_Comm_rank(MPI_COMM_WORLD, &ProcRank);
if (ProcRank == 0) {
do {printf("n–matrix multiplication–");
  Size = 4;  
  if (Size< ProcNum) printf("Matrix size is less than the number of processes! n");
  if (Size%ProcNum!=0) printf("Matrix size should be dividable by the number of processes! n");
}
 while ((Size< ProcNum)||(Size%ProcNum!=0));
}
if (Size<3) flag=1;
MPI_Bcast(&Size, 1, MPI_INT, 0, MPI_COMM_WORLD);
 
if (ProcRank == 0) {
  A = new double [Size*Size];
  B = new double [Size*Size];
  C = new double [Size*Size];
  RandInit (A, Size); RandInit (B, Size);//Инициализация матриц
 }
}
//————————————————-
void Flip (double *&B, int dim) { 
double temp=0.0; 
  for (int i=0;i<Size;i++){
      for (int j=i+1;j<Size;j++)
        temp=B[i*dim+j],
        B[i*dim+j]=B[j*dim+i],
        B[j*dim+i]=temp;
  }
}
//————————————————-
void MatrixMultiplicationMPI(double *&A, double *&B, double *&C, int &Size) {
 int dim =Size;
 int i, j, k, p, ind;
 double temp;
 MPI_Status Status;
  int ProcPartSize=dim/ProcNum;//Количество подзадач
  int ProcPartElem=ProcPartSize*dim;//Количество элементов в подзадаче
 double* bufA=new double[dim*ProcPartSize];
 double* bufB=new double[dim*ProcPartSize];
 double* bufC=new double[dim*ProcPartSize];
  int ProcPart = dim/ProcNum, part = ProcPart*dim;
 if (ProcRank == 0) {
 Flip(B,Size);//Транспонирование матрицы В
 }
 
 MPI_Scatter(A, part, MPI_DOUBLE, bufA, part, MPI_DOUBLE, 0, MPI_COMM_WORLD);
 MPI_Scatter(B, part, MPI_DOUBLE, bufB, part, MPI_DOUBLE, 0, MPI_COMM_WORLD);
 
 temp=0.0;
 for(i=0;i<ProcPartSize;i++){  
     for(j=0;j<ProcPartSize;j++){
         for(k=0;k<dim;k++)
        temp += bufA[i*dim+k]*bufB[j*dim+k],
        bufC[i*dim+j+ProcPartSize*ProcRank]=temp,
         temp=0.0;
     }
 }
 
  int NextProc; int PrevProc;
 for(p=1;p<ProcNum;p++){
     NextProc = ProcRank+1;
  if ( ProcRank ==ProcNum-1 ) 
      NextProc = 0;
  PrevProc = ProcRank-1;
  if ( ProcRank == 0 )
      PrevProc = ProcNum-1;
  MPI_Sendrecv_replace(bufB,part, MPI_DOUBLE, NextProc, 0, PrevProc, 0, MPI_COMM_WORLD, &Status);//Сдвиг вдоль процессов
  temp=0.0;
  for (i=0; i<ProcPartSize;i++){
      for(j=0;j<ProcPartSize; j++){
          for(k=0;k<dim;k++){
              temp +=bufA[i*dim+k]*bufB[j*dim+k];}
  if (ProcRank-p >=0 ) 
  ind=ProcRank-p;
  else ind=(ProcNum-p+ProcRank);
  bufC[i*dim+j+ind*ProcPartSize]=temp;
  temp=0.0;
  }
  }
 }
 MPI_Gather(bufC, ProcPartElem, MPI_DOUBLE, C, ProcPartElem, MPI_DOUBLE, 0, MPI_COMM_WORLD);
 
 delete []bufA;
 delete []bufB;
 delete []bufC;
}


Вернуться к обсуждению:
Ленточное умножение матриц с использованием MPI MPI
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2012, 16:10
Готовые ответы и решения:

Умножение матриц с использованием классов
Написал простенькую программу для умножения 2ух матриц. Все работает, собственно, кроме умножения....

Умножение матриц с использованием OpenMP
Здрасте. Есть следующая задача. Нужно реализировать умножение двух квадратных матриц с...

Умножение матриц с использованием динамических двумерных массивов
Нужно написать программу, которая будет считывать размер матриц и их члены с клавиатуры, умножать и...

Перемножение матриц с использованием MPI
...доброго времени суток, уважаемые форумчане! Возник такой вопрос: по задаче исходную матрицу...

2
21.05.2012, 16:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2012, 16:10
Помогаю со студенческими работами здесь

Умножение прямоугольных матриц с использованием функции пользователя.
Превратить квадратную матрицу порядка N, вывестиначальную и превращеную матрици. Найти сумму...

Перемножение матриц, умножение матриц на вектор, сложение матриц
Помогите пожалуйста написать программу, которая производит основные действия с матрицами...

Транспонирование, умножение матриц, сложение матриц Реализовать в одной программере
транспонирование, умножение матриц, сложение матриц; B^3-A^T Реализовать в одной программере....

Умножение матриц с интерфейсом и возможность заполнения исходных матриц из файла
Здравствуйте. Я сделал программу, которая умножает матрицы с интерфейсом, только проблема в том что...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru