4

Я знаю, что раньше был несколько похожий вопрос: как разделить процессор или оперативную память?

Но позвольте мне указать это немного подробнее ...

Когда Microsoft Windows требуется больше оперативной памяти, чем доступно, она использует файл подкачки для временного хранения данных, это фактически что-то вроде оперативной памяти на жестком диске. Эта технология используется уже много лет.

Теоретически, не должно быть слишком сложно реализовать аналогичную технологию, которая использует ОЗУ разных компьютеров в сети для временного хранения данных. Для этого просто требуется программное обеспечение, работающее на компьютерах в сети, которое принимает и возвращает данные с / на главный компьютер и сохраняет эти данные в ОЗУ; Кроме того, операционная система основного компьютера должна иметь возможность использовать компьютеры в сети вместо (или в дополнение к) файла подкачки.

Интересно, есть ли реализации этой идеи? Это позволило бы пользователям создавать кластеры ОЗУ, используя все свои домашние или офисные компьютеры, что повысит производительность одного компьютера для некоторых задач разработки / игр / видео и т.д.

3 ответа3

5

На самом деле, это будет работать только в очень немногих случаях (конечно, не в играх!) даже если бы это было возможно.

Первым шагом является экспорт необработанного протокола устройства, поскольку Windows использует прямой доступ для более быстрой замены. В настоящее время это не может быть сделано, поскольку для Windows не существует необработанного протокола устройства (есть в Linux и некоторых Unices, и, возможно, iSCSI может это сделать).

Затем вам нужно будет импортировать устройство на клиентский компьютер как физическое устройство. Это тоже можно сделать, но по соображениям безопасности большинство реализаций рассматривают сетевые устройства как съемные устройства. Однако можно сделать это, настроив технологию ReadyBoost.

Но теперь проблема заключается в том, что сетевое устройство на несколько порядков медленнее, чем физическое дисковое устройство (на несколько порядков медленнее, чем память), поэтому вы не сможете заменить его слишком сильно, если система не будет работать вхолостую. ,

Вы можете использовать это только в том случае, если ваши требования к оперативной памяти были низкими, а требования к запоминающему устройству были огромными и терпимы к очень медленным скоростям. И это было бы полезно, если бы вы имели это на нескольких компьютерах. Это означает, что вы создали вычислительный кластер ... и это означает, что у вас есть проблема распределенных вычислений (у которых есть собственный набор инструментов, и обычно к ним обращаются путем разгрузки целых процессов со всей их памятью на другие узлы).

При обычном использовании, если больший дисковый файл подкачки не поможет вам из-за того, что он слишком медленный, а перебои убивают вашу производительность, как может решить проблему еще более медленный сетевой диск?

Сценарии

Это позволило бы пользователям создавать кластеры ОЗУ, используя все свои домашние или офисные компьютеры, что повысит производительность одного компьютера для некоторых задач разработки / игр / видео и т.д.

Для обработки видео существует возможность разгрузки задач параллельно клиентским компьютерам, каждый из которых работает на блоке видеокадров или разных каналах. По этому вопросу ведутся активные исследования . Хитрость заключается в том, что все клиенты имеют быстрый доступ к запоминающему устройству (которое также может быть распределено: существуют также сетевые распределенные файловые системы, в которых файлы могут находиться на нескольких физических серверах), каждый из которых работает с задачами, связанными с ЦП.

Для разработки существуют такие инструменты, как dmake, которые позволяют разделить сборку проекта (и статический анализ, тестирование и документ ...) на разные хосты. Это также может быть выполнено автоматически с помощью систем непрерывного изготовления и автоматической сборки, и результаты, возможно, будут намного лучше, чем делать все по требованию с помощью единого командного хоста.

2

Эти технологии существуют, но они настолько сложны и дороги, что их обычно не используют для разработки, видеоигр или редактирования видео, потому что просто и дешевле купить один мощный компьютер. Они также увеличивают задержку доступа к памяти как минимум на один порядок даже в специализированных высокопроизводительных сетях с малой задержкой, таких как InfiniBand.

С другой стороны, системы распределенной разделяемой памяти довольно распространены в суперкомпьютерах. Они обычно поставляются с диспетчером памяти и программами, которые пытаются сохранить свою часть памяти согласованной и локальной, чтобы не слишком часто обращаться к удаленным областям памяти.

-3

Я думал об этом вопросе, но немного по-другому. Как насчет RAMDisk, разделенного между двумя компьютерами. RJ45 по-прежнему быстрее SSD через соединение SATA III. Конечно, не так быстро, как родная RAM, но с помощью кроссоверного кабеля, можно перенести их виртуальную память на RAMDisk. Этот метод все еще топнул бы внутренний жесткий диск, SSHD и SSD. Эта идея может быть хорошей игровой уловкой между двумя ПК, когда на одном ПК гораздо меньше оперативной памяти. Идея состоит в том, чтобы разделить RAMDisk, а затем настроить гостевой ПК для сохранения виртуальной памяти в дополнительной оперативной памяти хоста.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .