Я согласен, очень Векторовская картинка получилась.
Пока многопроцессорные Векторы не изобрели, можно сделать рендерфарм на локальной сети. Допустим 16 клиентов и один раздатчик.
Я согласен, очень Векторовская картинка получилась.
Пока многопроцессорные Векторы не изобрели, можно сделать рендерфарм на локальной сети. Допустим 16 клиентов и один раздатчик.
Больше игр нет
И можно даже сделать в рамках существующих программных и аппаратных средств при участии оператора. Рендерфарм из 32 векторов. Каждый рендерит столбец 8x192 и сбрасывает через магнитофонный выход 3 файла (3 плоскости) по 256 байт на одну машину. Сам рендер займет чуть больше 5 минут (если 2.99), но потом еще возня с перекачкой. Со стороны наверно этот цирк выглядел бы забавно.
Вектор в некоторых аспектах несомненно крут, а мне было достаточно 1) захотеть; 2) найти где списать; 3) списать. Хотелось бы еще изобразить что-то вроде такого, причем на векторе можно в значительной степени "настоящими" цветами, без жесткого дизера.
Такое можно устроить из эмуляторов. Звук можно провести через Virtual Audio Cable. Надо только подумать о том, как сделать так, чтобы 32 Вектора не конфликтовали друг с другом.
Видимо так: мастер соединен со входами всех воркеров. Выходы воркеров сливаются в один провод, который идет в мастер.
Каждый воркер имеет свой номер xxx. Он делает BLOAD"TASKxxx". Получает задачу с номером столбца (можно даже диапазон строк, чтобы дробить задачи на мелкие). Считает задачу. По окончании задачи делает BLOAD"READYxxx" и ждет -- это будет от сервера команда готовности принять результат от этого воркера. Затем он делает BSAVE"RESULTxxx" и переходит к началу (ждет следующую задачу).
Сервер, когда не раздает задачи, просто делает BSAVE"READYxxx", затем BLOAD"RESULTxxx". Нужен таймаут на BLOAD. Если нет ответа через 5 сек, переходим к следующему запросу.
BLOAD по-моему может бесконечно ждать требуемого имени. Вот чего я не знаю, так это как сервер сделает BLOAD с таймаутом. Наверное для этого потребуется все-таки какая-то ассемблерная хирургия.
Больше игр нет
Если не гнаться за максимальной эффективностью, то можно обычным BLOAD без таймаута грузить результаты в жестко заданном порядке - сначала номер 1, потом 2 и т.д. до 32. Меня больше смущает физическая реализация проводки 1<->32, тут стандартным решением вряд ли обойдешься. Для 1<->2 в детстве была покупная коробочка, там кнопками можно выбирать.
А что если порядок окажется не тот? Время расчета всегда будет отличаться, хоть и не сильно. По-моему лучше наколдовать сервер чуть-чуть поумнее. Если он будет колдунский, он еще и сможет раздавать задачи для загрузки в воркеров с уже подставленными идентификаторами тоже сам. Только воркеров все же придется вручную по очереди запускать.
За физическую реализацию лучше особо пока не страдать. Тот, кто соберет комплект из 32 исправных Векторов, обязательно сможет разобраться с такой мелочью.
Больше игр нет
Если порядок окончания расчетов не совпадет с тем, что ожидает мастер, то на мой взгляд это приведет лишь к задержке по времени (снижению эффективности), но не к нарушению работы.
Отвлекаясь от векторпанка можно вспомнить про КУВТы, там была какая-никакая локалка и при большом желании можно было организовать распределенные вычисления.
Как ты видишь ситуацию, когда два воркера закончили +/- одновременно и стали делать BSAVE ? И как распределять задачи, если воркеров меньше 32 ?
Что-то ЛВС-ное мы запускали через EMU, но детали как-то подзабылись. Идея с магнитофонами мне нравится больше, потому что просто понятней с чем имеем дело.
Больше игр нет
Воркеры должны делать BSAVE только когда получат приглашение (через BLOAD) от мастера.
Если серьезно, то со всех точек зрения реалистичным мне представляется вариант с двумя векторами, соединенными через магнитофонный интерфейс. Мастер рендерит половину, посылает (BSAVE) приглашение второму, дальше проблем нет.
- - - Добавлено - - -
Все же добавлю про дальше. Когда второй (или 3й, 4й и т.д.) готов, то он посылает (BSAVE) мастеру ответ. И тогда мастер ожидает 3 файла собственно с картинкой.
Возвращаясь чуть ранее - мастер должен посылать копии приглашений второму (3му, 4му, ...) пока тот не ответит, на случай если воркер отстает со своей частью рендера.
- - - Добавлено - - -
Но тут потребуется патчнуть BLOAD на тему таймаута, как ты написал ранее.
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)