4.6. Библиотека подпрограмм хост-компьютера для взаимодействия с параллельными программами nCUBE2
В большинстве случаев нет необходимости организовывать специальное взаимодействие между хост-компьютером и вычислительными узлами. Все запросы ввода/вывода автоматически транслируются хост-процессом xnc. Однако в программном обеспечении nCUBE2 предусмотрена возможность прямого взаимодействия процессов, выполняющихся на nCUBE2, с процессами хост-компьютера. Это позволяет распределять выполнение задачи между ними. Например, вычислительную часть выполнять на nCUBE2, а графическую обработку результатов динамически выполнять на хост-компьютере. В этом случае головная программа (master) запускается на хост-компьютере, из нее выполняется загрузка и запуск ведомой (slave) вычислительной программы на nCUBE2. Тогда между этими программами возможен прямой обмен информацией, реализованный по аналогии с обменом данными между процессорами. Для обеспечения этого режима в программное обеспечение хост-компьютера добавлена библиотека libncube.a. В ее состав, в частности, входят функции:
nopen | - запрос подкуба на nCUBE2; |
nodeset | - создание дескриптора для задаваемого набора процессоров; |
rexec | - загрузка программы в процессоры nCUBE2; |
nread | - чтение сообщения на хост-компьютере из параллельной программы; |
nwrite | - посылка сообщения от хост-компьютера параллельной программе; |
nclose | - освобождение запрошенного подкуба. |
В данном руководстве мы не будем детально рассматривать эти функции, поскольку режим master-slave на сегодня утратил практический смысл. В самом деле, если объемы вычислений таковы, что они допускают интерактивную обработку результатов, то такие задачи разумнее решать на современных графических рабочих станциях.