/ Компиляция программ / Запуск программ /Компиляция программ выполняется на компьютерах SUN, т.е. используется режим кросс-компиляции. Возможна компиляция с языков C и Фортран 77. Вызов компилятора производится командой ncc, которая в зависимости от расширения в имени файла вызывает либо компилятор С (progname.c), либо Фортран77 (progname.f). Имеется перевод на русский язык man страницы по команде ncc (см. здесь). Достаточно подробно компиляция программ для nCUBE рассмотрена в методическом пособии по параллельному программированию (см. здесь ). В простейшем случае компиляция программы выполняется командой:
/ Средства параллельного программирования /
/ Библиотеки подпрограмм / Отладка программ /
ncc -O -o progname progname.c - для программ на С
ncc -O -o progname progname.f - для программ на языке Фортран77Запуск программ на исполнение выполняется командой xnc. Имеется перевод на русский язык man страницы по команде xnc (см. здесь) и описание команды в методическом пособии (см. здесь )
xnc -d4 progname - запуск программы на выполнение на 16 процессорахСредства параллельного программирования составляют:
1. PSE - среда параллельного программирования nCUBE - представляет собой расширение Runtime библиотеки, включающее базовые функции поддержки механизма передачи сообщений (whoami, nread, nwrite и т.д.) и библиотеку параллельных подпрограмм npara (дополнительные функции - nbroadcast, dsum и др.). Компиляция программы с использованием подрограмм из библиотеки npara выполняется командой:
ncc -O -o progname progname.c -lnparaПримечание: После установки библиотеки MPI использование среды PSE утратило практический смысл.
2. MPI - универсальная среда параллельного программирования для многопроцессорных систем. Представляет собой коммуникационную библиотеку, ставшую фактически стандартной для многопроцессорных систем. Компиляция программ с использованием этой библиотеки выполняется командой:
ncc -O -o progname progname.c -lmpiЗапуск программ выполняется обычным образом (командой xnc).
3. HPF - язык параллельного программирования High Performance Fortran. Установлена бесплатно распространяемая версия пакета Adaptor. Для работы с системой должна быть установлена переменная окружения PHOME=/usr/local/lib/ncube/adp, указывающая расположение корневого каталога системы. Имена файлов с программами и подпрограммами на языке HPF должны иметь расширение .hpf. Компиляция программ выполняется командой:
gmdhpf -hpf -dm -o progname progname.hpfЗапуск программ выполняется обычными средствами (командой xnc):
xnc -d4 prognameБиблиотеки подпрограмм призваны облегчить разработку параллельных программ и позволяют добиться максимальной производительности на вычислительной системе. В данном разделе речь идет о параллельных библиотеках вычислительного характера.
1. BLAS - Basic Linear Algebra Subprograms - поставляется со всеми высокопроизводительными системами либо в виде отдельной библиотеки, либо в составе более общих библиотек (ссылка указана на документацию Sun Microsystems). Эта библиотека не параллельная. Подпрограммы этой библиотеки реализуют базовые операции векторной и матричной алгебры и широко используются другими библиотеками более высокого уровня. Подключается на nCUBE: -lblasn. Например:
ncc -O -o progname progname.f -lblasnПримечание: На языке С, возможно, потребуется еще подключение общей математической библиотеки : -lm
2. ScaLAPACK - Scalable LAPACK - параллельная версия библиотеки LAPACK. Включает в себя широкий набор подпрограмм для решения стандартных задач линейной алгебры. Имеется методическое пособие по работе с библиотекой ( см. здесь). На nCUBE требует подключения вспомогательных библиотек (BLACS, PBLAS, TOOLS, MPI):
ncc -O -o prog prog.f -lscalapack -lpblas -ltools -lblacsF -lblacs -lblacsC -lblasn -lmpi3. Aztec - библиотека параллельных подпрограмм для решения больших систем линейных алгебраических уравнений с разреженными матрицами итерационными методами Крылова. Имеется методическое пособие по работе с библиотекой ( см. здесь). Используется совместно с MPI:
ncc -O -o prog prog.f -laztec -lblasn -lmpi -lf -lm
Отладка программ. Необходимость
работы с отладчиком чаще всего появляется в случае возникновения
прерывания при выполнении программы. Тогда для понимания того, что происходит
в программе, крайне важно знать, где произошло прерывание. В большинстве
случаев не требуется знание тонкостей работы с отладчиком. На многопроцессорной
системе nCUBE отладчик ndb
вызывается автоматически. Однако, если запуск программы был выполнен с
host-компьютеров SUN, то отладчик не может произвести установку связи с
резидентной программой и снимается. На процессорах nCUBE остается зависший
процесс. Единственный способ его уничтожить - выполнить команду nkill
без каких-либо параметров. Для работы с отладчиком необходимо:
1. Перекомпилировать программу в отладочном режиме ( с опцией -g
)
ncc -g -o progname progname.c2. Соединиться с главным host-компьютером sgi1
r sgi13. Перейти в директорию, где находится исполнимый файл
cd dir4. Запустить на исполнение программу
xnc -d 2 progname5. Дождаться прерывания программы и появления приглашения отладчика ( ndb> ). В шапке сообщения отладчика будет указана причина прерывания и номер узла, на котором это произошло.
print var - где var идентификатор переменной7. Выйти из отладчика (команда quit)