Закончил читать книгу A Pattern Language for Parallel Programming. Точнее говоря, закончил чтение первых пяти глав (шестая глава и приложения содержит поверхностное описание деталей реализации, которые мне были не интересны).
Впечатление двоякое. Книга ценна тем, что погружает неподготовленного читателя в область параллельных вычислений (наверное, речь можно вести даже о High Perfomance Computing). При ее чтении становится понятной разница между parallel programming и concurrent programming. Хотя эти два термина в последнее время часто упоминают вместе (и даже иногда взаимозаменяемо), все-таки это две разные вещи. И данная книга помогает хорошо это осознать.
Поскольку я никогда прежде не был связан с parallel programming, мне было интересно прикоснуться к этому миру. Чему помогают используемые в книге примеры: три задачи, различные подходы к решению которых обсуждаются по ходу изложения материала.
С другой стороны, читать ее было неинтересно (собственно, как и вообще книги о паттернах). У меня сложилось впечатление, что все то же самое можно было гораздо короче и увлекательнее написать, если бы авторы не пытались выстроить классификацию паттернов. Поскольку по ходу чтения постоянно ловил себя на мысли о том, что описание очередного паттерна очень похоже на описание одного из предыдущих, но с небольшими вариациями. Тем не менее, авторы продолжали следовать своему стилю, снова и снова озвучивая похожие цели, достоинства и недостатки каждого паттерна.
Примечательно, что большую часть нужного мне впечатления о parallel programming в очень хорошем, сжатом и четком виде я получил от небольшой статьи Introduction to Parallel Computing: Part 1, ссылка на которую пришла в RSS-ленте совсем недавно.
Резюме. Надеюсь, что мне не придется еще раз обращаться к этой книге. Ну разве что, за списком ссылок для того, чтобы найти что-нибудь более достойное и интересное.