Для поддержки разработки ПО на основе программных инструментов Intel, многие из которых доступны как под ОС семейства Linux, так и под ОС MS Windows, можно создать хорошую инфраструктуру. К числу подобных инструментов относятся:
Intel Trace Analyzer and Collector - cредство для поиска ошибок и анализа эффективности MPI приложений на основе построения и последующего анализа, визуализации трассы событий (MPI вызовов, пересылок сообщений). ITAC состоит из двух основных частей. Trace Collector и Trace Analyzer а также ряда вспомогательных утилит..
Intel Parallel Studio - комплекс Intel Parallel Studio для многопоточного программирования работает в ОС Windows вместе с Microsoft Visual Studio и помогает разработчикам на всём жизненном цикле приложения: от планирования будущего параллелизма до получения эффективного параллельного приложения.
Intel Integrated Performance Primitives - это набор кросс-платформенных библиотек, содержащих большое количество высокопроизводительных функций, которые могут быть использованы для аудио-, видео-кодеков (например, H.263, MPEG-4), сжатия изображений (JPEG и JPEG2000), обработки изображений (двумерных массивов), обработки сигналов (одномерных
массивов или векторов), сжатия естественной речи, систем компьтерного зрения, криптографических приложений, а также вспомогательные математические функции.
Cluster OpenMP для компиляторов Intel под Linux - простое средство, требующее незначительного изменения кода для расширения параллелелизма OpenMP на кластерные системы под ОС Linux, базирующиеся на 64-разрядной архитектуре Intel.
Компиляторы Intel (языки C/C++, Fortran77/Fortran90) поддерживают и различные уровни оптимизации для 32-х и 64-х разрядных приложений в одном пакете, и технологию параллельного программирования OpenMP, что позволяет создавать эффективные программы для современных многоядерных процессоров. С компиляторами поставляется символьный отладчик Intel Debugger, который может работать в режимах совместимости с gdb или dbx и интегрируется с такими графическими оболочками для отладки, как ddd, Eclipse, Allinea. Отладчиком поддерживаются как многонитевые приложения OpenMP, так и написанные с
использованием интерфейса native threads. Порожденные нити автоматически попадают под контроль отладчика, причем большинство его команд можно применять либо к одной, либо ко всем нитям одновременно.
Текущая версия: 11.0.
Сайт: http://www.intel.com/cd/software/products/asmo-na/eng/compilers/
Анализатор Intel VTune позволяет находить и устранять узкие места, препятствующие повышению производительности программы, за счет сбора, анализа и отображения данных вплоть до отдельных функций, модулей и команд. Замеряя производительность различных участков кода и помогая интерпретировать результаты замеров, VTune позволяет быстро найти участки для оптимизации. Поддерживаются многонитевые приложения для различных операционных систем и разных сред разработки.
Текущая версия: 9.0.
Сайт: http://www.intel.com/cd/software/products/asmo-na/eng/vtune/239144.htm
Библиотека Intel Integrated Performance Primitives предоставляет набор
оптимизированных подпрограмм, которые могут быть использованы для обработки
аудио- и видеоданных, распознавания речи, кодирования JPEG и видео, сжатия
данных, специальной обработки матриц, в решении задач криптографии, векторной
алгебры и обработки сигналов.
Текущая версия: 5.2.
Сайт: http://www.intel.com/cd/software/products/asmo-na/eng/perflib/302910.htm
Библиотека Intel Math Kernel Library широко используется для решения вычислительно сложных задач, где от платформ Intel требуется максимальная производительность. К функциональным возможностям этой библиотеки можно отнести модули линейной алгебры (BLAS, Sparse BLAS, LAPACK и пакет Sparse Solvers), функции быстрых преобразований Фурье (FFT), векторные математические функции (VML), генераторы случайных чисел.
Текущая версия: 9.1.
Сайт: http://www.intel.com/cd/software/products/asmo-na/eng/perflib/mkl/
Анализатор Intel Thread Checker позволяет упростить разработку и сопровождение многопоточных приложений. В паре с Intel Thread Profiler он призван решить большинство проблем, связанных с многопоточностью. Выявляет недетерминировано работающие участки кода, являющиеся причиной трудно находимых "плавающих" ошибок. Определяет ситуации неопределённости порядка записи данных, потерянные нити, блокировки, потерю сигналов, неверно отмененные блокировки. Поддерживает стандарты OpenMP, POSIX и Windows API.
Вообще говоря, Intel Thread Checker не зависит от компилятора, способен работать с любым исполняемым файлом, но в сочетании с компилятором Intel проводит более глубокий анализ.
Текущая версия: 3.1.
Сайт: http://www.intel.com/cd/software/products/asmo-na/eng/threading/219785.htm
Инструменты для программирования кластеров объединены в пакет Intel Cluster Tools. Сюда входит библиотека Intel MPI, оптимизированная параллельная математическая библиотека Intel Cluster MKL и специальный инструмент Intel Trace Analyzer & Collector, предназначенный для создания эффективных масштабируемых параллельных программ.
Текущая версия: 3.0.1.
Сайт: http://www.intel.com/cd/software/products/asmo-na/eng/307696.htm
Хорошим вариантом тестирования производительности системы является использование пакета Intel MPI Benchmarks, ранее известного под названием Pallas MPI Benchmarks. Пакет измеряет базовые характеристики кластерной системы, а также показывает эффективность основных функций MPI, предназначенных для реализации коллективных операций и передачи сообщений между двумя процессами, односторонних операций, функций для выполнения операций ввода/вывода и ряда других.
Текущая версия: 3.0.
Сайт: http://www.intel.com/cd/software/products/asmo-na/eng/307696.htm#mpibenchmarks
Данная реализация MPI основана на mpich2. Её ключевой особенностью является прозрачная поддержка различных коммуникационных сред. Это значит, что в среде с гетерогенной коммуникационной средой можно будет запускать параллельное приложение даже без перекомпиляции. Например, к кластеру на InfiniBand можно подключить ещё несколько узлов через Ethernet или Myrinet и приложения сразу
смогут их использовать.
Это достигается за счёт использования динамического выбора типа коммуникации. Доступные варианты: через общую память, через Ethernet или через любое устройство, поддерживающее RDMA (Remote Direct Memory Access) через библиотеку DAPL. Такая библиотека поставляется с большинством высокоскоростного оборудования, такого как InfiniBand и Myrinet. Несмотря на возможность
динамической поддержки работы приложения с различными коммуникационными сетями, одновременное использование процессоров с различным набором команд не допускается.
Intel MPI Library полностью реализует стандарт MPI-2 и поддерживает работу программ на архитектурах x86, x86_64 и процессорах семейства Itanium. Поддерживаются компиляторы Intel C/C++/F77/F90 версий 8.1 и выше, а также любые компиляторы, совместимые с форматом GNU.
Установка производится запуском скрипта install.sh из каталога, где был распакован архив с дистрибутивом. Для успешной инсталляции необходимо иметь лицензию, которую для удобства установки пакета нужно сохранить в файле. В процессе работы инсталлятор попросит указать каталог для установки (по умолчанию это /opt/intel/mpi/версия), а также путь к файлу с лицензией и набор компонент для установки. Для успешной работы необходимо наличие на узлах и сервере интерпретатора python версии не ниже 2.2.
После установки Intel MPI Library команды компиляции и запуска будут доступны только с указанием полных путей, что, конечно, неудобно. Для комфортной работы на 32-битных процессорах необходимо выполнить скрипт <путь_к_intelmpi>/bin/mpivars.sh, если вы работаете в bash или zsh или <путь_к_intelmpi>/bin/mpivars.csh, если вы работаете в csh или tcsh. На 64-битных процессорах вместо <путь_к_intelmpi>/bin/ пишите <путь_к_intelmpi>/bin64/. Чтобы не выполнять эти действия каждый раз, пропишите их запуск в файлах /etc/profile и/или /etc/csh.cshrc соответственно. Во многих дистрибутивах Linux есть каталог /etc/profile.d, в котором хранится
набор скриптов, выполняющихся bash и tcsh при запуске. Вы можете не "захламлять" /etc/profile и /etc/csh.cshrc, а просто сделать жёсткие ссылки указанных выше скриптов в этот каталог. Символические ссылки, скорее всего, не сработают в силу специфической обработки каталога /etc/profile.d.
Компиляция программ производится обычными скриптами mpicc/mpiCC/mpif77/mpif90. Для запуска программ необходимо предварительно создать файл $HOME/.mpd.conf, с правами на чтение-запись владельцу и запрещением всего остальным (0600). В этом файле необходимо прописать строку 'secretword=
Убедитесь, что файл доступен на всех узлах кластера. Создайте файл mpd.hosts со списком всех узлов кластера, по одному в каждой строке.
Перед запуском пользовательской программы запустите команду mpdallexit, а затем mpdboot -n
Собственно запуск программ пользователей осуществляется командой mpiexec -n
Текущая версия: 3.0.1.
Сайт: http://www.intel.com/go/mpi
Современные процессоры Intel поддерживают наборы инструкций SSE, позволяющие осуществлять потоковую обработку в режиме SIMD.