Скрижали параллельных вычислений — что посоветуете?

Какие, на ваш взгляд, есть действительно стоящие книги/курсы на эту тему? Ориентировачный уровень: любой, от азов и до самых вершин — перечитаю/пересмотрю всё.
Из того, что нашёл — The Art of Concurrency (не видел в русском варианте, поэтому не уверен в русскоязычном названии) — каково ваше мнение на счёт неё?
  • Вопрос задан
  • 3388 просмотров
Пригласить эксперта
Ответы на вопрос 4
geeek
@geeek
hpcc.unn.ru/?dir=18 вот тут посмотрите.
Ответ написан
Комментировать
@chuprakov
Параллельность - слишком общее понятие, чтобы можно было ответить чем-то конкретным на такой размытый вопрос. Если нужно уметь программировать научные приложения на кластерах, то начинайте изучать MPI. Если требуется то же научно-финансовое, но на мейнфреймах или рабочих станциях, то изучайте что-нибудь на общей памяти: OpenMP, Cilk Plus, Intel TBB или абстракции работы с потоками из QT или boost.

Но это всё "мягкий путь". Можно вместо MPI использовать хардкорно TCP IP, а вместо библиотек на общей памяти - pthreads (для linux). А если предполагается задействование еще и графических ускорителей Nvidia/AMD, то добавочно изучайте CUDA (для Nvidia) или OpenCL(универсально). Причем распараллеливать в смысле ускорителей и процессоров придется очень по-разному.

Но это всё вместе взятое может оказаться и вовсе ненужным, если стоить цель использовать параллельность внутри языка или конкретной платформы. В C#, Java есть внутренние средства управления потоками. Кому мало могут добавить Scala, Node.js - там очень продвинутое управление потоками. И эти знание вообще никак не будут пересекаться с первыми двумя абзацами.

Я использовал 90% из перечисленных технологий. "Лучшей" нет и быть не может - всё зависит от конкретных целей и потребностей. Так что начните просто с основ того, что такое параллельное программирование. Дальше - по потребностям.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы