2

Итак, я думал о параллелизме и параллелизме после (я готовлю короткий учебник по erlang) и как мы можем иметь что-то, что не является ни параллельным, ни параллельным (например, классический мир hello hello работает на одном ядре), что-то параллельное, но не параллельное (например, программа erlang с несколькими участниками, работающими на одном коде) и что-то параллельное и параллельное (например, предыдущая программа erlang, работающая на нескольких ядрах).Комбинации параллелизма/параллелизма

Однако я не уверен, что у нас может быть что-то значимое, что параллельно, но не параллельно; Думаю, мы могли бы рубить инструкции программы и запускать их параллельно, но это не принесло бы значимых результатов. Будет ли работать две программы, которые не взаимодействуют на двух ядрах, примером параллельной системы без параллелизма? Как-то я чувствую, что может быть лучший пример; есть идеи?

+2

http://joearms.github.io/2013/04/05/concurrent-and-parallel-programming.html – boring

ответ

6

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

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

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

Таким образом, в зависимости от определений может быть невозможно иметь параллелизм без параллелизма, поскольку (по этим определениям) параллелизм подразумевает параллелизм. Как только у вас появятся конкретные определения для параллелизма и параллелизма, вы можете выяснить, как выглядят примеры.

Если бы я объяснял это в учебнике Erlang, я бы, вероятно, избегал упоминания параллелизма и параллелизма полностью, просто потому, что он настолько запутан. Я бы сказал, что Erlang имеет процессы, которые работают независимо друг от друга, но которые могут общаться через передачу сообщений. Если аппаратное обеспечение поддерживает его или используется несколько узлов Erlang, эти процессы могут выполняться одновременно. В противном случае, Erlang планирует их до , появится, чтобы работать одновременно, насколько нам известно. Это охватывает широкие идеи параллелизма и параллелизма, надежно, не беспокоясь о бессмысленных препирательствах над определениями

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

Смежные вопросы