Я использую суперкомпьютер, на котором работает Centos 6. Узел, который я хочу использовать, имеет 3 Tesla V100. Проблема в том, что версия GLIBC, установленная на этом узле, несовместима с последними версиями PyTorch, которые я должен использовать .
У меня нет root. Следовательно, мне нужен способ использовать другой GLIBC на уровне пользователя. Я могу разговаривать с системными администраторами и делать что-то из root (например, использовать Docker или что-то в этом роде), но я не могу переустановить ОС или GLIBC глобально. Я пытался установить GLIBC самостоятельно без рута, но не смог; это не работает. Это занимает слишком много времени, и невозможно найти руководство, чтобы сделать это правильно.
У меня есть несколько идей, например, попытка запустить Контейнер, который может получить доступ к узлу и использовать другую ОС; когда мое запланированное время вычислений закончится, я могу покинуть узел таким же, каким я его получил; для следующего пользователя суперкомпьютера.
Я тоже думал о chroot; Загрузите ISO-образ Centos 8 и выполните chroot в него, но я не знаю, будет ли он использовать GLIBC, используемый ОС хоста, или Centos 8 GLIBC.
Что вы мне посоветуете делать? Как вы думаете, Docker подойдет моим потребностям? Или другое решение для контейнеризации? Продолжать попытки установить другой GLIBC?
Я пытался установить GLIBC самостоятельно без root, но не смог сделать это правильно. но не смог сделать это правильно; ничего не получилось. Это занимает слишком много времени, и я не могу найти учебник, чтобы сделать это правильно.
Слишком сложно установить другую libc параллельно с существующей. Я бы не стал пробовать, особенно на общей системе.
Контейнеры - это chroots, но лучше, с большей изоляцией. Используйте контейнеры вместо chroots, так вы сможете воспользоваться преимуществами инструментария и уже существующих образов.
Однако существуют требования к ядру для хоста контейнера (или виртуальной машины). Вам понадобится драйвер ядра Linux от nvidia. Последние дистрибутивы поддерживаются, например EL 7 и EL8 через DKMS.
Да, возможно использовать GPU из контейнера. Смотрите Как включить NVIDIA GPU в контейнерах на пустом металле в RHEL 8 и сценарии оболочки, извлеченные из него. Здесь показано, как установить kmod-nvidia-latest-dkms
и nvidia-container-toolkit
, плюс некоторые политики SELinux для обеспечения изоляции контейнеров.
Я не думаю, что вам удастся избежать обновления ОС хоста. CentOS 6 закончилась и больше не получает обновлений безопасности. Драйверы ядра, которые вам нужны для этого GPU, поддерживаются только в более поздних ОС. Любимый инструментарий Red Hat для контейнеров, podman, podman, также не существует на старых ОС.