Skip to content
This repository has been archived by the owner on May 4, 2021. It is now read-only.

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

Notifications You must be signed in to change notification settings

steklopod/Parallel-Programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Параллельные вычисления с помощью Scala

В текущее время объем данных непрерывно растет, при этом необходимо решать более сложные вычислительные задачи. Что нам делать с решением проблем, которые не могут быть решены в разумные сроки?

alt text

Параллельные вычисления - это тип вычислений, в котором различные вычисления могут выполняться одновременно.

Основной принцип: проблему можно разделить на подзадачи, каждая из которых может быть решена одновременно.


Многие из нас не видят разницу между параллельным (parallel) и действующий одновременно (concurrent) программированием. Давайте сделаем шаг назад и поймем концепцию и рассуждения о параллельных вычислениях.

Параллельное (parallel) вычисление:

  • Оптимальное использование параллельного оборудования для быстрого выполнения вычислений;

  • Разделение на подзадачи;

  • В основном забота о: скорость;

  • В основном используется для: Алгоритмических задач, числовых вычислений, обработки больших данных.

Конкурентное (concurrent) программирование:

  • Может или не может предлагать несколько запусков запуска одновременно;

  • В основном забота о: удобстве, лучшей отзывчивости, ремонтопригодности.

Существуют различные уровни параллелизма, например: разрядный уровень, уровень команд и уровень задач. Для целей этой статьи мы сосредоточимся на параллелизме уровня задач.

Параллельное программирование намного сложнее, чем последовательное программирование. Это даже делает жизнь разработчиков сложнее. Тем не менее, скорость, с которой могут быть достигнуты результаты, является большим плюсом на стороне параллельного программирования.

Операционная система и JVM являются основными средами, которые делают возможными параллелизм. Как известно, два разных процесса не разделяют память, которая служит в качестве блокатора для параллельной работы задачи. Но каждый процесс содержит несколько независимых параллельных единиц, называемых потоками. Потоки имеют одинаковое адресное пространство.

=>далее: Эффект задержки (Latency as an effect)

Если этот проект окажется полезным тебе - нажми на кнопочку в правом верхнем углу.

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages