© Георгиевский Анатолий, 26.10.2005

Курс по параллельным вычислениям

Совсем не хочется учить людей тому,
что умеешь, хочется научить тому, что никто не умеет.

Введение

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

Техническое обеспечение курса

  • Вычислительный кластер под управлением GNU/Linux состоит из 8 процессоров AMD Opteron 250. Вычислительные машины объединены сетью Gigabit Ethernet.
  • Учебный кластер на 24-е рабочие станции под управлением Windows, объединенные по Gigabit Ethernet.
  • Лекционные занятия проводятся в компьютерном классе с применением видео проекционной техники. Каждое занятие сопровождаться лабораторной работой по закреплению материала.

Темы занятий

  1. Командная строка Linux, структура операционной системы. Эта часть выносится в подготовительный курс вместо изучения MS DOS, по согласованию с преподавателями. Общая тенденция - уход от коммерческих программных продуктов. Ориентация на программные продукты Open Source. В качестве среды разработки предлагается DevCpp и коллекция компиляторов GNU. Применение средств разработки Open Source в среде Windows и Linux.
  2. Структура кластера. Примеры организации многопроцессорных систем. Возможности и недостатки архитектур.
  3. Методы описания параллельных задач. Выбор языка описания задачи. Описание модулей и связей, уход от алгоритмического программирования. Шаблоны взаимодействия задач.
  4. Преобразование систем дифференциальных уравнений в цифровые фильтры.
  5. Стандартизованные математические библиотеки,
  6. Протоколы взаимодействия задач MPI, OpenMP, абстрагирование от протоколов и архитектуры вычислительного кластера. Методы анализа эффективности и оптимизации разбиения задачи.
  7. Классификация задач, типовые задачи, требующие больших объемов вычислений. Монте-Карло, :, задачи динамики процессов в сложных конструкциях и средах. Анализ возможности разбиения задач. Примеры.
  8. Визуализация результатов: применение стандартных графических библиотек, введение в трехмерную графику OpenGL, визуализация сред и поверхностей.
  9. Задача визуализации важна, однако не должна быть центральной проблемой и не должна отбирать много времени у физика. Важно предложить ряд готовых решений, готовых шаблонов, применение которых позволит повысить эффективность работы. Важно дать подход для поиска и применения готовых наработок в области визуализации результатов. Лаборатория по применению готового шаблона к результатам расчета.

  10. Применение СУБД (баз данных) для систематизации и обработки результатов.

Систематизация данных с применением СУБД, как альтернатива работы с файлами. Во многих случаях позволяет существенно облегчить обработку результатов, позволяет упростить алгоритмы обработки, упростить ввод и описание задачи. Критерий применения: всегда, когда требуется многопроходная обработка результатов; всегда, когда требуется непоследовательное чтение, выборка данных.

(26 октября 2005 г.)