Форум программистов, компьютерный форум CyberForum.ru

Параллельное программирование с+= - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Некорректно отображается кириллица в консольном приложении http://www.cyberforum.ru/cpp-beginners/thread78969.html
Есть код // Рис. 2.7: fig02_07.cpp // Программа вычисления среднего значения. Использует повторение, управляемое счетчиком. #include<iostream.h> #include<windows.h> int rustext(char str) { CharToOem(str,str); cout << str;
C++ не могу понять что не так задание такое : Структура "книга почтой":-наименование книги;-ФИО автора;-номер по каталогу;-издательство;-колличество в наличии(шт.);-стоимость книги. Пользователь вводит номера по каталогу книг через пробел.Программа должна вывести список на экран ,с итоговой стоимостью.При этом каждой из них в списке необходимо уменьшить на 1 значение в поле "количество в наличии".Если количество равно 0,то... http://www.cyberforum.ru/cpp-beginners/thread78968.html
C++ Преобразовать строку, удалив каждый символ * и повторив каждый символ, отличный от *
Кто может решить задачки по С++? Решите плиз 1. Дана строка. Указать те слова, которые содержат хотябы одну букву k. 2. Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три ьуквы. 3. Дана строка. Преобразовать ее, удалив каждый символ * и повторив каждый символ, отличный от *. 4. Дана строка символов, среди которых есть одна открывающаяся и одна...
C++ Сортировка выводимых данных в алфавитном порядке
у меня вот такое задание Дан файл, состоящий из записей, которые содержат следующие поля: - фамилия, имя; - знак Зодиака; - дата рождения. Написать программу, выдающую - информацию о заданном человеке; - информацию о людях, родившихся под заданным знаком Зодиака, в алфавитном порядке. все сделал кроме последнего пункта, информацию выводит но как сделать в алфавитном порядке?
C++ не найден fstream.h ..... http://www.cyberforum.ru/cpp-beginners/thread78917.html
#include <iostream> #include <fstream.h> #include "int.h" using namespace std; fatal error C1083: Cannot open include file: 'fstream.h': No such file or directory у меня Вижуал 2005... что за ерунда?
C++ При запуске программы пишет Run-Time Check Failure #2 Stack around the variable 'mas' was corrupted Программа, которая генерирует 20 случайных чисел от 3.5 до 9.7, и потом сравнивает, есть ли два числа, сумма которых меньше другого числа. Компилируется без ошибок, но при запуске пишет: Run-Time Check Failure #2 Stack around the variable 'mas' was corrupted Run-Time Check Failure #2 Stack around the variable 'c' was corrupted #include <iostream> #include <windows.h> #include... подробнее

Показать сообщение отдельно
mages
Сообщений: n/a
24.12.2009, 12:50     Параллельное программирование с+=
Здравствуйте ! возникла проблема с программой.
Делаю зачетную работу; Дана квадратная матрица NxM. Найти максимальные элементы каждой строки (N кратно количеству процессов).
Написал программу, на 6 процессах на матрице 6х6 вроде бы работает нормально, находит максимальные элементы строки, но! ставит их не в том порядке как надо.
пример матрицы 6 на 6
6 6
1 2 3 4 5 6
1 2 3 4 5 7
1 2 3 4 5 8
1 2 3 4 5 9
1 2 3 4 5 10
1 2 3 4 5 11
ответ;
6
12 и дальше уже по другому порядке
7 или 9
9 или 7
10 или 11
11 или 10
Подобные вещи и на 4 процессах при матрице 4 на 4.
а вот и решение
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <mpi.h>


C++
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
void Init(FILE *f, int m,int n, double *B)
{int i,j; 
for(i=0;i<m;i++) {
for(j=0;j<n;j++)fscanf(f,"%lf",&B[i*m+j]);}
fscanf(f,"\n"); 
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%4.lf",B[i*m+j]);
printf("\n");
}
}
 
 
double Max( double *B,int m,int n)
{
int i,j; 
double max1;
max1 = B[0];
for(i = 0; i < m; i++)
{ max1=B[0];
for(j = 0; j < n; j++) 
{ if (B[i*m+j] > max1)
max1 = B[i*m+j];}
//for(i=0;i<k;i++)
printf("max=%lf\n",max1);
}
} 
 
 
void print(double *B,int m,int n)
{
int i,j;
for(i=0;i<m;i++){ 
for(j=0;j<n;j++) printf("%4.0lf",B[i*m+j]); printf("\n");
}
}
 
 
int main (int argc,char *argv[])
{ 
FILE *f=fopen("input.txt","r");
int i,np,rk,m,n,chunk=1; 
double *B,*Bloc,t;
 
MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD,&np);
MPI_Comm_rank(MPI_COMM_WORLD,&rk);
if(rk==0)
{ 
fscanf(f,"%d ",&m); fscanf(f,"%d\n",&n);
chunk=m/np;
B=(double *)malloc(m*n*sizeof(double));
}
MPI_Bcast(&m,1, MPI_INT,0, MPI_COMM_WORLD);
MPI_Bcast(&chunk,1, MPI_INT,0, MPI_COMM_WORLD);
Bloc=(double *)malloc(chunk*n*sizeof(double));
 
if (rk==0)
{
Init(f,m,n,B);
t=MPI_Wtime();
}
MPI_Scatter(B,m*chunk,MPI_DOUBLE,Bloc,m*chunk,MPI_DOUBLE,0,MPI_COMM_WORLD);
Max(Bloc,chunk,n);
MPI_Gather(Bloc,m*chunk,MPI_DOUBLE,B,m*chunk,MPI_DOUBLE,0,MPI_COMM_WORLD);
 
if(rk==0)
{
t=MPI_Wtime()-t;
printf("%lf sec. \n",t);
// print(B,m,n);
}
//MPI_Finalize();
return 0;
}
что в программе не так?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru