не хватает одного параметра: static void Main(string[] args) |
Опубликован: 23.04.2013 | Уровень: для всех | Доступ: платный
Лекция 11:
Курсовые проекты и лабораторные работы к курсу
< Лекция 10 || Лекция 11
Курсовые проекты
Общая часть
Курсовой проект предполагает создание проекта на С#, отвечающего требованиям стиля:
- создание DLL;
- визуальный интерфейс, выделенный в отдельный поток, позволяющий наблюдать и управлять процессом бизнес-логики;
- визуализация результатов работы;
- другие правила хорошего стиля.
Содержательно проект предполагает создание как последовательной, так и параллельной версии решаемой задачи. Теоретическое и практическое сравнение эффективности работы разных версий в зависимости от числа используемых процессоров (ядер). В результате проведенного анализа должны быть сделаны обоснованные выводы о целесообразности распараллеливания данной задачи и какой эффект может дать распараллеливание.
Варианты проектов:
- Игра "Жизнь";
- Множество Мандельброта и его аналоги;
- Обедающие философы;
- Алгоритмы Data Mining
- кластеризации K-Means (k- средних);
- кластеризации, основанный на мере близости;
- Apriori;
- C4.5;
- Cart.
Лабораторные работы
Общая часть
Лабораторная работа включает:
- создание C# проекта с классами;
- проведение численных экспериментов;
- отчет, включающий анализ результатов экспериментов, оценку эффективности, ускорения, накладных расходов на организацию параллелизма;
- выводы о целесообразности (нецелесообразности) распараллеливания.
- Последовательный и параллельные алгоритмы (пирамидальный, шаговый, сегментный) решения задач линейной сложности:
- Суммы и Произведения;
- Максимумы и минимумы;
- Последовательный и параллельный алгоритм поиска по образцу
- Линейный поиск;
- Бинарный поиск.
- Последовательный и параллельные алгоритмы сортировки линейной сложности для случая фиксированного числа сортируемых элементов:
- Задача "Красное и черное" (n = 2);
- Задача Дейкстры о цветах Голландского (Российского) флага (n = 3);
- Задача о сортирующей шляпе Хогвартса (n = 4).
- Последовательный и параллельные алгоритмы сортировки сложности O(n2)
- Пузырьковая сортировка;
- Сортировка "чет –нечет"
- Последовательный и параллельные алгоритмы сортировки сложности O(n * log(n))
- Быстрая сортировка Хоара;
- Сортировка Шелла;
- Сортировка слиянием.
- Последовательный и параллельные алгоритмы суммирования сходящихся рядов
- Ex;
- Sin(x); Tg(x);
- ArcSin(x); ArcTg(x)
- Log(x).
- Последовательный и параллельные алгоритмы вычисления определенного интеграла
- Для гладких подынтегральных функций;
- Для осциллирующих функций.
- Последовательный и параллельные алгоритмы линейной алгебры
- Умножение матриц;
- Решение систем уравнений и обращение матриц;
- Операции над слабо заполненными матрицами.
- Многопоточные приложения. Работа с классом Thread
- На примерах реализации параллельных алгоритмов.
- Гонка данных и блокировка
- Задачи типа "банковский счет".
- Клинч
- Задачи типа "Кольцо и серьги"
- Пул потоков
- На примерах реализации параллельных алгоритмов.
- Мягкие методы блокировки
- Задачи типа "Параллельная разработка программного проекта"
- Мониторы и семафоры
- Задачи типа "Взаимодействующие процессы";
- Обедающие философы.
- Библиотека параллельных задач. Работа с классами Task и Parallel
- На примерах реализации параллельных алгоритмов;
- Задача "Золушки".
- Прерывания и исключения в параллельных циклах
- Задачи типа "Числа – градины";
- Задачи типа "Превышение температурного режима"
- Управляющий и управляемый процессы
- Управление, основанное на ссылках;
- Управление, основанное на событиях.
< Лекция 10 || Лекция 11