Пересборка пакета для увеличения производительности (Нужно пересобрать Atlas и Lapack)
Модераторы: Warderer, Модераторы разделов
-
Ortis
- Сообщения: 117
- ОС: Mandriva 2011, Kubuntu 12.04
Пересборка пакета для увеличения производительности
Я пользователь Дебиана около 2 лет, но ни разу не собирал сам пакеты, только пользовался готовыми, как с официальных, так и со сторонних репозиториев. Имеется следующая проблема: необходимо считать научные задачки, вычисления занимают часы или даже несколько суток. При вычислениях большую работу делаю через Lapack, поэтому хочется пересобрать Lapack и Atlas с использованием хотя бы SSE3 (расчёты ведутся на процессоре семейства core2). Никакие другие флаги менять я не собираюсь. Как это сделать простейшим способом?
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Пересборка пакета для увеличения производительности
Коротко: проще всего модифицировать существующий пакет.
Что нужно:
1. Поставить пакеты build-essential и dpkg-dev.
2. Добавить в sources.list репозитории исходников — достаточно тех, в которых лежат те пакеты, которые Вас интересуют. Для этого скопируйте в sources.list строчку нужного репозитория и замените в начале строки "deb" на "deb-src". Не забудьте сделать apt-get update после этого.
3. Установить нужные пакеты исходников со всеми зависимостями, необходимыми для сборки. Проще всего это сделать, наверное, командой apt-src install package (команда ставится из пакета apt-src). В будущем, эта команда может обновлять исходники до новых версий пакета сохраняя Ваши модификации.
4. Модифицировать, что нужно. Конкретно для вашего случая: сборка пакета производится makefile'ом debian/rules, копать надо начинать с него. (см. Main building script: debian/rules)
5. Добавить запись в debian/changelog — из нее при сборке будет взята версия пакета. Запись должна иметь определенный формат, поэтому лучше делать по образу и подобию остальных. В версии нужно менять только ту часть, которая идет после дефиса. Желательно в большую сторону. (см. Debian changelog: debian/changelog, Version).
6. Собрать пакет командой dpkg-buildpackage -rfakeroot в каталоге пакета (в том, в котором каталог debian, а не в самом debian/ или где еще). Если ничего не накосячено, пакет успешно соберется и появится в каталоге уровнем выше.
7. PROFIT.
Чтобы удобно было использовать, я бы рекомендовал сложить собранные пакеты в свой локальный репозиторий и поиграть с apt-preferences, чтобы дистрибутивные версии не заменяли собранные пакеты когда ни попадя.
P.S. Всё, кроме установки пакетов, делается с правами пользователя, а не root.
Что нужно:
1. Поставить пакеты build-essential и dpkg-dev.
2. Добавить в sources.list репозитории исходников — достаточно тех, в которых лежат те пакеты, которые Вас интересуют. Для этого скопируйте в sources.list строчку нужного репозитория и замените в начале строки "deb" на "deb-src". Не забудьте сделать apt-get update после этого.
3. Установить нужные пакеты исходников со всеми зависимостями, необходимыми для сборки. Проще всего это сделать, наверное, командой apt-src install package (команда ставится из пакета apt-src). В будущем, эта команда может обновлять исходники до новых версий пакета сохраняя Ваши модификации.
4. Модифицировать, что нужно. Конкретно для вашего случая: сборка пакета производится makefile'ом debian/rules, копать надо начинать с него. (см. Main building script: debian/rules)
5. Добавить запись в debian/changelog — из нее при сборке будет взята версия пакета. Запись должна иметь определенный формат, поэтому лучше делать по образу и подобию остальных. В версии нужно менять только ту часть, которая идет после дефиса. Желательно в большую сторону. (см. Debian changelog: debian/changelog, Version).
6. Собрать пакет командой dpkg-buildpackage -rfakeroot в каталоге пакета (в том, в котором каталог debian, а не в самом debian/ или где еще). Если ничего не накосячено, пакет успешно соберется и появится в каталоге уровнем выше.
7. PROFIT.
Чтобы удобно было использовать, я бы рекомендовал сложить собранные пакеты в свой локальный репозиторий и поиграть с apt-preferences, чтобы дистрибутивные версии не заменяли собранные пакеты когда ни попадя.
P.S. Всё, кроме установки пакетов, делается с правами пользователя, а не root.
Мои розовые очки
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Пересборка пакета для увеличения производительности
а в ридми не написали, как пересобрать?
http://packages.debian.org/changelogs/pool...version3.8.3-25
или написали недостаточно подробно?
http://packages.debian.org/changelogs/pool...version3.8.3-25
QUOTE писал(а):See README.Debian on how to rebuild Atlas optimized packages.
или написали недостаточно подробно?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Ortis
- Сообщения: 117
- ОС: Mandriva 2011, Kubuntu 12.04
Re: Пересборка пакета для увеличения производительности
sash-kan писал(а): ↑09.11.2011 14:49а в ридми не написали, как пересобрать?
http://packages.debian.org/changelogs/pool...version3.8.3-25
See README.Debian on how to rebuild Atlas optimized packages.
или написали недостаточно подробно?
Я не смог выцепить достаточно информации, хотя и приступал к ней 2 раза. Впрочем, не поручусь, что это невозможно.
-
Ortis
- Сообщения: 117
- ОС: Mandriva 2011, Kubuntu 12.04
Re: Пересборка пакета для увеличения производительности
watashiwa_daredeska писал(а): ↑09.11.2011 12:53Коротко: проще всего модифицировать существующий пакет.
Что нужно:
1. Поставить пакеты build-essential и dpkg-dev.
2. Добавить в sources.list репозитории исходников — достаточно тех, в которых лежат те пакеты, которые Вас интересуют. Для этого скопируйте в sources.list строчку нужного репозитория и замените в начале строки "deb" на "deb-src". Не забудьте сделать apt-get update после этого.
3. Установить нужные пакеты исходников со всеми зависимостями, необходимыми для сборки. Проще всего это сделать, наверное, командой apt-src install package (команда ставится из пакета apt-src). В будущем, эта команда может обновлять исходники до новых версий пакета сохраняя Ваши модификации.
4. Модифицировать, что нужно. Конкретно для вашего случая: сборка пакета производится makefile'ом debian/rules, копать надо начинать с него. (см. Main building script: debian/rules)
5. Добавить запись в debian/changelog — из нее при сборке будет взята версия пакета. Запись должна иметь определенный формат, поэтому лучше делать по образу и подобию остальных. В версии нужно менять только ту часть, которая идет после дефиса. Желательно в большую сторону. (см. Debian changelog: debian/changelog, Version).
6. Собрать пакет командой dpkg-buildpackage -rfakeroot в каталоге пакета (в том, в котором каталог debian, а не в самом debian/ или где еще). Если ничего не накосячено, пакет успешно соберется и появится в каталоге уровнем выше.
7. PROFIT.
Чтобы удобно было использовать, я бы рекомендовал сложить собранные пакеты в свой локальный репозиторий и поиграть с apt-preferences, чтобы дистрибутивные версии не заменяли собранные пакеты когда ни попадя.
P.S. Всё, кроме установки пакетов, делается с правами пользователя, а не root.
Спасибо большое!
Пункты 1-2 выполнил. Для 3 потребовалось доставить ещё несколько бинарных пакетов: liblapack-pic libblas-test cdbs, поставил на закачку, но интернет сегодня дохлый. Завтра продолжу.
-
Ortis
- Сообщения: 117
- ОС: Mandriva 2011, Kubuntu 12.04
Re: Пересборка пакета для увеличения производительности
watashiwa_daredeska писал(а): ↑09.11.2011 12:534. Модифицировать, что нужно. Конкретно для вашего случая: сборка пакета производится makefile'ом debian/rules, копать надо начинать с него. (см. Main building script: debian/rules)
Запускаю debian/rules, плюётся и ничего не делает. Не совсем понял пока, почему.
Код: Выделить всё
aelius@c2d-3:~/ComputerScience/rebuild/atlas-3.8.3$ ./debian/rules
/usr/share/cdbs/1/rules/simple-patchsys.mk:31: WARNING: simple-patchsys.mk is deprecated - please use source format 3.0 (quilt) instead
test -x debian/rulesПрочитал руководство на Странице Debian, прочитал /debian/rules --help, решения пока не нашёл.
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Пересборка пакета для увеличения производительности
Его не надо запускать. Его запускает dpkg-buildpackage.
Мои розовые очки