новыЕ технологиИ параллельного и традиционного программирования презентация

Новые технологии параллельного и традиционного программирования Новая технология программирования с применением процедур с повторным входом. Разработанa alfa-версия транслятора C++, реализующего технологию Продукт Традиционное и параллельное программирование для систем с общей памятью

Слайд 1НОВЫЕ ТЕХНОЛОГИИ ПАРАЛЛЕЛЬНОГО И ТРАДИЦИОННОГО ПРОГРАММИРОВАНИЯ


Слайд 2Новые технологии параллельного и традиционного программирования
Новая технология программирования с применением процедур с

повторным входом. Разработанa alfa-версия транслятора C++, реализующего технологию

Продукт

Традиционное и параллельное программирование для систем с общей памятью (многопроцессорных и/или многоядерных компьютеров)

Область применения

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

Концепция


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

хорошо известные типы данных «стек» и «очередь», в программном коде. Отдельные фрагменты программы сокращаются в 1,5-2 раза.

Повышение эффективности программирования


void _Out(TreeNode * Cur) {
list Queue = list();
int LevelNodes = 1;
int NextLevelNodes = 0;
Queue.push_back(Cur);
while (!Queue.empty()) {
Cur = Queue.front();
Queue.pop_front();
cout<Data()<<" ";
if (Cur->Left) {
Queue.push_back(Cur->Left); NextLevelNodes++;
}
if (Cur->Right) {
Queue.push_back(Cur->Right); NextLevelNodes++;
}
if (--LevelNodes==0) {
cout<<"\n";
LevelNodes = NextLevelNodes; NextLevelNodes = 0;
}
}
}

Новые технологии параллельного и традиционного программирования

int CurLevel = 1;
reenterable Out(TreeNode * Cur, int Level) {
if (Level!=CurLevel) {
CurLevel = Level;
cout<<"\n";
}
cout<Data()<<" ";
if (Cur->Left)
plan_last(Cur->Left,Level+1);
if (Cur->Right)
plan_last(Cur->Right,Level+1);
}

10 операторов

19 операторов

Пример. Классический алгоритм обхода дерева по уровням

Применим
технологию


Слайд 4Алгоритмы записываются более компактно и естественно по сравнению
с OpenMP 2.0. На

поверхность «выносится» скрытый параллелизм алгоритмов.
Порождается меньшее количество потоков исполнения при том же количестве конструкций, что и при использовании OpenMP 3.0

Упрощение конструкций параллельного программирования


int NLOCK = 0;
#pragma omp parallel num_threads(2) private(i) shared(NLOCK)
switch (omp_get_thread_num()) {
case 0:
for (i=0; i<5; i++) {
R[i][0] = 0.0;
for (j=0; j R[i][0] += X2[i][j]*X3[i][j];
#pragma omp atomic
NLOCK++;
#pragma omp flush(NLOCK)
}
break;
case 1:
for (i=0; i<5; i++) {
while (NLOCK for (j=VEC_SIZE-1; j>=0; j--)
R[i][j] = X1[i][j]+R[i][0];
}
}

Новые технологии параллельного и традиционного программирования

chain Stage0(int N, double * V1, double * V2, double * V3, double * R) throw(double * V1, double MUL, double * R) {
for (int i=0; i double MUL = 0.0;
for (int j=0; j MUL += (*V2++)*(*V3++);
throw_last(V1,MUL,R);
}
}
chain Stage1(double * V1, double MUL, double * R) {
for (int j=0; j R[j] = V1[j]+MUL;
}

plan_parallel_chain(0, Stage0(5,(double *)X1,(double *)X2,(double *)X3,(double *)R), Stage1(NULL,0,NULL));



2 конструкции

5 конструкций

Пример. Конвейеризация расчета векторного выражения X1+X2*X3








Применим
технологию


Слайд 5
Ускорение расчета на четырех ядрах (2*Opteron 270, 2 ГГц)
Новые технологии параллельного и

традиционного программирования

Фото кристалла многоядерного процессора: журнал «MOBI», 3/2009

Число ядер


Повышение эффективности кодирования и распараллеливания ряда алгоритмов:
Сокращение времени на их программирование.
Минимизация количества и упрощение конструкций, необходимых для распараллеливания расчета, в сравнении с OpenMP.
Уменьшение количества порождаемых параллельных потоков.
Устранение некоторых потенциальных логических ошибок, связанных с избыточностью кода

Эффект от внедрения


Слайд 6 Фирмы, специализирующиеся на разработке программного обеспечения;
Независимые разработчики программного обеспечения;

Научные центры, ориентированные на работу с многопроцессорными системами;
Учебные заведения.

Основные сегменты рынка


Продукт не имеет прямых аналогов.
Косвенные аналоги, реализующие встроенные средства распараллеливания:
T-технологии;
OpenMP (компиляторы GNU, Microsoft);
DVM, HPC, MC#.

Новые технологии параллельного и традиционного программирования

Конкуренция

Самостоятельный продукт (препроцессор + отладчик);
В составе уже существующих профессиональных компиляторов C++.

Возможности реализации технологии


Слайд 71. Маркетинговые риски.
2. Кадровые риски. Необходима высокая квалификация разработчиков.
3. Риск недостаточного

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

Риски


Разработана и испытана alfa-версия транслятора.
Предполагаются творческая проработка и совершенствование предложенных технологий (возможно привлечение партнера для завершения НИОКР).
Необходимы инвестиции (300 тыс. руб) для разработки полноценных и качественных коммерческих версий транслятора и отладчика.
Вывод системы на рынок
Маркетинговые исследования
Рекламные кампании
Участие в выставках
Бесплатные демонстрационные версии

Состояние проекта и перспективы

Новые технологии параллельного и традиционного программирования


Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика