Программные средства синтетической биологии для автоматизированного проектиро...Ilya Klabukov
Программные средства синтетической биологии для автоматизированного проектирования функциональных живых систем.
Семинар по вопросам создания
Лаборатории синтетической биологии
Московского физико-технического института
Программные средства синтетической биологии для автоматизированного проектиро...Ilya Klabukov
Программные средства синтетической биологии для автоматизированного проектирования функциональных живых систем.
Семинар по вопросам создания
Лаборатории синтетической биологии
Московского физико-технического института
РАЗРАБОТКА МОДЕЛИ ЭКСПЕРТНОЙ СИСТЕМЫ НА ОСНОВЕ НЕЧЁТКОЙ ЛОГИКИNatalia Polkovnikova
Полковникова Н.А., Курейчик В.М. Разработка модели экспертной системы на основе нечёткой логики // Известия ЮФУ. Технические науки. – 2014. – №1 (150). – С. 83-92.
РАЗВИТИЕ И ПРИМЕНЕНИЕ ВЫСОКОПРОИЗВОДИТЕЛЬНЫХ СЕРВИСОВ НА БАЗЕ СУПЕРКОМПЬЮТЕРОВ ПЕРМСКОГО ГОСУДАРСТВЕННОГО НАЦИОНАЛЬНОГО ИССЛЕДОВАТЕЛЬСКОГО УНИВЕРСИТЕТА. Пленарный доклад II Всероссийской научно-практической конференции с международным участием с элементами научной школы для молодежи «Высокопроизводительные вычисления на графических процессорах»
(Пермь, ПГНИУ, 2-6 июня 2014 г.)
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...yaevents
Александр Петренко, ИСП РАН
Профессор, доктор физико-математических наук, заведующий отделом технологий программирования Института системного программирования (ИСП РАН), профессор ВМК МГУ. Основные работы в областях: формализация требований, генерация тестов на основе формализованных требований и формальных моделей (model based testing – MBT). Приложения: тестирование операционных систем и распределенных систем, тестирование компиляторов, верификация дизайна микропроцессоров, формализация стандартов на API операционных систем и телекоммуникационных протоколов. Сопредседатель оргкомитетов International MBT workshop (http://www.mbrworkshop.org/), Spring Young Researcher Colloquium on Software Engineering – SYRCoSE (http://syrocose.ispras.ru), городского семинара по технологиям разработки и анализа программ ТРАП/SDAT (http://sdat.ispras.ru/).
Тема доклада
Модели в профессиональной инженерии и тестировании программ.
Тезисы
Model Based Software Engineering (MBSE) является расширением подхода к разработке программ на основе моделей. В MBSE в отличие, например, от MDA (Model Driver Architecture) существенное внимание уделяется не только задачам собственно проектирования и разработки кода, но и задачам других фаз жизненного цикла – анализу требований, верификации и валидации, управлению требованиями на всех фазах жизненного цикла. Model Based Testing (MBT) хронологически возник гораздо раньше, чем MBSE и MDA, однако его место в разработке программ в полной мере раскрылось вместе с развитием MBSE. По этой причине MBT и MBSE следует рассматривать в тесной связке. В докладе будут рассмотрены концепции MBSE-MDA-MBT, основные источники и виды моделей, которые используются в этих подходах, методы генерации тестов на основе моделей, известные инструменты для
Слайды использовались на краткосрочных курсах повышения квалификации учителей информатики, 2 лекции по 1 час 20 минут.
Изложен опорный (предельно ужатый) материал по основами C++.
Разработка Enterprise-приложения на основе Spring FrameworkCUSTIS
Открытый семинар для студентов в компании CUSTIS (9 апреля 2015 года).
Лектор: Вячеслав Муравлев, ведущий Java-разработчик.
Аннотация: За 11 лет своего существования Spring Framework превратился в настоящий кладезь решений типовых задач, возникающих при разработке Enterprise-приложения. Прежде чем разрабатывать свои механизмы работы с БД, авторизации и аутентификации, имитации промышленного окружения для проведения тестирования, пакетной загрузки данных, запуска заданий по расписанию, асинхронного взаимодействия компонентов системы и т. д. — посмотрите в Spring повнимательнее, там это уже есть и готово к использованию. На семинаре мы создадим Enterprise-приложение «с нуля», решая в процессе типовые задачи с помощью готовых компонентов Spring Framework.
Видеозапись семинара: https://vimeo.com/125020967.
ВИРТУАЛЬНАЯ ЛАБОРАТОРИЯ ОБУЧЕНИЯ МЕТОДАМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ДЛЯ ГЕНЕРА...ITMO University
Описывается структура и возможности виртуальной лаборатории для обучения генетическому и автоматному программированию, реализованной на языке C#. Описываются основные этапы создания собственных подключаемых модулей лаборатории.
ЛЕКЦИЯ 0. Описание курса. Общие вопросы, структура курса, требования. Содержание курса. Полезные ресурсы
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
Презентация с семинара ИТМО "Формализация знаний и искусственный интеллект в образовании" (http://iam.ifmo.ru/ru/viewnews/17227/formalizaciya_znaniy_i_iskusstvennyy_intellekt_v_obrazovanii.htm). Доклад "Информационные системы поддержки активного обучения: облачные технологии, управление знаниями и коллаборативные платформы".
EdCrunch 2018 - Skyeng - EdTech product scaling: How to influence key growth ...Michael Karpov
Skyeng company case:
"EdTech product scaling: How to influence key growth indicators and achieve rapid progress. Product VS Marketing look"
Global conference for technology in education #EdCrunch
https://2018.edcrunch.ru/en/
Movement to business goals: Data, Team, Users (4C Conference)Michael Karpov
In this talk Mikhail Karpov discuss the methods used to move to business goals faster on example of VK.com processes, including teams flexible structure and feedback loop from service audience
РАЗРАБОТКА МОДЕЛИ ЭКСПЕРТНОЙ СИСТЕМЫ НА ОСНОВЕ НЕЧЁТКОЙ ЛОГИКИNatalia Polkovnikova
Полковникова Н.А., Курейчик В.М. Разработка модели экспертной системы на основе нечёткой логики // Известия ЮФУ. Технические науки. – 2014. – №1 (150). – С. 83-92.
РАЗВИТИЕ И ПРИМЕНЕНИЕ ВЫСОКОПРОИЗВОДИТЕЛЬНЫХ СЕРВИСОВ НА БАЗЕ СУПЕРКОМПЬЮТЕРОВ ПЕРМСКОГО ГОСУДАРСТВЕННОГО НАЦИОНАЛЬНОГО ИССЛЕДОВАТЕЛЬСКОГО УНИВЕРСИТЕТА. Пленарный доклад II Всероссийской научно-практической конференции с международным участием с элементами научной школы для молодежи «Высокопроизводительные вычисления на графических процессорах»
(Пермь, ПГНИУ, 2-6 июня 2014 г.)
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...yaevents
Александр Петренко, ИСП РАН
Профессор, доктор физико-математических наук, заведующий отделом технологий программирования Института системного программирования (ИСП РАН), профессор ВМК МГУ. Основные работы в областях: формализация требований, генерация тестов на основе формализованных требований и формальных моделей (model based testing – MBT). Приложения: тестирование операционных систем и распределенных систем, тестирование компиляторов, верификация дизайна микропроцессоров, формализация стандартов на API операционных систем и телекоммуникационных протоколов. Сопредседатель оргкомитетов International MBT workshop (http://www.mbrworkshop.org/), Spring Young Researcher Colloquium on Software Engineering – SYRCoSE (http://syrocose.ispras.ru), городского семинара по технологиям разработки и анализа программ ТРАП/SDAT (http://sdat.ispras.ru/).
Тема доклада
Модели в профессиональной инженерии и тестировании программ.
Тезисы
Model Based Software Engineering (MBSE) является расширением подхода к разработке программ на основе моделей. В MBSE в отличие, например, от MDA (Model Driver Architecture) существенное внимание уделяется не только задачам собственно проектирования и разработки кода, но и задачам других фаз жизненного цикла – анализу требований, верификации и валидации, управлению требованиями на всех фазах жизненного цикла. Model Based Testing (MBT) хронологически возник гораздо раньше, чем MBSE и MDA, однако его место в разработке программ в полной мере раскрылось вместе с развитием MBSE. По этой причине MBT и MBSE следует рассматривать в тесной связке. В докладе будут рассмотрены концепции MBSE-MDA-MBT, основные источники и виды моделей, которые используются в этих подходах, методы генерации тестов на основе моделей, известные инструменты для
Слайды использовались на краткосрочных курсах повышения квалификации учителей информатики, 2 лекции по 1 час 20 минут.
Изложен опорный (предельно ужатый) материал по основами C++.
Разработка Enterprise-приложения на основе Spring FrameworkCUSTIS
Открытый семинар для студентов в компании CUSTIS (9 апреля 2015 года).
Лектор: Вячеслав Муравлев, ведущий Java-разработчик.
Аннотация: За 11 лет своего существования Spring Framework превратился в настоящий кладезь решений типовых задач, возникающих при разработке Enterprise-приложения. Прежде чем разрабатывать свои механизмы работы с БД, авторизации и аутентификации, имитации промышленного окружения для проведения тестирования, пакетной загрузки данных, запуска заданий по расписанию, асинхронного взаимодействия компонентов системы и т. д. — посмотрите в Spring повнимательнее, там это уже есть и готово к использованию. На семинаре мы создадим Enterprise-приложение «с нуля», решая в процессе типовые задачи с помощью готовых компонентов Spring Framework.
Видеозапись семинара: https://vimeo.com/125020967.
ВИРТУАЛЬНАЯ ЛАБОРАТОРИЯ ОБУЧЕНИЯ МЕТОДАМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ДЛЯ ГЕНЕРА...ITMO University
Описывается структура и возможности виртуальной лаборатории для обучения генетическому и автоматному программированию, реализованной на языке C#. Описываются основные этапы создания собственных подключаемых модулей лаборатории.
ЛЕКЦИЯ 0. Описание курса. Общие вопросы, структура курса, требования. Содержание курса. Полезные ресурсы
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
Презентация с семинара ИТМО "Формализация знаний и искусственный интеллект в образовании" (http://iam.ifmo.ru/ru/viewnews/17227/formalizaciya_znaniy_i_iskusstvennyy_intellekt_v_obrazovanii.htm). Доклад "Информационные системы поддержки активного обучения: облачные технологии, управление знаниями и коллаборативные платформы".
EdCrunch 2018 - Skyeng - EdTech product scaling: How to influence key growth ...Michael Karpov
Skyeng company case:
"EdTech product scaling: How to influence key growth indicators and achieve rapid progress. Product VS Marketing look"
Global conference for technology in education #EdCrunch
https://2018.edcrunch.ru/en/
Movement to business goals: Data, Team, Users (4C Conference)Michael Karpov
In this talk Mikhail Karpov discuss the methods used to move to business goals faster on example of VK.com processes, including teams flexible structure and feedback loop from service audience
"Пользователи: сигнал из космоса". CodeFest mini 2012Michael Karpov
О способах получения обратной связи от пользователей в российских и иностранных интернет-компаниях.
Также, на основе различных жизненных кейсов рассмотрим их полезность и применимость.
Михаил рассмотрит основные случаи и всякие примеры применения на основе Яндекса и нескольких других российских и иностранных компаний.
Как сделать команде приятное - Михаил Карпов (Яндекс)Michael Karpov
Команде приятное можно сделать разными способами.
Этот доклад о том, как это сделать с помощью вашего процесса.
Многие понимают то, что важно вовлекать команду в продукт, но также важно вовлекать команду в ваш процесс.
Для этого ваш процесс должен коротко и доходчиво отвечать на вопросы команды.
О них и поговорим.
Hpc Visualization with X3D (Michail Karpov)Michael Karpov
The document describes two modes of data analysis for workload rendering on server clusters:
1. General system analysis uses a molecular metaphor to visualize task load across cluster nodes over time, allowing users to identify bottlenecks.
2. Detailed task analysis uses a greenhouse metaphor to test individual tasks under varying hardware/software parameters and identify bottlenecks like CPU, memory, or disk limitations.
Both modes aim to optimize workload distribution and resource usage across clusters.
сбор требований с помощью Innovation gamesMichael Karpov
За основу были взяты бизнес-игры от Люка Хоммана: innovationgames.com
Они представлены ниже в презентации: "Начни новый день", "Product Box", "Воспоминания о будущем", "Удиви клиента", "Катер", "Паутина".
Практическое занятие было не лишено соревновательного характера:
в первой части команды "разработчиков" собирали неявные знания с "пользователей", а во второй части должны были предложить им каждый свой продукт.
Естественно, что пользователи выбирают наиболее понравившийся (то есть наиболее удовлетворяющий их потребностям) и команда, предложившая данный продукт, побеждает.
Зачем нам Это? или Как продать agile командеMichael Karpov
Мы все сталкиваемся с ситуациями когда сложно работать с Заказчиком по Agile и уговорить его на подобный способ коммуникации.
Также, часто команде сложно уговорить своего менеджера.
Но!
Бывает и иначе: менеджер предлагает внедрять Agile, а команда "не до конца уверена"...
Именно о такой ситуации и рассказывает этот доклад!
The document describes a software system being developed to visually monitor the workload of cores in a high-performance manycore computer architecture. The system receives data about the state of cores in a computing system, analyzes the data, and displays it visually with remote web access. Compared to other software for visually monitoring multiprocessor systems, this system provides a visual display of processed data on the state of cores based on analysis of inter-core messages and characteristics of individual cores. The system is being developed using Microsoft Visual Studio 2008 on a 16-core Windows cluster at Polytechnic University and will aid in analyzing and monitoring complex systems and their components during different workload modes.
The document discusses the development of a system for visual monitoring of workloads on high-performance multi-core computer clusters. The system provides visual analysis and performance monitoring of clusters and their components. It was developed using Microsoft tools on a 16-node Windows HPC Server 2008 cluster. The system displays program characteristics, core memory usage, and process status to help optimize parallel programs.
Simon Peyton Jones provides advice on how to give a great research talk in 3 sentences or less:
The purpose of a research talk is to engage the audience and make them eager to read your paper, not to impress them or present all details; the talk should motivate the key idea in the first 2 minutes and then focus 80% on the idea with examples, leaving out technical details and related work. Enthusiasm is the most potent tool for presenting an exciting talk that keeps the audience awake and makes them glad they attended.
1. Технологии разработки паралелльных программ с использованием
параллельных математических библиотек
Василий Воронов
Московский Государственный Университет
факультет Вычислительной математики и кибернетики
27 октября 2009 г.
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 1 / 34
2. План курса
1 Математическая библиотека PETSc
Обзор функциональности PETSc
Установка
2 Матрично-векторные операции в PETSc
3 Case study: Решение систем линейных уравнений
4 Отладка и профилирование параллельных программ
5 Решение обыкновенных дифференциальных уравнений
Case study: решение ОДУ
Case study: эффективное управление памятью
6 Решение нелинейных уравнений
Case study: решение уравнения Брату
7 Пакет SLEPc: решение задач на собственные значения
Case study: решение обобщенной задачи на собственные значения
Case study: частичное сингулярное разложение
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 2 / 34
3. О чем этот курс?
На типичных примерах продемонстрировать жизненный цикл программы,
разработанной на основе функциональности параллельных математических
библиотек PETSc, SLEPc
Указать особенности, не вошедшие либо слабо освещенные в официальной
документации
Целевая платформа – IBM BlueGene/P
Формат занятий: лекция + демонстрация работы с программами на
массивно-параллельной платформе
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 3 / 34
4. План курса
1 Математическая библиотека PETSc
Обзор функциональности PETSc
Установка
2 Матрично-векторные операции в PETSc
3 Case study: Решение систем линейных уравнений
4 Отладка и профилирование параллельных программ
5 Решение обыкновенных дифференциальных уравнений
Case study: решение ОДУ
Case study: эффективное управление памятью
6 Решение нелинейных уравнений
Case study: решение уравнения Брату
7 Пакет SLEPc: решение задач на собственные значения
Case study: решение обобщенной задачи на собственные значения
Case study: частичное сингулярное разложение
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 4 / 34
5. Общие сведения о пакете PETSc
PETSc [4]– пакет для параллельного решения задач линейной алгебры,
дифференциальных уравнений, нелинейных уравнений.
Документация:
Официальный manual
http://www.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-current/docs/manua
Tutorials
http://www.mcs.anl.gov/petsc/petsc-as/documentation/tutorials/index.html
(обратите внимание на слайды 2008 и 2009 годов.)
Онлайн-документация по функциональности с примерами про-
грамм http://www.mcs.anl.gov/petsc/petsc-as/documentation/index.html
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 5 / 34
6. Структура пакета PETSc
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 6 / 34
7. Подробнее о компонентах PETSc
Таблица:
Модуль Назначение
Mat Структуры данных различных типов матриц, матрично-
векторные операции
Vec Структуры данных различных типов вектора, векторные
операции
DM Компонента управления данными, поддерживает рас-
пределенные структуры данных, обобщенные индексы и
механизмы соответствия локальной и глобальной нуме-
рации данных
KSP Итерационный решатель СЛАУ
PC Переобусловливатель СЛАУ
TS Решатель ОДУ
SNES Решатель нелинейного уравнения
LIBPETSC Общие компоненты PETSc, организующие ввод-вывод
данных, профилирование приложений
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 7 / 34
8. Прикладные пакеты, разработанные на основе PETSc
Пакет Toolkit for Advanced Optimization (TAO)
Scalable Library for Eigenvalue Problems (SLEPC)
Prometheus - scalable unstructured finite element solver
freeCFD - general purpose CFD solver
OpenFVM - finite volume based CFD solver
OOFEM - object oriented finite element library
libMesh - adaptive finite element library
DEAL.II - sophisticated C++ based finite element simulation package
Пакеты доступны по
ссылкеhttp://www.mcs.anl.gov/petsc/petsc-as/miscellaneous/external.html
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 8 / 34
9. Установка PETSc
Версии PETSc доступны по ссылке
http://www.mcs.anl.gov/petsc/petsc-as/download/index.html, последняя
версия
http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.0.0-p8.tar.gz.
На linux-like платформах PETSc входит в дистрибутивы, пример установки для
Debian:
>sudo apt-get install libpetsc2.3.3 libpetsc2.3.3-dbg
petsc2.3.3-doc
После скачивания необходимо найти и модифицировать конфигурационный файл,
примеры файлов в папке $PETSC_DIR/config.
Установка:
>export PETSC_DIR=./petsc-2.3.3;
>export PETSC_ARCH=production;
>export BOPT=O_++;
>$PETSC_DIR/config/bluegenep.py
>$PETSC_DIR/make all tests -j 2
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 9 / 34
10. Простейшая программа на PETSc
>cat hello.c
#include "petsc.h"
int main( int argc, char *argv[] ) {
int rank;
PetscInitialize( &argc, &argv, 0, 0 );
MPI_Comm_rank( PETSC_COMM_WORLD, &rank );
PetscPrintf("Hello World from rank %dn", rank );
PetscSynchronizedFlush( PETSC_COMM_WORLD );
PetscFinalize();
return 0;
}
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 10 / 34
11. Простейшая программа на PETSc-II
Компиляция и запуск с помощью Makefile
>cat Makefile
SHELL = /bin/bash
EXAMPLE = hello
include $(PETSC_DIR)/bmake/common/base
EXECS = hello
hello: hello.o chkopts
$(CLINKER) -o hello hello.o $(PETSC_LIB)
${RM} -r hello.o
>make hello
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 11 / 34
12. Дополнительные возможности
Интерфейсы к функциональности PETSc доступны из C/C++, Fortran, Python
Средства экспорта-импорта данных c Matlab, конвертеры матриц в форматы
MatrixMarket, Harwell-Boeing
Средства визуализации данных (вывод портретов матриц, построение графиков
и гистограм a la упрощенный gnuplot)
Механизм создания собственного метода
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 12 / 34
13. План курса
1 Математическая библиотека PETSc
Обзор функциональности PETSc
Установка
2 Матрично-векторные операции в PETSc
3 Case study: Решение систем линейных уравнений
4 Отладка и профилирование параллельных программ
5 Решение обыкновенных дифференциальных уравнений
Case study: решение ОДУ
Case study: эффективное управление памятью
6 Решение нелинейных уравнений
Case study: решение уравнения Брату
7 Пакет SLEPc: решение задач на собственные значения
Case study: решение обобщенной задачи на собственные значения
Case study: частичное сингулярное разложение
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 13 / 34
14. Обзор функциональности
Операции над матрицами и векторами с помощью функциональности компонент
Mat и Vec–основа программ PETSc. Типы поддерживаемых матриц
(последовательных и параллельных):
MATSEQAIJ/MATMPIAIJ–разреженная матрица общего вида
MATSEQBAIJ/MATMPIBAIJ–разреженная матрица блочной структуры
MATSEQDENSE/MATMPIDENSE–плотная матрица
Матрица и вектор в PETSc определяются интерфейсом Основные функции:
Mat*Create(), Mat*Destroy(), MatSetFromOptions()–создание, удаление,
настройка типа матрицы
(MatSetValues(), MatInsertValues(), MatAssemblyBegin(),
MatAssemblyEnd())–добавление/модификация значений матриц
MatMultAdd(), MatTranspose(), . . . –матрично-векторные операции разных
типов
VecLoad(), MatLoad(), MatView(), VecView()–ввод-вывод матрицы и
вектора на диск
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 14 / 34
15. Пример: умножение матрицы на вектор y = Ax
MatCreate(PETSC_COMM_WORLD, A);CHKERRQ(ierr);
VecCreate(PETSC_COMM_WORLD, x);CHKERRQ(ierr);
VecCreate(PETSC_COMM_WORLD, y);CHKERRQ(ierr);
...
ierr = MatMult(A, x, y);CHKERRQ(ierr);
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 15 / 34
16. План курса
1 Математическая библиотека PETSc
Обзор функциональности PETSc
Установка
2 Матрично-векторные операции в PETSc
3 Case study: Решение систем линейных уравнений
4 Отладка и профилирование параллельных программ
5 Решение обыкновенных дифференциальных уравнений
Case study: решение ОДУ
Case study: эффективное управление памятью
6 Решение нелинейных уравнений
Case study: решение уравнения Брату
7 Пакет SLEPc: решение задач на собственные значения
Case study: решение обобщенной задачи на собственные значения
Case study: частичное сингулярное разложение
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 16 / 34
17. Решение СЛАУ
Решение СЛАУ является вычислительным ядром широкого класса научных и
инженерных алгоритмов.
Классическая постановка задачи Ax = b, A ∈ R m,n ; x ∈ R n,1 , b ∈ R m,1 .
В PETSc доступен следующий набор алгоритмов решения СЛАУ:
http://www.mcs.anl.gov/petsc/petsc-as/documentation/linearsolvertable.ht
Параметры командной строки позволяют выбирать тип итерационного
решателя (-ksp_type <тип>) и предобусловливателя (-pc_type <тип>), а
также модифицировать их параметры
Демонстрация примера. Пример–решение системы уравнений с трехдиагональной
матрицей.
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 17 / 34
18. План курса
1 Математическая библиотека PETSc
Обзор функциональности PETSc
Установка
2 Матрично-векторные операции в PETSc
3 Case study: Решение систем линейных уравнений
4 Отладка и профилирование параллельных программ
5 Решение обыкновенных дифференциальных уравнений
Case study: решение ОДУ
Case study: эффективное управление памятью
6 Решение нелинейных уравнений
Case study: решение уравнения Брату
7 Пакет SLEPc: решение задач на собственные значения
Case study: решение обобщенной задачи на собственные значения
Case study: частичное сингулярное разложение
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 18 / 34
19. Отладка программ
В PETSc встроены мощные средства отладки программ.
Практически все функции PETSc поддерживают синтаксис ierr =
Function(...);CHKERRQ(ierr);
В случае ошибки выполнения выводится стек вызовов функций и типичные
причины
Возможность подключить отладчик к отдельному процессу/процессам
(vargrind)
Использовать параметры командной строки -start_in_debugger,
-on_error_attach_debugger
Демонстрация примера.
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 19 / 34
20. Профилирование программы
Параметр командной строки -log_summary используется для получения
детальной информации о производительности
Для разбивки информации для различных регионов программы использовать
функции PreLoadBegin(), PreLoadStage(), PreLoadStage(),. . . ,
PreLoadEnd()
Функциональность для отдельных событий PetscLog()...
Демонстрация примера.
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 20 / 34
21. План курса
1 Математическая библиотека PETSc
Обзор функциональности PETSc
Установка
2 Матрично-векторные операции в PETSc
3 Case study: Решение систем линейных уравнений
4 Отладка и профилирование параллельных программ
5 Решение обыкновенных дифференциальных уравнений
Case study: решение ОДУ
Case study: эффективное управление памятью
6 Решение нелинейных уравнений
Case study: решение уравнения Брату
7 Пакет SLEPc: решение задач на собственные значения
Case study: решение обобщенной задачи на собственные значения
Case study: частичное сингулярное разложение
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 21 / 34
22. Постановка задачи
Модуль TS предоставляет функциональность для решения дифференциального
уравнения
du
= F (u, t)
dt
где функция F может быть общего вида, а также двух специальных видов
du
= Au,
dt
du
= A(t)u.
dt
Функциональность TS:
TSCreate(), TSDestroy(), TSSetFromOptions()–создать/уничтожить объект
TS
TSSetProblemType(), TSSetMatrices()–установить тип решаемой проблемы,
установить матрицы ОДУ
TSSetUp(), TSSetInitialTimeStep(), TSSetDuration(),
TSStep()–установка параметров решателя и запуск
TSGetTimeStep(), TSSetTimeStep()–функции для реализации псевдо-шаговых
методов
Параметры командной строки:-ts_max_steps, -ts_max_time,
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 22 / 34
23. Пример кода программы
int main(int argc, char **argv) {
PetscInt m, time_steps_max;
PetscScalar time_total_max, steps, ftime;
Mat A; Vec u; TS ts;
PetscInitialize(argc, argv, 0, 0);
ierr = MatCreate(PETSC_COMM_WORLD,&A);CHKERRQ(ierr);
ierr = MatSetSizes(A,PETSC_DECIDE,PETSC_DECIDE,m,m);CHKERRQ(ierr); MatSetF
# инициализировать значения матрицы
ierr = SetupMatrix(A);CHKERRQ(ierr);
ierr = VecCreate(PETSC_COMM_WORLD, &u);
ierr = VecSetSize(u,PETSC_DECIDE, m); VecSetFromOptions(u);
ierr = TSCreate(PETSC_COMM_SELF,&ts);CHKERRQ(ierr);
# тип задачи u_t = A u с постоянной матрицей
ierr = TSSetProblemType(ts,TS_LINEAR);CHKERRQ(ierr);
ierr = TSSetMatrices(ts,A,PETSC_NULL,PETSC_NULL,
PETSC_NULL,DIFFERENT_NONZERO_PATTERN,&appctx);CHKERRQ(ierr);
ierr = TSSetInitialTimeStep(ts,0.0,dt);CHKERRQ(ierr);
ierr = TSSetSolution(ts,u);CHKERRQ(ierr);
ierr = TSSetDuration(ts,time_steps_max,time_total_max);CHKERRQ(ierr);
ierr = TSSetFromOptions(ts);
ierr = TSStep(ts,&steps,&ftime);CHKERRQ(ierr);
MatDestroy(A);
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 23 / 34
24. Проблемы при использовании структур памяти
Операции, связанные с управлением динамической памятью в PETSC,
приводят к параличу производительности
Пример: сложение разреженных матриц A + B. Необходимо избегать операций
реаллокации.
Идея: в один проход посчитать сколько нужно в каждой строчке элементов и
динамически создать нужную структуру матрицы
Функции: Mat***SetPreallocation(), Mat***SetPreallocationCSR()
Демонстрация примера.
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 24 / 34
25. План курса
1 Математическая библиотека PETSc
Обзор функциональности PETSc
Установка
2 Матрично-векторные операции в PETSc
3 Case study: Решение систем линейных уравнений
4 Отладка и профилирование параллельных программ
5 Решение обыкновенных дифференциальных уравнений
Case study: решение ОДУ
Case study: эффективное управление памятью
6 Решение нелинейных уравнений
Case study: решение уравнения Брату
7 Пакет SLEPc: решение задач на собственные значения
Case study: решение обобщенной задачи на собственные значения
Case study: частичное сингулярное разложение
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 25 / 34
26. Нелинейные уравнения в PETSc
Библиотека PETSc содержит модуль SNES решателей нелинейных уравнений вида
F (u) = 0.
В общем виде решение задачи осуществляется в виде итераций
F (u (k) )
u (k+1) = u (k) + ,
F (u (k) )
где F (u)–якобиан функции. Вычисление якобиана является вычислительно
сложной задачей, для решения которой могут использоваться несколько методов.
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 26 / 34
27. Постановка задачи
Рассмотрим некоторую область D = D ∪ Γ, в которой определено уравнение
∆u − λe u = 0,
u |Γ = 0.
Численное решение задачи осуществляется переходом к схеме
n+1 n
Auij = f (uij ),
A = [D+x + D−x + D+y + D−y ],
n
f (uij ) = e uij .
n
Демонстрация примера.
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 27 / 34
28. План курса
1 Математическая библиотека PETSc
Обзор функциональности PETSc
Установка
2 Матрично-векторные операции в PETSc
3 Case study: Решение систем линейных уравнений
4 Отладка и профилирование параллельных программ
5 Решение обыкновенных дифференциальных уравнений
Case study: решение ОДУ
Case study: эффективное управление памятью
6 Решение нелинейных уравнений
Case study: решение уравнения Брату
7 Пакет SLEPc: решение задач на собственные значения
Case study: решение обобщенной задачи на собственные значения
Case study: частичное сингулярное разложение
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 28 / 34
29. Общие сведения о пакете
SLEPC [6] является высокоуровневой параллельной математической
библиотекой решения задач на собственные значения, спектральных
преобразований, сингулярного разложения.
SLEPC построен на использовании функциональности PETSc, соответственно
внутри программы имеется возможность работать с объектами и функциями
PETSc.
Документация доступна по ссылке
http://www.grycap.upv.es/slepc/documentation/manual.htm и включает
manual, описание функций и примеров работы с библиотекой
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 29 / 34
31. Постановка задачи
Рассматривается проблема вычисления λ, x в задаче
Ax = λBx
Пример кода для задачи Ax = λx, оператор A загружается из файла:
...
ierr = PetscViewerBinaryOpen(PETSC_COMM_WORLD,filename,FILE_MODE_READ,&viewe
ierr = MatLoad(viewer,MATAIJ,&A);CHKERRQ(ierr);
ierr = PetscViewerDestroy(viewer);CHKERRQ(ierr);
...
ierr = EPSCreate(PETSC_COMM_WORLD,&eps);CHKERRQ(ierr);
ierr = EPSSetOperators(eps,A,PETSC_NULL);CHKERRQ(ierr);
ierr = EPSSetFromOptions(eps);CHKERRQ(ierr);
ierr = EPSSolve(eps);CHKERRQ(ierr);
ierr = EPSGetIterationNumber(eps, &its);CHKERRQ(ierr);
ierr = PetscPrintf(PETSC_COMM_WORLD," Number of iterations of the method: %d
ierr = EPSGetType(eps,&type);CHKERRQ(ierr);
ierr = PetscPrintf(PETSC_COMM_WORLD," Solution method: %snn",type);CHKERRQ
ierr = EPSGetDimensions(eps,&nev,PETSC_NULL);CHKERRQ(ierr);
ierr = PetscPrintf(PETSC_COMM_WORLD," Number of requested eigenvalues: %dn"
ierr = EPSDestroy(eps);CHKERRQ(ierr);
ierr = MatDestroy(A);CHKERRQ(ierr);
ierr = SlepcFinalize();CHKERRQ(ierr);
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 31 / 34
32. Постановка задачи
Алгоритм сингулярного разложения оператора имеет важные приложения в ряде
задач.
Проблема заключается в факторизации матрицы X в виде матриц особого вида
X = UΣV T .
U, V – ортогональные матрицы. Σ – диагональная матрица с сингулярными
значениями в порядке убывания.
Для ряда практических задач требуется вычислять усеченное сингулярное
разложение
T
X ≈ U1k Σkk V1k .
Демонстрация примера.
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 32 / 34
33. Заключение
Презентация и примеры, продемонстрированные в курсе, доступны по ссылке
http://angel.cmc.msu.ru/~basrav.
Вопросы, замечания, комментарии, предложения? Пишите
basrav@angel.cmc.msu.ru.
Спасибо за внимание.
В. Воронов (ВМК МГУ) Разработка на основе параллельных библиотек
Суперкомпьютерная Школа 33 / 34
34. Литература
[1] Н. С. Бахвалов, Н. П. Жидков, and Г. М. Кобельков.
Численные методы.
М: Наука, 1987.
[2] М. Ю. Баландин and Э. П. Чепурина.
Методы решения СЛАУ большой размерности.
Новосибирск: Изд-во НГТУ, 2000.
[3] Y. Saad.
Iterative Methods for Sparse Linear Systems.
Society for Industrial Mathematics, 2003.
[4] S. Balay, K. Buschelman, W. D. Gropp, D. Kaushik, M. G. Knepley, L. C. McInnes,
B. F. Smith, and H. Zhang.
PETSc Web page.
See http://www. mcs. anl. gov/petsc.
[5] L. Oliker, A. Canning, J. Carter, C. Iancu, M. Lijewski, S. Kamil, J. Shalf, H. Shan,
E. Strohmaier, S. Ethier, et al.
Scientific Application Performance on Candidate PetaScale Platforms.
2007.
[6] V. Hernandez, J.E. Roman, and V. Vidal.
SLEPc: A scalable and flexible toolkit for the solution of eigenvalue problems.
ACM Transactions on Mathematicalоснове параллельных библиотек
В. Воронов (ВМК МГУ) Разработка на Software (TOMS), 31(3):351–362, 2005.
Суперкомпьютерная Школа 34 / 34