Реализация распределенной обработки информации средствами MPI. ПО, реализующее передачу данных между компьютерами с помощью средств MPI

Страницы работы

Содержание работы

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

ГОМЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ П. О. СУХОГО

Факультет автоматизированных и информационных систем

Кафедра «Информационные технологии»

ОТЧЕТ   ПО   ЛАБОРАТОРНОЙ   РАБОТЕ   № 6

по дисциплине «Программирование сетевых приложений»

на тему:     Реализация распределенной обработки информации средствами MPI.

Выполнил:      студент гр. ИТ-32

Принял:          преподаватель                                                               

Дата сдачи отчета:         _____________________

Дата допуска к защите: _____________________

Дата защиты:                  _____________________

Гомель 2014

Цель: разработать ПО, реализующее передачу данных между компьютерами с помощью средств MPI.

Задание

Организовать распределённую обработку информации не менее, чем на 3 компьютерах. Сравнить время выполнения на 3 компьютерах со временем выполнения операции на одном компьютере.

Листинг программы:

#include "stdafx.h"

#include "mpi.h"

#include "math.h"

#include "stdlib.h"

#include "string.h"

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

{

      int rank, size;

      MPI_Init(&argc, &argv);// инициализация MPI

      MPI_Comm_rank(MPI_COMM_WORLD, &rank); // возвращает ранг вызываемого процесса в точно определенном коммуникаторе

      MPI_Comm_size(MPI_COMM_WORLD, &size);

      double a=1,b=2,e=0.001;

      double h,n=1;

      double result=0,last_res;

      MPI_Status status;//статус завершения приема

      int end_flag=0, process=0;

      double temp_pogr=1;

      double tn,tk;

      if(rank==0)

      {

            tn=MPI_Wtime();//получаем текущее время

            while(end_flag==0)

            { 

                  if(temp_pogr > e)

                  {

                        last_res=result;

                        process++;

                        if(process==size) process=1;

                        MPI_Send(&n,1,MPI_DOUBLE,process,0,MPI_COMM_WORLD);//передача сообщения

                  MPI_Recv(&result,1,MPI_DOUBLE,MPI_ANY_SOURCE,MPI_ANY_TAG,MPI_COMM_WORLD,&status);//получаем сообщение

                        temp_pogr = fabs(fabs(result)- fabs(last_res));

                        last_res=result;

                        n=2*n;

                  }

                  else

                  {

                        double p=0;

                        for(int i=1;i<size;i++)

                              MPI_Send(&p,1,MPI_DOUBLE,i,0,MPI_COMM_WORLD);

                        end_flag=1;

                        tk=MPI_Wtime();

                        printf("Integral e^x*sin(x) ot %f do %f \ns tochnostiu %f : %f\n",a,b,e,result);

                        printf("Vremia vipolneniya : %f\n",tk-tn);

                  }

            }

      }

      else

      {

            while(end_flag==0)

            {

                  MPI_Recv(&n,1,MPI_DOUBLE,0,0,MPI_COMM_WORLD,&status);

                  if(n==0)

                        end_flag=1;

                  else

                  {

                        h=(b-a)/n;

                        double ff;

                        result=0;

                        for(int i=0;i<=n;i++)

                        {

                              ff=(exp(a+i*h)*sin(a+i*h)+exp(a+(i+1)*h)*sin(a+(i+1)*h))/2*h;

                              result=result+ff;

                        }

                        MPI_Send(&result,1,MPI_DOUBLE,0,1,MPI_COMM_WORLD);

                  }

            }

      }

      MPI_Finalize();

      return 0;

}

Результаты работы:

Сравнительный анализ:

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

Похожие материалы

Информация о работе