Что то типа путевых записок, и размышлений об жизни, ну и о FreeBSD конечно, иногда какие нибудь новости и что то типа переводов.

26.03.2009

Многопоточная сборка портов и остальное

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

Ivan Voras напоминает как легко установить Java для FreeBSD, и что она довольна стабильна, там в комментариях, народ даже отмечает, что с новым планировщиком ULE, она работает быстрее, но при использовании IPv6 возможны проблемы.

Gleb Kurtsou пишет что добавлена возможность фильтрации layer2 для dummynet, патчи можно найти или в его заметке, ну и в p4 судя по рассылке они уже есть, подробнее особо ничего не скажу, но вдруг кому пригодится :)

Murray Stokely пишет, о том что на ютуб канал залито видео с конференции AsiaBSDCon 2008, сам посмотрел только мельком заголовки, есть даже пара докладов о NetBSD и OpenBSD.

Murray Stokely так же анонсировал, Summer of Code 2009, информацию о планах FreeBSD сообщества можно посмотреть на официальном сайте, так же новость прошла в рассылке, и подготовлено несколько вариантов постера
FreeBSD gsoc poster
Хотел перевести его на русский, но что то не получилось так же кратко сформулировать, так что кому надо придется запастись переводчиком :)

Ну наверное и хватит, кстати если кто не заметил то почти все эти новости проскакивали в ленте избранного "То что мне понравилось" которая находится слева, там висит несколько последних ссылок, но можно подписаться на РССку, там обычно появляются ссылки которые приглянулись мне в чужих блогах, может кому интересно, кроме меня.
Кстати пока разбирался как перевести постер, поставил себе несколько графических редакторов, может чего и переведу из агитационных материалов, авось это не запредельно сложно, только вот русские шрифты вроде смотрятся сильно по другому, надо видно подобрать подходящий, иначе картинка просто уродуется :(

5 комментариев:

  1. Т. е. оно сможет несколько портов собирать одновременно чтоль?

    А то просто распараллелить сборку одной проги можно с помощью простой опции для make и это давно уже юзается в Gentoo portage/MacPorts всеми интересующимися юзерами.

    Однако, мои эксперементы над Gentoo показывали и обратные черты таких распараллеливаний. Например, когда проц всего один и его хотят скажем три потока GCC, только они и получают его - даже сёрфить по сеть становится совсем не быстро. Так же это увеличивает расход памяти - когда у моего десктопа было всего полгига оперативы, приходилось некоторые тяжёлые проги собирать одним потоком, ибо spaw я по идеологическим соображениям не использовал.

    ОтветитьУдалить
  2. Не именно многопоточно один порт, а какой смысл сразу собирать несколько?

    Ну я ж и написал что раньше можно было, но не штатно, а тут вводят это в штатный режим, хотя пока многие порты принудительно собираются в один поток, можно посмотреть в рассылке http://lists.freebsd.org/mailman/listinfo/cvs-all там сейчас массово проставляется MAKE_JOBS_SAFE

    Ну а нагрузка на проц из за распарралеливания имеет место быть, но например мир и ядро я собираю в 3-5 потоков, и при этом вполне можно жить, подлагивает конечно периодически но не смертельно, да правда система двухголовый центрино-дуо, с 3Г оперативы, но таковы реалии что это сейчас скорее норма :)

    ОтветитьУдалить
  3. две головы и три потока это и есть примерно как одна голова и один поток =)

    Про несколько портов параллельно - ну скажем зависимости. Т е пусть прога А зависит от либ Б и В - ИМХО былоб интересно собрать либы одновременно в разных потоках.

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

    ОтветитьУдалить
  5. лагов в распараллеленной сборке можно избежать, если запускать make через idprio(1). Напр,

    $ idprio 31 make install clean

    а так можно пометить portupgrade со уже запущенными инстанциями make и gcc

    $ pgrep -f portupgrade make cc1 | xargs -n1 -I% idprio 31 -%

    Реалтаймовский приоритет можно посмотреть в колонке NICE в top(1).

    ОтветитьУдалить

Здесь можно записать свои мысли о посте :)
Если ваш ответ не появился сразу, не паникуйте, тут работает спамоловка, и вероятно вы угодили в неё, так как были анонимом или в вашем посте ссылка, ну или вас не любит google.
Я проснусь и одобрю комент ;)