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