IPB
ЛогинПароль:

> Изучаем языки.
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 149

Репутация: -  1  +


Выбераем язык который будем изучать первым. (с моей помощью)
По какому языку будет первый FAQ.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 149

Репутация: -  1  +


Многопроцессорный вариант. (Тут конечно можно и повиснуть - головой)

// Сортировка разрезанного массива с пересылкой по одному крайнему элементу
// с использованием одномерной незамкнутой декартовой топологии (линейка)

#include<stdio.h>
#include<mpi.h>
#include<math.h>
#include<sys/time.h>

#define N 10
double M[N];

double qwe,x,minn,maxx;

int flag,flag1,flag2,fl1,fl2,stop,jj;

int main(int argc,char *argv[])

{ int i,j,k,size,rank,sour,dest;

 MPI_Status status;

 MPI_Comm line;

 int dims[1],period[1],reord,iop;

 MPI_Init(&argc,&argv);

 MPI_Comm_size(MPI_COMM_WORLD,&size);

 MPI_Comm_rank(MPI_COMM_WORLD,&rank);

 dims[0]=size;

 period[0]=0;

 reord=0;

 // создание декартовой топологии "линейка"

 MPI_Cart_create(MPI_COMM_WORLD,1,dims,period,reord,&line);

 // получение номеров соседей

 MPI_Cart_shift(line,0,1,&sour,&dest);

 // инициализация массива

 for(i=0;i<N;i++) M[i]=rank+i;

 // сортировка локального массива

 for(i=0;i<N;i++)

   for(j=N-1;j>i-1;j--)

     if (M[j-1]>M[j]) { x=M[j-1]; M[j-1]=M[j]; M[j]=x; }

 // сортировка

 do

 { flag=0; flag1=0; flag2=0;

   // передача граничных элементов

   if(rank!=0)

   { MPI_Send(&M[0],1,MPI_DOUBLE,sour,12,line);

     MPI_Recv(&maxx,1,MPI_DOUBLE,sour,13,line,&status);  

   }    

   if(rank!=size-1)

   { MPI_Send(&M[N-1],1,MPI_DOUBLE,dest,13,line);

     MPI_Recv(&minn,1,MPI_DOUBLE,dest,12,line,&status);

   }

   // упорядочивание новых элементов относительно остальных

   if(rank!=size-1)

   { j=N-1;

     do

     { stop=0;

       if (M[j-1]>minn) { M[j]=M[j-1]; stop=1; j=j-1; }  

     } while(stop!=0);

     if(M[j]>minn) { M[j]=minn; flag1=1; }

   }

   if(rank!=0)

   { j=0;

     do

     { stop=0;

       if (M[j+1]<maxx) { M[j]=M[j+1]; stop=1; j=j+1; }  

       if (j==N-1) stop=0;

     } while(stop!=0);

     if(M[j]<maxx) { M[j]=maxx; flag2=1; }

   }              

   // проверка на отсортированность по всем процессорам

   MPI_Allreduce(&flag1,&fl1,1,MPI_INT,MPI_SUM,line);

   MPI_Allreduce(&flag2,&fl1,1,MPI_INT,MPI_SUM,line);

   MPI_Allreduce(&fl1,&flag,1,MPI_INT,MPI_SUM,line);

 } while(flag);

 // вывод результата

 printf("%d: M= ",rank);

 for (j=0;j<N;j++) printf(" %2.0lf",M[j]);

 printf("n");

 MPI_Finalize();

 return 0;
}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Deny   Изучаем языки.   12.05.2003 22:53
Alex   Re: Изучаем языки.   12.05.2003 23:03
Deny   Re: Изучаем языки.   12.05.2003 23:13
mj   Re: Изучаем языки.   13.05.2003 11:47
Alex   Re: Изучаем языки.   13.05.2003 16:26
Deny   Re: Изучаем языки.   13.05.2003 18:51
Deny   Re: Изучаем языки.   13.05.2003 18:58
mj   Re: Изучаем языки.   13.05.2003 20:45
AlaRic   Re: Изучаем языки.   13.05.2003 21:15
Deny   Re: Изучаем языки.   13.05.2003 21:47
Deny   Re: Изучаем языки.   13.05.2003 21:48
AlaRic   Re: Изучаем языки.   13.05.2003 22:04
Deny   Re: Изучаем языки.   13.05.2003 22:06
Alex   Re: Изучаем языки.   13.05.2003 22:45
Deny   Re: Изучаем языки.   13.05.2003 22:48
Deny   Re: Изучаем языки.   13.05.2003 22:51
Alex   Re: Изучаем языки.   13.05.2003 22:53
Deny   Re: Изучаем языки.   13.05.2003 22:58
Slam   Re: Изучаем языки.   14.05.2003 0:54
Deny   Re: Изучаем языки.   14.05.2003 1:04
Alex   Re: Изучаем языки.   14.05.2003 16:57
Deny   Re: Изучаем языки.   14.05.2003 17:47
Deny   Re: Изучаем языки.   15.05.2003 1:38
Dark   Re: Изучаем языки.   15.05.2003 3:44
Deny   Re: Изучаем языки.   15.05.2003 13:40
Alex   Re: Изучаем языки.   16.05.2003 10:01
Deny   Re: Изучаем языки.   16.05.2003 14:53
Alex   Re: Изучаем языки.   16.05.2003 14:59
AlaRic   Re: Изучаем языки.   16.05.2003 15:15
Deny   Re: Изучаем языки.   16.05.2003 15:22
mj   Re: Изучаем языки.   17.05.2003 0:09
mj   Re: Изучаем языки.   17.05.2003 0:12
Deny   Re: Изучаем языки.   17.05.2003 1:31
Alex   Re: Изучаем языки.   17.05.2003 13:03
Deny   Re: Изучаем языки.   17.05.2003 14:22
Alex   Re: Изучаем языки.   17.05.2003 15:42
Deny   Re: Изучаем языки.   17.05.2003 16:35
Alex   Re: Изучаем языки.   18.05.2003 19:37
Altair   Re: Изучаем языки.   18.01.2004 12:35
SKVOZNJAK   Re: Изучаем языки.   19.01.2004 13:00


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 10.05.2024 15:41
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name