Опубликован: 23.04.2013 | Доступ: свободный | Студентов: 856 / 185 | Длительность: 12:54:00
Лекция 11:

Курсовые проекты и лабораторные работы к курсу

< Лекция 10 || Лекция 11

Курсовые проекты

Общая часть

Курсовой проект предполагает создание проекта на С#, отвечающего требованиям стиля:

  • создание DLL;
  • визуальный интерфейс, выделенный в отдельный поток, позволяющий наблюдать и управлять процессом бизнес-логики;
  • визуализация результатов работы;
  • другие правила хорошего стиля.

Содержательно проект предполагает создание как последовательной, так и параллельной версии решаемой задачи. Теоретическое и практическое сравнение эффективности работы разных версий в зависимости от числа используемых процессоров (ядер). В результате проведенного анализа должны быть сделаны обоснованные выводы о целесообразности распараллеливания данной задачи и какой эффект может дать распараллеливание.

Варианты проектов:

  1. Игра "Жизнь";
  2. Множество Мандельброта и его аналоги;
  3. Обедающие философы;
  4. Алгоритмы Data Mining
    • кластеризации K-Means (k- средних);
    • кластеризации, основанный на мере близости;
    • Apriori;
    • C4.5;
    • Cart.

Лабораторные работы

Общая часть

Лабораторная работа включает:

  • создание C# проекта с классами;
  • проведение численных экспериментов;
  • отчет, включающий анализ результатов экспериментов, оценку эффективности, ускорения, накладных расходов на организацию параллелизма;
  • выводы о целесообразности (нецелесообразности) распараллеливания.
  1. Последовательный и параллельные алгоритмы (пирамидальный, шаговый, сегментный) решения задач линейной сложности:
    • Суммы и Произведения;
    • Максимумы и минимумы;
  2. Последовательный и параллельный алгоритм поиска по образцу
    • Линейный поиск;
    • Бинарный поиск.
  3. Последовательный и параллельные алгоритмы сортировки линейной сложности для случая фиксированного числа сортируемых элементов:
    • Задача "Красное и черное" (n = 2);
    • Задача Дейкстры о цветах Голландского (Российского) флага (n = 3);
    • Задача о сортирующей шляпе Хогвартса (n = 4).
  4. Последовательный и параллельные алгоритмы сортировки сложности O(n2)
    • Пузырьковая сортировка;
    • Сортировка "чет –нечет"
  5. Последовательный и параллельные алгоритмы сортировки сложности O(n * log(n))
    • Быстрая сортировка Хоара;
    • Сортировка Шелла;
    • Сортировка слиянием.
  6. Последовательный и параллельные алгоритмы суммирования сходящихся рядов
    • Ex;
    • Sin(x); Tg(x);
    • ArcSin(x); ArcTg(x)
    • Log(x).
  7. Последовательный и параллельные алгоритмы вычисления определенного интеграла
    • Для гладких подынтегральных функций;
    • Для осциллирующих функций.
  8. Последовательный и параллельные алгоритмы линейной алгебры
    • Умножение матриц;
    • Решение систем уравнений и обращение матриц;
    • Операции над слабо заполненными матрицами.
  9. Многопоточные приложения. Работа с классом Thread
    • На примерах реализации параллельных алгоритмов.
  10. Гонка данных и блокировка
    • Задачи типа "банковский счет".
  11. Клинч
    • Задачи типа "Кольцо и серьги"
  12. Пул потоков
    • На примерах реализации параллельных алгоритмов.
  13. Мягкие методы блокировки
    • Задачи типа "Параллельная разработка программного проекта"
  14. Мониторы и семафоры
    • Задачи типа "Взаимодействующие процессы";
    • Обедающие философы.
  15. Библиотека параллельных задач. Работа с классами Task и Parallel
    • На примерах реализации параллельных алгоритмов;
    • Задача "Золушки".
  16. Прерывания и исключения в параллельных циклах
    • Задачи типа "Числа – градины";
    • Задачи типа "Превышение температурного режима"
  17. Управляющий и управляемый процессы
    • Управление, основанное на ссылках;
    • Управление, основанное на событиях.
< Лекция 10 || Лекция 11
Алексей Рыжков
Алексей Рыжков

не хватает одного параметра:

static void Main(string[] args)
        {
            x = new int[n];
            Print(Sample1,"original");
            Print(Sample1P, "paralel");
            Console.Read();
        }

Никита Белов
Никита Белов

Выставил оценки курса и заданий, начал писать замечания. После нажатия кнопки "Enter" окно отзыва пропало, открыть его снова не могу. Кнопка "Удалить комментарий" в разделе "Мнения" не работает. Как мне отредактировать недописанный отзыв?