Сообщение Re[14]: Эрланг и все-все-все (на самом деле, не совсем) от 29.06.2015 20:21
Изменено 29.06.2015 20:25 AlexRK
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>
Да, что-то в этом есть. Однако, с точки зрения программного кода мы, получается, вообще не можем сказать, что у нас за программа вышла — Parallel или Concurrent. Для этого мы должны знать детали конкретной платформы. А то вдруг наподключали заголовков Intel TBB, объявили все параллелизмом, а потом глядь — а процессор-то один. А есть еще всякие штуки типа High Performance Fortran, который _сам_ распараллеливает чисто последовательные алгоритмы (ну, не все, конечно, но это в данном случае не важно).
То есть если мы видим в коде явные потоки, то это может быть по разным причинам — то ли компилятор сам распараллелить не смог, то ли алгоритм изначально многопоточный, но эффект-то все равно один — есть код с потоками, вот и все. Причем любой код с потоками может выполняться как на одном процессоре, так и на нескольких.
Не знаю, в общем. Вот таски в Ada — это средства для параллелизма или конкурентности?
EP>
EP>https://en.wikipedia.org/wiki/Concurrent_computing
EP>https://en.wikipedia.org/wiki/Parallel_computing
EP>http://talks.golang.org/2012/waza.slide#1
EP>Concurrency is not Parallelism
Да, что-то в этом есть. Однако, с точки зрения программного кода мы, получается, вообще не можем сказать, что у нас за программа вышла — Parallel или Concurrent. Для этого мы должны знать детали конкретной платформы. А то вдруг наподключали заголовков Intel TBB, объявили все параллелизмом, а потом глядь — а процессор-то один. А есть еще всякие штуки типа High Performance Fortran, который _сам_ распараллеливает чисто последовательные алгоритмы (ну, не все, конечно, но это в данном случае не важно).
То есть если мы видим в коде явные потоки, то это может быть по разным причинам — то ли компилятор сам распараллелить не смог, то ли алгоритм изначально многопоточный, но эффект-то все равно один — есть код с потоками, вот и все. Причем любой код с потоками может выполняться как на одном процессоре, так и на нескольких.
Не знаю, в общем. Вот таски в Ada — это средства для параллелизма или конкурентности?
Re[14]: Эрланг и все-все-все (на самом деле, не совсем)
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>
Да, что-то в этом есть. Однако, с точки зрения программного кода мы, получается, вообще не можем сказать, что у нас за программа вышла — Parallel или Concurrent. Для этого мы должны знать детали конкретной платформы. А то вдруг наподключали заголовков Intel TBB, объявили все параллелизмом, а потом глядь — а процессор-то один. А есть еще всякие штуки типа High Performance Fortran, который _сам_ распараллеливает чисто последовательные алгоритмы (ну, не все, конечно, но это в данном случае не важно).
То есть если мы видим в коде явные потоки, то это может быть по разным причинам — то ли компилятор сам распараллелить не смог, то ли алгоритм изначально многопоточный, но эффект-то все равно один — есть код с потоками, вот и все. Причем любой код с потоками может выполняться как на одном процессоре, так и на нескольких.
Хуже того, даже совершенно однопоточная с виду программа на фортране может внезапно выполняться параллельно.
Получается, "параллелизм" — термин с точки зрения программного кода особо ни о чем, он о конкретной реализации.
Не знаю, в общем. Вот таски в Ada — это средства для параллелизма или конкурентности?
EP>
EP>https://en.wikipedia.org/wiki/Concurrent_computing
EP>https://en.wikipedia.org/wiki/Parallel_computing
EP>http://talks.golang.org/2012/waza.slide#1
EP>Concurrency is not Parallelism
Да, что-то в этом есть. Однако, с точки зрения программного кода мы, получается, вообще не можем сказать, что у нас за программа вышла — Parallel или Concurrent. Для этого мы должны знать детали конкретной платформы. А то вдруг наподключали заголовков Intel TBB, объявили все параллелизмом, а потом глядь — а процессор-то один. А есть еще всякие штуки типа High Performance Fortran, который _сам_ распараллеливает чисто последовательные алгоритмы (ну, не все, конечно, но это в данном случае не важно).
То есть если мы видим в коде явные потоки, то это может быть по разным причинам — то ли компилятор сам распараллелить не смог, то ли алгоритм изначально многопоточный, но эффект-то все равно один — есть код с потоками, вот и все. Причем любой код с потоками может выполняться как на одном процессоре, так и на нескольких.
Хуже того, даже совершенно однопоточная с виду программа на фортране может внезапно выполняться параллельно.
Получается, "параллелизм" — термин с точки зрения программного кода особо ни о чем, он о конкретной реализации.
Не знаю, в общем. Вот таски в Ada — это средства для параллелизма или конкурентности?