Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Презентации лекций в одном файле

.pdf
Скачиваний:
15
Добавлен:
27.05.2024
Размер:
10.25 Mб
Скачать

MPC концепция REPL

int a; repl int b; a=1; b=2;

MPC_Global_barrier(); [mynet:I==1]:{b=3;}

MPC_Global_barrier(); printf(“%d %d\n”,a,b);

1 3

int a; repl int b;

a=2;

b=2; MPC_Global_barrier(); [mynet:I==1]:{b=3;} MPC_Global_barrier(); printf(“%d %d\n”,a,b);

2 3

Класс 4328

МИЭТ

Методы распределения нагрузки

Распараллеливание

По коду (РПК)

Репликация

Фрагментация

кода

кода

Распараллеливание по коду

Pr 1

CODE

 

 

 

Pr 2

DATA

 

 

репликация

Pr 3

 

 

 

 

Pr 4

 

По данным

(РПД)

Репликация

Фрагментация

данных

 

данных

Распараллеливание по данным

DATA

Pr 1

CODE

DATA

 

 

Pr 2

репликация DATA

DATA

репликация

Pr 3

 

 

DATA

 

Pr 4

 

 

DATA1

 

 

Pr 1

 

 

CODE

 

DATA2

DATA

 

 

 

 

Pr 2

 

DATA1

 

 

 

 

 

фрагментация

DATA2

 

 

 

 

 

DATA3

DATA3

 

 

 

репликация

Pr 3

 

 

 

 

 

 

 

 

DATA4

 

 

DATA4

 

Pr 4

vehicle

Computational Fluid Dynamics (CFD) Packages used to model vehicle aerodynamics

Source: www.fluent.com/ about/news/pr/pr48.html ; www.fluent.com

Reservoir simulation packages model oil/gas reservoir rock and fluid properties

Source: http://www.geocap.no/products/a4.eclipse.shtml

Common Job / Task Types

Job

Task

 

Task

 

Task

Task

Task

 

Task

 

 

 

 

 

Task

Task

Task

Task

Task

Task

Proc

Proc

Proc

Proc

Task

Task

Task

 

Task

 

 

 

 

 

Parametric Sweep

 

 

 

Serial Application

 

MPI Application

 

 

Application

 

Task flow

 

 

 

 

 

 

 

 

 

 

One Job

 

 

 

 

One Job

 

 

 

 

 

 

 

 

 

 

 

 

One Task

 

 

 

 

Multiple Tasks

 

 

 

 

 

 

 

 

 

 

 

Job/Task Conceptual Model

Serial Job

Parallel MPI Job

Parameter Sweep Job

Task

Task

Task

Task

Task

Proc

Proc IPC Proc

Proc

Proc

Proc

 

 

 

Task Flow Job

 

 

 

Task

 

 

 

Task

 

 

Task

Task

Поток

Самостоятельная цепочка последовательно выполняемых

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

несколько потоков.

Все глобальные данные являются общими для различных потоков, выполняющихся в рамках одной программы

локальные данные индивидуальны

Глобальные и локальные данные

глобальные данные - это данные, расположенные в статической памяти и области динамической памяти, выделенные с помощью функций управления динамической памятью

локальные данные это автоматические переменные, т.е. переменные, объявленные внутри функций или составных блоков

1: int a;

В данном примере переменные a и k,

2: main()

а также область памяти, выделенная в

3: {

 

строке 7,

4:

double b;

являются глобальными данными.

5:

static int k;

Переменные b и p представляют собой

6:

char* p;

пример локальных данных.

7:

p=(char*)malloc(10);

 

8: }

Прирост в производительности при использовании потоков

 

 

 

Поток 1

Процесс

Поток

Процесс

Поток 2

 

 

 

 

Поток 3

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

что невозможно, если весь процесс рассматривается планировщиком как единое целое.