Средства разработки программ на многопроцессорной системе nCUBE
/ Компиляция программ  / Запуск программ /
/ Средства параллельного программирования /
/ Библиотеки подпрограмм / Отладка программ /
Компиляция программ выполняется на компьютерах 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).
Всю необходимую информацию по MPI можно найти на специальной странице, посвященной MPI, и в части II  методического пособия "Многопроцессорные системы и параллельное программирование".

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 -lmpi
3. 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.c
2. Соединиться с главным host-компьютером sgi1
r sgi1
3. Перейти в директорию, где находится исполнимый файл
cd dir
4. Запустить на исполнение программу
xnc -d 2  progname
5. Дождаться прерывания программы и появления приглашения отладчика ( ndb> ). В шапке сообщения отладчика будет указана причина прерывания и номер узла, на котором это произошло.
6. Набрать команду where - отладчик выдаст информацию о последовательности вызовов подпрограмм с указанием номеров строк и значений параметров. Как правило, этой информации достаточно для локализации прерывания. Для получения дополнительной информации можно выдать значения интересующих вас переменных с помощью команды:
print var - где var идентификатор переменной
7. Выйти из отладчика (команда quit)
8. Вернуться на SUN (команда exit)
Имеется краткое описание отладчика (см. здесь) и перевод man страницы ndb на русский язык (см. здесь).