[mephi-hpc] Ошибка компоновки, gfortran-4.9
anikeev at ut.mephi.ru
anikeev at ut.mephi.ru
Tue Feb 15 18:37:10 MSK 2022
Екатерина Кузина писал 2022-02-13 13:10:
> Добрый день!
Здравствуйте!
Прошу прощения за задержку с ответом.
Ваше ПО слишком сильно устарело, с ним проще работать с помощью
chroot-окружений. Вы можете быстро создать chroot-окружение для
произвольного дистрибутива Linux семейства Debian и произвольной
архитектуры на своем лаптопе с дистрибутивом Linux семейства Debian при
помощи утилиты debootstrap с правами администратора, например:
master.cherenkov anikeev # debootstrap --arch=i386 --no-check-gpg wheezy
./wheezy_i386/ http://archive.debian.org/debian/
Получить доступ внутрь chroot-окружения с правами администратора можно
при помощи утилиты chroot:
master.cherenkov anikeev # chroot ./wheezy_i386/
root at master:/# apt-get update
root at master:/# apt-get install gcc g++ gfortran libquadmath0
build-essential cmake git
root at master:/# exit
Далее, Вы можете скопировать chroot-окружение просто как директорию с
файлами на хранилище кластера:
master.cherenkov anikeev # cp -r ./wheezy_i386/ /mnt/pool/5/ekuzina/
master.cherenkov anikeev # chown -R ekuzina:ekuzina
/mnt/pool/5/ekuzina/wheezy_i386/
На кластере Вы можете с правами пользователя получить доступ внутрь
окружения при помощи утилиты proot:
ekuzina at master.cherenkov ~ $ proot -R /mnt/pool/5/ekuzina/wheezy_i386/
/bin/bash
ekuzina at master:~$ gfortran -v
...
Target: i486-linux-gnu
...
gcc version 4.7.2 (Debian 4.7.2-5)
Работать с менеджером ресурсов Slurm нужно их хост-системы, не из
chroot-окружения. Пример SBATCH скрипта с использованием proot:
#!/bin/bash
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1
#SBATCH --time=1:00:00
proot -R /mnt/pool/5/ekuzina/wheezy_i386/ /relative/path/inside/chroot
Если у Вас нет лаптопа с дистрибутивом Linux семейства Debian, или Вы
желаете получить chroot-окружение с Linux-дистрибутивом не из семейства
Debian, Вам нужно будет создать его вручную, без использования утилиты
debootstrap. Самый простой путь - на лаптопе при помощи виртуальной
машины установить требуемый дистрибутив Linux. Далее, остановить
виртуальную машину, смонтировать файловую систему виртуального диска и
скопировать полное её содержимое в директорию chroot-окружения.
Chroot окружения не позволяют запускать бинарные файлы, несовместимые по
набору инструкций. На i386 процессоре Вы можете запустить окружение
i386. На x86_64 процессоре Вы можете запустить окружение x86_64 или
i386. Окружение aarch64 запустить на x86_64 при помощи chroot нельзя,
нужна полноценная виртуальная машина.
Chroot окружения ограничены совместимостью системных вызовов ядра ОС
хоста и гостевой ОС. Чем ближе версии ОС по времени и генеалогически,
тем меньше вероятность ошибок. Если для Вашего ПО не хватает
совместимости системных вызовов с текущей ОС кластеров МИФИ, Вам нужна
полноценная виртуальная машина.
Сервис виртуализации VDS и сервис высокопроизводительных вычислений HPC
архитектурно несовместимы. Если Вам нужна виртуальная машина, Вам нужно
обратиться в соответствующую службу управления информатизации:
https://it.mephi.ru/vds-hosting
Я подготовил Вам окружение на базе Debian 8 Wheezy (2013) с архитектурой
i386 в директории /mnt/pool/5/ekuzina/wheezy_i386. Если Вам не хватает
имеющихся пакетов, напишите, каких именно.
Напоминаю Вам, что ПО без SIMD-оптимизации следует запускать на
кластерах Unicluster и Basov.
Обращайтесь при наличии вопросов.
> Несколькими месяцами ранее на
> кластере cherenkov использовала gfortran-4.9
> для компиляции 32битных программ (с
> опцией -m32). Сейчас столкнулась со
> следующим:
>
> /usr/bin/ld: skipping incompatible
> /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so when searching for
> -lgfortran
> /usr/bin/ld: skipping incompatible
> /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.a when searching for
> -lgfortran
> /usr/bin/ld: cannot find -lgfortran
> /usr/bin/ld: skipping incompatible
> /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so when searching for
> -lgfortran
> /usr/bin/ld: skipping incompatible
> /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc_s.so when searching for
> -lgcc_s
> /usr/bin/ld: cannot find -lgcc_s
> /usr/bin/ld: skipping incompatible
> /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc_s.so when searching for
> -lgcc_s
> /usr/bin/ld: skipping incompatible
> /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc.a when searching for -lgcc
> /usr/bin/ld: cannot find -lgcc
> /usr/bin/ld: skipping incompatible
> /usr/lib/gcc/x86_64-linux-gnu/4.9/libquadmath.so when searching for
> -lquadmath
> /usr/bin/ld: skipping incompatible
> /usr/lib/gcc/x86_64-linux-gnu/4.9/libquadmath.a when searching for
> -lquadmath
> /usr/bin/ld: cannot find -lquadmath
> /usr/bin/ld: skipping incompatible
> /usr/lib/gcc/x86_64-linux-gnu/4.9/libquadmath.so when searching for
> -lquadmath
> /usr/bin/ld: skipping incompatible
> /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc_s.so when searching for
> -lgcc_s
> /usr/bin/ld: cannot find -lgcc_s
> /usr/bin/ld: skipping incompatible
> /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc_s.so when searching for
> -lgcc_s
> /usr/bin/ld: skipping incompatible
> /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc.a when searching for -lgcc
> /usr/bin/ld: cannot find -lgcc
> collect2: error: ld returned 1 exit status
> Это можно исправить, пожалуйста?
> Принципиально интересует возможность
> компиляции 32битных исполняемых
> файлов на gfortran-4.*. Конкретный кластер
> не имеет значения.
>
> Спасибо!
>
> --
> С уважением,
> Кузина Екатерина
> _______________________________________________
> hpc mailing list
> hpc at lists.mephi.ru
> https://lists.mephi.ru/listinfo/hpc
--
С уважением,
инженер отдела UNIX-технологий НИЯУ МИФИ,
к.ф.-м.н.,
Аникеев Артем.
e-mail: anikeev at ut.mephi.ru
тел.: 8 (495) 788-56-99, доб. 8998
More information about the hpc
mailing list