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