Сообщение Re[15]: Эрланг и все-все-все (на самом деле, не совсем) от 29.06.2015 20:51
Изменено 29.06.2015 20:54 Evgeny.Panasyuk
Здравствуйте, AlexRK, Вы писали:
ARK>Да, что-то в этом есть. Однако, с точки зрения программного кода мы, получается, вообще не можем сказать, что у нас за программа вышла — Parallel или Concurrent. Для этого мы должны знать детали конкретной платформы. А то вдруг наподключали заголовков Intel TBB, объявили все параллелизмом, а потом глядь — а процессор-то один.
Тут важно то, что если бы Intel TBB не давал преимуществ на многоядерных машинах — то никто бы его и не использовал для параллельных вычислений. Зачем усложнять код, ограничивать семантику операций там где это не даёт преимуществ?
ARK>А есть еще всякие штуки типа High Performance Fortran, который _сам_ распараллеливает чисто последовательные алгоритмы (ну, не все, конечно, но это в данном случае не важно).
Это есть и в C++ компиляторах: MSVC, GCC. И заметь — это называется авто-параллелизацией, а не авто-конкурентизацией или авто-многопотокизацией.
ARK>Не знаю, в общем. Вот таски в Ada — это средства для параллелизма или конкурентности?
После беглого просмотра — это скорее средства конкурентности. Кстати, насколько я вижу, в Ada обмен сообщениями ближе к CSP, чем у Erlang.
ARK>Да, что-то в этом есть. Однако, с точки зрения программного кода мы, получается, вообще не можем сказать, что у нас за программа вышла — Parallel или Concurrent. Для этого мы должны знать детали конкретной платформы. А то вдруг наподключали заголовков Intel TBB, объявили все параллелизмом, а потом глядь — а процессор-то один.
Тут важно то, что если бы Intel TBB не давал преимуществ на многоядерных машинах — то никто бы его и не использовал для параллельных вычислений. Зачем усложнять код, ограничивать семантику операций там где это не даёт преимуществ?
ARK>А есть еще всякие штуки типа High Performance Fortran, который _сам_ распараллеливает чисто последовательные алгоритмы (ну, не все, конечно, но это в данном случае не важно).
Это есть и в C++ компиляторах: MSVC, GCC. И заметь — это называется авто-параллелизацией, а не авто-конкурентизацией или авто-многопотокизацией.
ARK>Не знаю, в общем. Вот таски в Ada — это средства для параллелизма или конкурентности?
После беглого просмотра — это скорее средства конкурентности. Кстати, насколько я вижу, в Ada обмен сообщениями ближе к CSP, чем у Erlang.
Re[15]: Эрланг и все-все-все (на самом деле, не совсем)
Здравствуйте, AlexRK, Вы писали:
ARK>Да, что-то в этом есть. Однако, с точки зрения программного кода мы, получается, вообще не можем сказать, что у нас за программа вышла — Parallel или Concurrent. Для этого мы должны знать детали конкретной платформы. А то вдруг наподключали заголовков Intel TBB, объявили все параллелизмом, а потом глядь — а процессор-то один.
Тут важно то, что если бы Intel TBB не давал преимуществ на многоядерных машинах — то никто бы его и не использовал для параллельных вычислений. Зачем усложнять код, ограничивать семантику операций там где это не даёт преимуществ?
ARK>А есть еще всякие штуки типа High Performance Fortran, который _сам_ распараллеливает чисто последовательные алгоритмы (ну, не все, конечно, но это в данном случае не важно).
Это есть и в C++ компиляторах: MSVC, GCC. И заметь — это называется авто-параллелизацией, а не авто-конкурентизацией или авто-многопотокизацией.
ARK>Не знаю, в общем. Вот таски в Ada — это средства для параллелизма или конкурентности?
После беглого просмотра — это скорее средства конкурентности (которые в том числе могут быть основой для параллельных решений). Кстати, насколько я вижу, в Ada обмен сообщениями ближе к CSP, чем у Erlang.
ARK>Да, что-то в этом есть. Однако, с точки зрения программного кода мы, получается, вообще не можем сказать, что у нас за программа вышла — Parallel или Concurrent. Для этого мы должны знать детали конкретной платформы. А то вдруг наподключали заголовков Intel TBB, объявили все параллелизмом, а потом глядь — а процессор-то один.
Тут важно то, что если бы Intel TBB не давал преимуществ на многоядерных машинах — то никто бы его и не использовал для параллельных вычислений. Зачем усложнять код, ограничивать семантику операций там где это не даёт преимуществ?
ARK>А есть еще всякие штуки типа High Performance Fortran, который _сам_ распараллеливает чисто последовательные алгоритмы (ну, не все, конечно, но это в данном случае не важно).
Это есть и в C++ компиляторах: MSVC, GCC. И заметь — это называется авто-параллелизацией, а не авто-конкурентизацией или авто-многопотокизацией.
ARK>Не знаю, в общем. Вот таски в Ada — это средства для параллелизма или конкурентности?
После беглого просмотра — это скорее средства конкурентности (которые в том числе могут быть основой для параллельных решений). Кстати, насколько я вижу, в Ada обмен сообщениями ближе к CSP, чем у Erlang.