Продукт
Традиционное и параллельное программирование для систем с общей памятью (многопроцессорных и/или многоядерных компьютеров)
Область применения
Предлагается новая конструкция — процедура с повторным входом.
Используется несколько нестандартный стиль записи ряда обычных
и стадийных алгоритмов, сводимых к порождению серии схожих подзадач
с планированием последовательности их решения в соответствии
со стратегиями постановки в очередь, стек или дек. 
Вводится разметка для маркировки потенциально параллельных фрагментов.
Концепция
                                
Повышение эффективности программирования
Новые технологии параллельного
и традиционного программирования int CurLevel = 1; 10 операторов 19 операторов Пример. Классический алгоритм обхода дерева по уровням Применим
void _Out(TreeNode * Cur) {
 list
 int LevelNodes = 1;
 int NextLevelNodes = 0;
 Queue.push_back(Cur);
 while (!Queue.empty()) {
  Cur = Queue.front();
  Queue.pop_front();
  cout<
  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;
  }
  }
}
reenterable Out(TreeNode * Cur, int Level) {
 if (Level!=CurLevel) {
   CurLevel = Level;
   cout<<"\n";
 }
 cout<
 if (Cur->Left)
  plan_last(Cur->Left,Level+1); 
 if (Cur->Right)
  plan_last(Cur->Right,Level+1); 
}
технологию
                                
Упрощение конструкций параллельного программирования
Новые технологии параллельного
и традиционного программирования chain Stage0(int N, double * V1, double * V2, double * V3, double * R) throw(double * V1, double MUL, double * R) { 2 конструкции 5 конструкций Пример. Конвейеризация расчета векторного выражения X1+X2*X3 Применим
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
     #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];
    }
 }
 for (int i=0; i
  for (int j=0; j
  throw_last(V1,MUL,R);
  }
}
chain Stage1(double * V1, double MUL, double * R) {
 for (int j=0; j
}
…
plan_parallel_chain(0, Stage0(5,(double *)X1,(double *)X2,(double *)X3,(double *)R), Stage1(NULL,0,NULL));
технологию
                                
Фото кристалла многоядерного процессора: журнал «MOBI», 3/2009
Число ядер
Повышение эффективности кодирования и распараллеливания ряда алгоритмов:
Сокращение времени на их программирование.
Минимизация количества и упрощение конструкций, необходимых для распараллеливания расчета, в сравнении с OpenMP.
Уменьшение количества порождаемых параллельных потоков.
Устранение некоторых потенциальных логических ошибок, связанных с избыточностью кода
Эффект от внедрения
                                
Основные сегменты рынка
Продукт не имеет прямых аналогов.
Косвенные аналоги, реализующие встроенные средства распараллеливания:
 T-технологии;
 OpenMP (компиляторы GNU, Microsoft);
 DVM, HPC, MC#.
Новые технологии параллельного
и традиционного программирования
Конкуренция
 Самостоятельный продукт (препроцессор + отладчик);
 В составе уже существующих профессиональных компиляторов C++.
Возможности реализации технологии
                                
Риски
 Разработана и испытана alfa-версия транслятора.
 Предполагаются творческая проработка и совершенствование предложенных технологий (возможно привлечение партнера для завершения НИОКР).
 Необходимы инвестиции (300 тыс. руб) для разработки полноценных и качественных коммерческих версий транслятора и отладчика.
 Вывод системы на рынок
 Маркетинговые исследования
 Рекламные кампании
 Участие в выставках
 Бесплатные демонстрационные версии
Состояние проекта и перспективы
Новые технологии параллельного
и традиционного программирования
                                
Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть