Разработка программного обеспечения, всегда бывшая делом
непростым, проходит в настоящий момент очередной виток повышения сложности,
вызванный повсеместным распространением многоядерных процессоров, использовать
все возможности которых можно лишь создавая многопоточные программы. С одной
стороны все необходимые для этого средства уже весьма давно существуют в
распространенных операционных системах семейств Microsoft Windows и Unix/Linux,
с другой, для программистов-прикладников использование этих механизмов по уровню
удобства и объему необходимых знаний немногим легче, чем было когда-то
программирование на ассемблере. Остро необходимы инструменты, берущие на себя по
возможности большую часть задач, связанных с обслуживанием «параллельности» в
многопоточных программах и дающие разработчику возможность сосредоточиться на
решении конкретных прикладных задач. Один из таких инструментов – библиотека Intel®
Threading Building Blocks. В отличие от других известных подходов и
инструментов: программирования непосредственно в потоках, использования OpenMP,
– TBB и сама написана на языке C++ (в классах и шаблонах) и ее использование
предполагает и дает возможность разработки параллельной программы в объектах. В
курсе рассматриваются основные возможности библиотеки TBB, позволяющие решать
следующие типичные для разработки параллельных программ
задачи: распараллеливание циклов с известным числом повторений;
распараллеливание циклов с известным числом повторений с редукцией;
распараллеливание циклов с условием; распараллеливание
рекурсии.