${message}

Этот двухдневный курс покрывает различные техники по ускорению вашего MATLAB кода. Вы научитесь находить и устранять узкие места в своем коде, используя техники выделения памяти и векторизации вычислений. Узнаете, как компилировать ваш MATLAB код в MEX-файлы, для ускорения вычислений, используя MATLAB Coder™. Познакомитесь с распараллеливанием циклов на много ядерных процессорах, используя Parallel Computing Toolbox™, и с возможностью масштабирования вычислений на нескольких компьютерах используя MATLAB Distributed Computing Server™, эти концепции будут рассмотрены на протяжении всего курса, на практических примерах и упражнениях.

Курс содержит следующие темы:

  • Повышение производительности внутри MATLAB;
  • Генерация MEX-файлов;
  • Распараллеливание вычислений;
  • Выгружаемое исполине задачи;
  • Работа с кластером;
  • Вычисления на GPU.

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

Для прохождения курса требуется предварительное прохождение курса  "MATLAB для профессионалов", либо эквивалентный опыт в MATLAB. 


Продолжительность курса - 2 дня.
 

Программа курса

День 1

Модуль 1. Повышение производительности.

Анализ производительности кода и использование различных методик для ускорения вычислений.

  • Нахождение булочного горлышка в коде;
  • Выделение памяти для массивов;
  • Рефакторинг алгоритмов.

Модуль 2. Генерация MEX-файлов.

Генерация скомпилированного кода из алгоритмов MATLAB для повышения производительности.

  • Знакомство с MATLAB Coder и рабочим процессом по генерации MEX-файлов;
  • Генерация и верификация MEX-файлов;
  • Вызов неподдерживаемых функций;
  • Настройка параметров для генерации MEX-файлов.

Модуль 3. Распараллеливание вычислений.

Распараллеливание выполнения кода для получения ускорения при использовании многоядерных процессоров. 

  • Запуск дополнительных MATLAB-процессов;
  • Распараллеливание цикла for;
  • Измерение прироста скорости;
  • Параллельная обработка нескольких файлов.

  

День 2

Модуль 4. Распараллеливание цикла for.

Более детально рассматривается распараллеливание цикла for, и методики по переводу цикла for в parfor цикл 

  • Условия для распараллеливания цикла for;
  • Распараллеливание цикла for;
  • Получение промежуточных результатов.

Модуль 5. Выгружаемое исполнение задачи.

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

  • Хранение данных в виде таблиц;
  • Операции с таблицами;
  • Извлечение данных из таблиц;
  • Изменение таблиц.

Модуль 6. Работа с кластером.

Ускорение вычислений используя несколько компьютеров  

  • Локальный и удаленный кластер;
  • Динамическое лицензирование;
  • Обнаружение и подключение к кластеру ;
  • Доступ к файлам.

Модуль 7. Вычисления на GPU.

Запуск MATLAB кода на видеокарте GPU вашего компьютера, опции по повышению производительности.  

  • Знакомство с архитектурой и вычислениями на GPU;
  • Приложения подходящие для обработке на GPU;
  • Вызов MATLAB функций на GPU;
  • Использование существующего CUDA кода.

 

Опциональный модуль

Модуль 8. Ускорение перебор параметров Simulink моделей.

Векторизация и распараллеливание перебора параметров Simulink моделей, для ускорения или проведения более масштабных симуляций.

  • Перебор параметров Simulink-модели;
  • Работа с Simulink моделями.
Поделиться

Задать вопрос

*
Настоящим в соответствии с Федеральным законом № 152-ФЗ «О персональных данных» от 27.07.2006, отправляя данную форму, вы подтверждаете свое согласие на обработку персональных данных . Мы, ООО ЦИТМ "Экспонента" и аффилированные к нему лица, гарантируем конфиденциальность получаемой нами информации. Обработка персональных данных осуществляется в целях эффективного исполнения заказов, договоров и пр. в соответствии с «Политикой конфиденциальности персональных данных». * - обязательные поля