Подумаем
Немного выводов из представленного выше описания архитектуры системы. Итак, система представляет собой многопроцессорную машину с раздельной (не разделяемой!) оперативной памятью. Синхронизация и обмен данными между отдельными процессорами происходит по специальным быстрым коммуникационным каналам. Поэтому, необходимо в расчетном алгоритме находить разумный компромисс между объемом вычислительной работы и объемом передаваемых данных. В случае неразумно большого потока обмена возможно понижение производительности, обусловленное конечной (хоть и достаточно большой) пропускной способностью канала.
Задача должна строиться так, чтобы объем требуемой оперативной памяти не превышал 32Mb (имеется в виду та часть задачи, которая будет выполняться на отдельном узле). То, что в целом, в системе 32x16=512Мb оперативной памяти вовсе не означает, что вы можете работать с массивом размером 512Mb!
Следует ответственно подходить к разработке схемы коммуникации между узлами, поскольку от этого может сильно зависеть производительность.
Очень важно понимать конфигурацию системы. Так, если в задаче очень много дисковых операций, следует запускать ее на том разделе, где есть IO-node с теми дисками, с которыми система работает, иначе данные будут передаваться через внутреннюю сеть машины (не через HSL), что довольно медленно. Наоборот, если задача чисто расчетная следует избегать использования разделов с IO-узлами, поскольку эти узлы могут быть загружены обменом данными. Особенно неприятен в этом случае Entry-node, на котором запущенное PARIX-приложение будет конкурировать за процессорное время с задачами других пользователей: компиляция и отладка программ.
Прикладная программа должна быть написана так, чтобы ее можно было запустить на произвольном количестве процессоров (масштабируема), поскольку на каком именно разделе она будет выполняться определяется пользователем при ее запуске.
Наконец, должно быть ясно, что адаптация вашей программы под PARIX есть не очень простая задача, и здесь нельзя отделаться опцией компилятору (как в ConvexOS). Вопрос: а что будет, если кто-нибудь просто откомпилирует свою задачу, не внося в нее изменений? Ответ: она будет успешно откомпилирована, однако если ее запустить, то задача будет считаться параллельно (и независимо) от начала до конца на каждом из процессоров в разделе. Так что для 16-процессорного раздела вы получите 16 идентичных результатов. Скорость счета будет равна скорости счета на одном процессоре. Из этого должен последовать неизбежный вывод о том, что, увы, придется трудиться, если есть желание использовать все мощности системы Parsytec CC/16.