
Презентации лекций в одном файле
.pdf
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 |
При создании двух потоков в рамках одного процесса для получения ускорения необходимо, чтобы оба потока выполнялись разными процессорными устройствами,
что невозможно, если весь процесс рассматривается планировщиком как единое целое.