Презентация за дипломна работа

Презентация за дипломна работа

Обзор и сравнителен анализ на методите за конкурентно и паралелно програмиране

E1873b75f09c042ef07fe136ba2446f6?s=128

Georgy Angelov

February 13, 2019
Tweet

Transcript

  1. ОБЗОР И СРАВНИТЕЛЕН АНАЛИЗ НА МОДЕЛИТЕ ЗА КОНКУРЕНТНО И ПАРАЛЕЛНО

    ПРОГРАМИРАНЕ Дипломант: Георги Сергеев Ангелов РСМТ Научен ръководител: доц. д-р Калин Георгиев Николов
  2. ЗАЩО ИЗБРАХ ТАЗИ ТЕМА?

  3. None
  4. None
  5. None
  6. None
  7. None
  8. None
  9. None
  10. None
  11. КОНКУРЕНТНОТО И ПАРАЛЕЛНОТО ПРОГРАМИРАНЕ...

  12. КОНКУРЕНТНОТО И ПАРАЛЕЛНОТО ПРОГРАМИРАНЕ... • ...става все по-приложимо;

  13. КОНКУРЕНТНОТО И ПАРАЛЕЛНОТО ПРОГРАМИРАНЕ... • ...става все по-приложимо; • ...става

    все по-наложително;
  14. КОНКУРЕНТНОТО И ПАРАЛЕЛНОТО ПРОГРАМИРАНЕ... • ...става все по-приложимо; • ...става

    все по-наложително; • ...е трудно като цяло;
  15. КОНКУРЕНТНОТО И ПАРАЛЕЛНОТО ПРОГРАМИРАНЕ... • ...става все по-приложимо; • ...става

    все по-наложително; • ...е трудно като цяло; • ...може да се постигне, използвайки много различни модели.
  16. ЦЕЛИ

  17. ЦЕЛИ

  18. ЦЕЛИ • Да запозная разработчиците на софтуерни системи с по-

    известните модели за конкурентно и паралелно програмиране
  19. ЦЕЛИ • Да запозная разработчиците на софтуерни системи с по-

    известните модели за конкурентно и паралелно програмиране • Да предоставя практически-ориентиран сравнителен анализ
  20. ЦЕЛИ • Да запозная разработчиците на софтуерни системи с по-

    известните модели за конкурентно и паралелно програмиране • Да предоставя практически-ориентиран сравнителен анализ • Да създам и разгледам реализации на представителни задачи, използващи тези модели
  21. ЦЕЛИ • Да запозная разработчиците на софтуерни системи с по-

    известните модели за конкурентно и паралелно програмиране • Да предоставя практически-ориентиран сравнителен анализ • Да създам и разгледам реализации на представителни задачи, използващи тези модели • Да дефинирам метод за избор на такъв модел
  22. ПРАКТИЧЕСКИ ФОКУС

  23. ПРАКТИЧЕСКИ ФОКУС • Фокус върху популярни и доказано приложими модели

  24. ПРАКТИЧЕСКИ ФОКУС • Фокус върху популярни и доказано приложими модели

    • Обзор, който не предполага предварително знание за моделите
  25. ПРАКТИЧЕСКИ ФОКУС • Фокус върху популярни и доказано приложими модели

    • Обзор, който не предполага предварително знание за моделите • Разглежда моделите както на високо (теоретично) ниво, така и конкретни техни реализации
  26. ПРАКТИЧЕСКИ ФОКУС • Фокус върху популярни и доказано приложими модели

    • Обзор, който не предполага предварително знание за моделите • Разглежда моделите както на високо (теоретично) ниво, така и конкретни техни реализации • Анализ в контекста на типични проекти от софтуерната индустрия
  27. ПРАКТИЧЕСКИ ФОКУС • Фокус върху популярни и доказано приложими модели

    • Обзор, който не предполага предварително знание за моделите • Разглежда моделите както на високо (теоретично) ниво, така и конкретни техни реализации • Анализ в контекста на типични проекти от софтуерната индустрия • Критерии за сравнение, които са важни в практиката
  28. СЪЩЕСТВУВАЩИ РАЗРАБОТКИ

  29. СЪЩЕСТВУВАЩИ РАЗРАБОТКИ • Много книги и разработки, разглеждащи конкретен модел

  30. СЪЩЕСТВУВАЩИ РАЗРАБОТКИ • Много книги и разработки, разглеждащи конкретен модел

    • Малко от тях разглеждат няколко модела
  31. СЪЩЕСТВУВАЩИ РАЗРАБОТКИ • Много книги и разработки, разглеждащи конкретен модел

    • Малко от тях разглеждат няколко модела • Още по-малко съпоставят и сравняват няколко модела
  32. СЪЩЕСТВУВАЩИ РАЗРАБОТКИ • Много книги и разработки, разглеждащи конкретен модел

    • Малко от тях разглеждат няколко модела • Още по-малко съпоставят и сравняват няколко модела • Повечето от тях се фокусират върху определени аспекти на моделите
  33. СЪЩЕСТВУВАЩИ РАЗРАБОТКИ • Много книги и разработки, разглеждащи конкретен модел

    • Малко от тях разглеждат няколко модела • Още по-малко съпоставят и сравняват няколко модела • Повечето от тях се фокусират върху определени аспекти на моделите • Практически липсват разработки, предоставящи метод за избор
  34. ПОДХОД

  35. ПОДХОД

  36. ПОДХОД • Избор на модели за разглеждане

  37. ПОДХОД • Избор на модели за разглеждане • Съставяне на

    въведение във всеки от тях
  38. ПОДХОД • Избор на модели за разглеждане • Съставяне на

    въведение във всеки от тях • Избор на представителни задачи
  39. ПОДХОД • Избор на модели за разглеждане • Съставяне на

    въведение във всеки от тях • Избор на представителни задачи • Разглеждане на практически реализации за всеки модел
  40. ПОДХОД • Избор на модели за разглеждане • Съставяне на

    въведение във всеки от тях • Избор на представителни задачи • Разглеждане на практически реализации за всеки модел • Анализ на базата на реализациите и допълнителни източници
  41. ПОДХОД • Избор на модели за разглеждане • Съставяне на

    въведение във всеки от тях • Избор на представителни задачи • Разглеждане на практически реализации за всеки модел • Анализ на базата на реализациите и допълнителни източници • Определяне на метод за избор на модел
  42. ЗА КОНКУРЕНТНО И ПАРАЛЕЛНО ПРОГРАМИРАНЕ МОДЕЛИ

  43. ЗА КОНКУРЕНТНО И ПАРАЛЕЛНО ПРОГРАМИРАНЕ МОДЕЛИ • Нишки и ключалки

  44. ЗА КОНКУРЕНТНО И ПАРАЛЕЛНО ПРОГРАМИРАНЕ МОДЕЛИ • Нишки и ключалки

    • Софтуерна Транзакционна Памет
  45. ЗА КОНКУРЕНТНО И ПАРАЛЕЛНО ПРОГРАМИРАНЕ МОДЕЛИ • Нишки и ключалки

    • Софтуерна Транзакционна Памет • Функционален паралелизъм
  46. ЗА КОНКУРЕНТНО И ПАРАЛЕЛНО ПРОГРАМИРАНЕ МОДЕЛИ • Нишки и ключалки

    • Софтуерна Транзакционна Памет • Функционален паралелизъм • Асинхронно програмиране
  47. ЗА КОНКУРЕНТНО И ПАРАЛЕЛНО ПРОГРАМИРАНЕ МОДЕЛИ • Нишки и ключалки

    • Софтуерна Транзакционна Памет • Функционален паралелизъм • Асинхронно програмиране • Актьорски модел
  48. ЗА КОНКУРЕНТНО И ПАРАЛЕЛНО ПРОГРАМИРАНЕ МОДЕЛИ • Нишки и ключалки

    • Софтуерна Транзакционна Памет • Функционален паралелизъм • Асинхронно програмиране • Актьорски модел • Комуникиращи последователни процеси
  49. ЗА КОНКУРЕНТНО И ПАРАЛЕЛНО ПРОГРАМИРАНЕ МОДЕЛИ • Нишки и ключалки

    • Софтуерна Транзакционна Памет • Функционален паралелизъм • Асинхронно програмиране • Актьорски модел • Комуникиращи последователни процеси • Други специализирани модели
  50. ПРЕДСТАВИТЕЛНИ ЗАДАЧИ

  51. ЗА ПРЕДСТАВИТЕЛНИТЕ ЗАДАЧИ ЖЕЛАНИ ХАРАКТЕРИСТИКИ

  52. ЗА ПРЕДСТАВИТЕЛНИТЕ ЗАДАЧИ ЖЕЛАНИ ХАРАКТЕРИСТИКИ • Практическа насоченост - реализация,

    достатъчно близка до реален код
  53. ЗА ПРЕДСТАВИТЕЛНИТЕ ЗАДАЧИ ЖЕЛАНИ ХАРАКТЕРИСТИКИ • Практическа насоченост - реализация,

    достатъчно близка до реален код • Представителност за определен клас практически проблеми
  54. ЗА ПРЕДСТАВИТЕЛНИТЕ ЗАДАЧИ ЖЕЛАНИ ХАРАКТЕРИСТИКИ • Практическа насоченост - реализация,

    достатъчно близка до реален код • Представителност за определен клас практически проблеми • Позволяват кратка и стегната реализация
  55. БАЗА ОТ ДАННИ ОТ ТИП КЛЮЧ-СТОЙНОСТ

  56. БАЗА ОТ ДАННИ ОТ ТИП КЛЮЧ-СТОЙНОСТ • Включва атомарни операции

    върху повече от един ключ (например getAndUpdate и mergeAndSet)
  57. БАЗА ОТ ДАННИ ОТ ТИП КЛЮЧ-СТОЙНОСТ • Включва атомарни операции

    върху повече от един ключ (например getAndUpdate и mergeAndSet) • Представителна за сървърни приложения, обработващи заявки
  58. БАЗА ОТ ДАННИ ОТ ТИП КЛЮЧ-СТОЙНОСТ • Включва атомарни операции

    върху повече от един ключ (например getAndUpdate и mergeAndSet) • Представителна за сървърни приложения, обработващи заявки • Променящо се състояние
  59. БАЗА ОТ ДАННИ ОТ ТИП КЛЮЧ-СТОЙНОСТ • Включва атомарни операции

    върху повече от един ключ (например getAndUpdate и mergeAndSet) • Представителна за сървърни приложения, обработващи заявки • Променящо се състояние • Проблеми и решения, свързани с координация на достъп до общи структури от данни
  60. ОБРАБОТКА НА ГЕОГРАФСКИ ДАННИ ОТ OPENSTREETMAP

  61. ОБРАБОТКА НА ГЕОГРАФСКИ ДАННИ • Прочитане, филтриране и агрегация на

    данни за географски обекти ОТ OPENSTREETMAP
  62. ОБРАБОТКА НА ГЕОГРАФСКИ ДАННИ • Прочитане, филтриране и агрегация на

    данни за географски обекти • Големина - 41GiB за планетата, 19GiB за Европа и 86MiB за България ОТ OPENSTREETMAP
  63. ОБРАБОТКА НА ГЕОГРАФСКИ ДАННИ • Прочитане, филтриране и агрегация на

    данни за географски обекти • Големина - 41GiB за планетата, 19GiB за Европа и 86MiB за България • Поточна обработка ОТ OPENSTREETMAP
  64. ОБРАБОТКА НА ГЕОГРАФСКИ ДАННИ • Прочитане, филтриране и агрегация на

    данни за географски обекти • Големина - 41GiB за планетата, 19GiB за Европа и 86MiB за България • Поточна обработка • Представителна за проекти, обработващи големи масиви от данни ОТ OPENSTREETMAP
  65. СЪЗДАДЕНИ РЕАЛИЗАЦИИ НА ПРЕДСТАВИТЕЛНИТЕ ЗАДАЧИ

  66. СЪЗДАДЕНИ РЕАЛИЗАЦИИ • База от данни чрез нишки в Java

    НА ПРЕДСТАВИТЕЛНИТЕ ЗАДАЧИ
  67. СЪЗДАДЕНИ РЕАЛИЗАЦИИ • База от данни чрез нишки в Java

    • База от данни чрез Софтуерна транзакционна памет в Clojure НА ПРЕДСТАВИТЕЛНИТЕ ЗАДАЧИ
  68. СЪЗДАДЕНИ РЕАЛИЗАЦИИ • База от данни чрез нишки в Java

    • База от данни чрез Софтуерна транзакционна памет в Clojure • Обработка на географски данни чрез нишки в Java НА ПРЕДСТАВИТЕЛНИТЕ ЗАДАЧИ
  69. СЪЗДАДЕНИ РЕАЛИЗАЦИИ • База от данни чрез нишки в Java

    • База от данни чрез Софтуерна транзакционна памет в Clojure • Обработка на географски данни чрез нишки в Java • Обработка на географски данни чрез потоци в Java НА ПРЕДСТАВИТЕЛНИТЕ ЗАДАЧИ
  70. СЪЗДАДЕНИ РЕАЛИЗАЦИИ • База от данни чрез нишки в Java

    • База от данни чрез Софтуерна транзакционна памет в Clojure • Обработка на географски данни чрез нишки в Java • Обработка на географски данни чрез потоци в Java • Обработка на географски данни чрез Комуникиращи последователни процеси в Go НА ПРЕДСТАВИТЕЛНИТЕ ЗАДАЧИ
  71. АНАЛИЗ

  72. АНАЛИЗ ИЗБРАНИ ХАРАКТЕРИСТИКИ

  73. АНАЛИЗ • Устойчивост на проблеми (fault-tolerance) ИЗБРАНИ ХАРАКТЕРИСТИКИ

  74. АНАЛИЗ • Устойчивост на проблеми (fault-tolerance) • Безопасност от програмистки

    грешки (safety) ИЗБРАНИ ХАРАКТЕРИСТИКИ
  75. АНАЛИЗ • Устойчивост на проблеми (fault-tolerance) • Безопасност от програмистки

    грешки (safety) • Естественост за употреба ИЗБРАНИ ХАРАКТЕРИСТИКИ
  76. АНАЛИЗ • Устойчивост на проблеми (fault-tolerance) • Безопасност от програмистки

    грешки (safety) • Естественост за употреба • Производителност ИЗБРАНИ ХАРАКТЕРИСТИКИ
  77. АНАЛИЗ • Устойчивост на проблеми (fault-tolerance) • Безопасност от програмистки

    грешки (safety) • Естественост за употреба • Производителност • Ниво на абстракция ИЗБРАНИ ХАРАКТЕРИСТИКИ
  78. АНАЛИЗ • Устойчивост на проблеми (fault-tolerance) • Безопасност от програмистки

    грешки (safety) • Естественост за употреба • Производителност • Ниво на абстракция • Композируемост ИЗБРАНИ ХАРАКТЕРИСТИКИ
  79. АНАЛИЗ • Устойчивост на проблеми (fault-tolerance) • Безопасност от програмистки

    грешки (safety) • Естественост за употреба • Производителност • Ниво на абстракция • Композируемост • Леснота за поддръжка ИЗБРАНИ ХАРАКТЕРИСТИКИ
  80. АНАЛИЗ • Устойчивост на проблеми (fault-tolerance) • Безопасност от програмистки

    грешки (safety) • Естественост за употреба • Производителност • Ниво на абстракция • Композируемост • Леснота за поддръжка • Възможност за разпределена работа ИЗБРАНИ ХАРАКТЕРИСТИКИ
  81. АНАЛИЗ • Устойчивост на проблеми (fault-tolerance) • Безопасност от програмистки

    грешки (safety) • Естественост за употреба • Производителност • Ниво на абстракция • Композируемост • Леснота за поддръжка • Възможност за разпределена работа • Възможност за употреба заедно с други модели ИЗБРАНИ ХАРАКТЕРИСТИКИ
  82. РЕЗУЛТАТ

  83. МЕТОД ЗА ИЗБОР НА МОДЕЛ ЗА КОНКУРЕНТНО И ПАРАЛЕЛНО ПРОГРАМИРАНЕ

  84. МЕТОД ЗА ИЗБОР 1. Определяне на вида на системата НА

    МОДЕЛ ЗА КОНКУРЕНТНО И ПАРАЛЕЛНО ПРОГРАМИРАНЕ
  85. МЕТОД ЗА ИЗБОР 1. Определяне на вида на системата 2.

    Разделяне на подсистеми (при необходимост) НА МОДЕЛ ЗА КОНКУРЕНТНО И ПАРАЛЕЛНО ПРОГРАМИРАНЕ
  86. МЕТОД ЗА ИЗБОР 1. Определяне на вида на системата 2.

    Разделяне на подсистеми (при необходимост) 3. Определяне на подходящи модели за всяка подсистема, базирайки се на направения анализ НА МОДЕЛ ЗА КОНКУРЕНТНО И ПАРАЛЕЛНО ПРОГРАМИРАНЕ
  87. МЕТОД ЗА ИЗБОР 1. Определяне на вида на системата 2.

    Разделяне на подсистеми (при необходимост) 3. Определяне на подходящи модели за всяка подсистема, базирайки се на направения анализ 4. Избор на модел измежду подходящите за този вид система НА МОДЕЛ ЗА КОНКУРЕНТНО И ПАРАЛЕЛНО ПРОГРАМИРАНЕ
  88. ОБОБЩЕНИЕ

  89. КАТАЛОГ ЗА МОДЕЛИ ЗА КОНКУРЕНТНОСТ

  90. НАРЪЧНИК ЗА ИЗБОР

  91. БЛАГОДАРЯ ЗА ВНИМАНИЕТО!