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

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


Пионер
**

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

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


Выбераем язык который будем изучать первым. (с моей помощью)
По какому языку будет первый FAQ.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Deny
сообщение 13.05.2003 14:58
Сообщение #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 18:53
Alex   Re: Изучаем языки.   12.05.2003 19:03
Deny   Re: Изучаем языки.   12.05.2003 19:13
mj   Re: Изучаем языки.   13.05.2003 7:47
Alex   Re: Изучаем языки.   13.05.2003 12:26
Deny   Re: Изучаем языки.   13.05.2003 14:51
Deny   Re: Изучаем языки.   13.05.2003 14:58
mj   Re: Изучаем языки.   13.05.2003 16:45
AlaRic   Re: Изучаем языки.   13.05.2003 17:15
Deny   Re: Изучаем языки.   13.05.2003 17:47
Deny   Re: Изучаем языки.   13.05.2003 17:48
AlaRic   Re: Изучаем языки.   13.05.2003 18:04
Deny   Re: Изучаем языки.   13.05.2003 18:06
Alex   Re: Изучаем языки.   13.05.2003 18:45
Deny   Re: Изучаем языки.   13.05.2003 18:48
Deny   Re: Изучаем языки.   13.05.2003 18:51
Alex   Re: Изучаем языки.   13.05.2003 18:53
Deny   Re: Изучаем языки.   13.05.2003 18:58
Slam   Re: Изучаем языки.   13.05.2003 20:54
Deny   Re: Изучаем языки.   13.05.2003 21:04
Alex   Re: Изучаем языки.   14.05.2003 12:57
Deny   Re: Изучаем языки.   14.05.2003 13:47
Deny   Re: Изучаем языки.   14.05.2003 21:38
Dark   Re: Изучаем языки.   14.05.2003 23:44
Deny   Re: Изучаем языки.   15.05.2003 9:40
Alex   Re: Изучаем языки.   16.05.2003 6:01
Deny   Re: Изучаем языки.   16.05.2003 10:53
Alex   Re: Изучаем языки.   16.05.2003 10:59
AlaRic   Re: Изучаем языки.   16.05.2003 11:15
Deny   Re: Изучаем языки.   16.05.2003 11:22
mj   Re: Изучаем языки.   16.05.2003 20:09
mj   Re: Изучаем языки.   16.05.2003 20:12
Deny   Re: Изучаем языки.   16.05.2003 21:31
Alex   Re: Изучаем языки.   17.05.2003 9:03
Deny   Re: Изучаем языки.   17.05.2003 10:22
Alex   Re: Изучаем языки.   17.05.2003 11:42
Deny   Re: Изучаем языки.   17.05.2003 12:35
Alex   Re: Изучаем языки.   18.05.2003 15:37
Altair   Re: Изучаем языки.   18.01.2004 8:35
SKVOZNJAK   Re: Изучаем языки.   19.01.2004 9:00


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

 



- Текстовая версия 18.08.2025 12:56
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"