Совместное использование ресурсов ОЗУ между 2 и более компьютерами


4

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

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

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

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

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


В дополнение к отличным ответам ниже, любое решение с разделяемой памятью, вероятно, будет стоить намного дороже, чем просто покупать больше оперативной памяти.
MetaNova

Раньше, когда 64-битные были менее распространенными, люди покупали RAM-диски на PCI-карту, а затем помещали на них свои pagefile.sys из-за 32-битного барьера RAM 4 ГБ.
вс

Ответы:


5

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

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

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

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

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

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

Сценарии

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

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

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


2

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

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


-3

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


Только 10 Гбит / с Ethernet быстрее, чем SATA 6 Гбит / с (он же SATA3). Тем не менее, он вводит запредельные величины задержки, и это без какого-либо протокола.
Даниэль Б

Спасибо за отзыв, Даниэль. Эта идея была просто теорией, которую я имел сегодня. Я собираюсь проверить в ближайшее время. Мой друг сегодня делает мне кроссовер.
Перо писателя

1
Нет необходимости, все современные сетевые интерфейсы имеют авто-кроссовер.
Даниэль Б
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.