LINUX.ORG.RU
ФорумTalks

Взаимное кредитование машинного времени для компиляции Gentoo

 , , , ,


0

1

Вот есть проекты вычислений вроде SETI@home, так почему бы не быть аналогичному проекту для Gentoo?

Поясню мысль начав с очевидного. Неудобство Gentoo в том, что пакеты приходится компилировать. Есть конечно возможность использовать заранее скомпилированные пакеты, но тогда просто пропадает «изюминка» Gentoo, его гибкость. Если пользователь хочет использовать эту изюминку, то он или должен обладать быстрым и современным компьютером или же большим терпением. Но я вижу третий вариант.

Даже если у тебя компьютер не ахти какой быстрый, то скорее всего, даже в этом случае, значительную часть времени процессор работает вполсилы(или даже ещё меньше). Если бы ты знал наперёд, что через неделю тебе понадобится пакет Х, то ты уже давно его скомпилировал бы за счёт этих времён работы вполсилы(разумеется нужно оставлять некий процент в качестве резерва, дабы компьютер не тормозил). Беда в том, что зачастую хочется пакет ИМЕННО СЕЙЧАС.

Но что если бы ты мог ОДОЛЖИТЬ машинное время у кого-то, кто имеет настолько быстрый компьютер, что он скомпилирует твою прогу в два счёта? А потом этот компьютер запоминает, что за твоим компьютером должок, и потом твой компьютер будет «отрабатывать» машинное время во время простоев. Если твой компьютер отказывается платить по счетам, то этот компьютер больше не предоставляет машинное время в кредит и понижает рейтинг репутации твоего компьютера. Другие компьютеры будут уже более неохотно давать тебе машинное время в кредит, ибо перед одалживанием они опрашивают других компьютеров(или центральную базу данных) об твоей репутации, и чем она ниже, тем меньше будет желающих(в крайнем случае исключение будут составлять чистые альтруисты и авантюритсы.Хозяин компьютер через клиент будет ставить соответствующие настройки, об том насколько он желает давать в долг неблагонадёжным компьютерам)

Разумеется тут возможен миллион подводных камней и вопросов. Например: «Как надёжно идентифицировать участников? А вдруг кто-нибудь подсунет malware в скомпилированный софт? Возможна ли полная децентрализация, или же некая централизация является неизбежным злом?»

Но самый главный вопрос, является ли эта концепция, «распределённая сеть для взаимного кредитования машинного времени» жизнеспособной? Как думаете? Если нет, то почему?

Deleted

1) USE флаги 2) Тормозные сети 3) 80% программ собирается за считанные секунды

Вот примерно поэтому оно и не нужно. Если у тебя парк серверов, ты просто настраиваешь всё более-менее одинаково и выделяешь один сервер в качестве сборщика. Ну или настраиваешь distcc.

kirk_johnson ★☆ ()

Идея неплоха для тех, у кого машинки более чем пятилетней давности, и кто сидит на ~arch ветке. Можно теоретически через distcc прикрутить. Вот возьми и напиши:-)

leg0las ★★★★★ ()

Предлагаю вариант проще — у каждого пакета количество комбинаций параметров компилирования конечно. Адекватных комбинаций параметров — единицы.
Поэтому просто организовать индекс — машина такая-то, есть такой-то пакет с такими-то параметрами. Кому припёрло откомпилировать коммит черытёхминутной давности — сделает сам. А у других будет возможность скачать пакеты на любой вкус.
Эдакий торрент.
Защита от малваре — по хешам. Если у большинства источников пакетов определённой архитектуры и определённых параметров хеш такой, а у кого-то другой, то этот другой — враг.

Stahl ★★☆ ()
Ответ на: комментарий от kirk_johnson

Тормозные сети

Вы, простите, в какой стране живете? Если в банановой республике, то ок. У нас «до 100 мбит» с вполне отвечающей написанному скоростью - 4-6$.

leg0las ★★★★★ ()
Ответ на: комментарий от Stahl

Если брать юз флаги - да. Если опции компилятора под проц - то вариантов дохренище.

leg0las ★★★★★ ()
Ответ на: комментарий от leg0las

Вы, простите, в какой стране живете? Если в банановой республике, то ок. У нас «до 100 мбит» с вполне отвечающей написанному скоростью - 4-6$.

И чо? Пока твой софт ищет чуваков в сети, сверяет USE'ы, качает зависимости, собирает зависимости, собирает твой софт и передает тебе всё собранное, ты уже успеешь сделать это сам.

kirk_johnson ★☆ ()
Ответ на: комментарий от leg0las

Сколько? 100-200? А сколько машин? Не так уж и много вариантов получится.

Stahl ★★☆ ()
Ответ на: комментарий от Stahl

Защита от малваре — по хешам. Если у большинства источников пакетов определённой архитектуры и определённых параметров хеш такой, а у кого-то другой, то этот другой — враг.

Прекрасно, а как решать проблему первого собравшего? Сравнивать не с кем.

kirk_johnson ★☆ ()
Ответ на: комментарий от kirk_johnson

По-моему тот же distcc немного не так работает. Не проще ли отдавать src.c/src.cpp файл с флагами сборки сразу? - мол вот флаги, жри. Передача файлика, параметров сборки, и возврат результата должен быть быстрее. А теперь представь, что ты сразу сотне хостов раздал пачку (каждому) исходных .c файлов.

leg0las ★★★★★ ()
Ответ на: комментарий от leg0las

По-моему тот же distcc немного не так работает. Не проще ли отдавать src.c/src.cpp файл с флагами сборки сразу? - мол вот флаги, жри. Передача файлика, параметров сборки, и возврат результата должен быть быстрее. А теперь представь, что ты сразу сотне хостов раздал пачку (каждому) исходных .c файлов.

Примерно через неделю половина хостов будет отдавать тебе трояна.

kirk_johnson ★☆ ()
Ответ на: комментарий от kirk_johnson

1) USE флаги

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

3) 80% программ собирается за считанные секунды

Тогда почему бы не использовать взаимное кредитование машинного времени для 20% остальных программ? Плюс такая сеть была бы полезной для владельцев маломощных компов, типа касса взаимопомощи.

2) Тормозные сети

Это да, но с ростом сети этот фактор должен смягчиться. К тому же, если использовать кредитование для действительно ресурсоёмких пакетов, то эта проблема нивелируется сама собой. В самом деле, ну и что, что час пакет пересылается, когда компиляция занимает 9 часов?

Deleted ()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от kirk_johnson

Никак. Только доверие. Стрёмно? Подожди пока кто-то ещё соберёт. Ну или собери сам.

Stahl ★★☆ ()
Ответ на: комментарий от Stahl

Предлагаю вариант проще — у каждого пакета количество комбинаций параметров компилирования конечно.

Я надеюсь, ты осознаешь, что количество комбинаций будет 2^N? У того же ffmpeg 87 флагов.

hateyoufeel ★★★★★ ()
Ответ на: комментарий от Deleted

Легко сказать. А если пользователь и комплирует потому, что хочет поэкспериментировать с разными флагами? Согласитесь, пользователю без опыта будет трудно понять что действительно ненужно и когда. А для этого нужен опыт.

Я бы посоветовал перестать заниматься такой ерундой и найти себе женщину. У желающих поиграться и так есть мощные сборочные сервера.

Тогда почему бы не использовать взаимное кредитование машинного времени для 20% остальных программ? Плюс такая сеть была бы полезной для владельцев маломощных компов, типа касса взаимопомощи.

Потому что поддерживать такую штуку ради сокращения времени компиляции раз в месяц особо никому не интересно?

Это да, но с ростом сети этот фактор должен смягчиться. К тому же, если использовать кредитование для действительно ресурсоёмких пакетов, то эта проблема нивелируется сама собой. В самом деле, ну и что, что час пакет пересылается, когда компиляция занимает 9 часов?

Для этого мейнтейнеры уже сделали -bin пакеты.

kirk_johnson ★☆ ()
Ответ на: комментарий от Stahl

Никак. Только доверие. Стрёмно? Подожди пока кто-то ещё соберёт. Ну или собери сам.

Доверие? В Сети? Ты упоролся?

kirk_johnson ★☆ ()
Ответ на: комментарий от hateyoufeel

Я надеюсь ты контр-осознаёшь, что 95% используют всего 5-10 вариантов?

Stahl ★★☆ ()
Ответ на: комментарий от Stahl

Еще можно собирать с разными версиями библиотек и разными версиями gcc. Если перемножить все, получится много. Но в принципе можно сделать :)

goingUp ★★★★★ ()
Последнее исправление: goingUp (всего исправлений: 1)
Ответ на: комментарий от Stahl

Я надеюсь ты контр-осознаёшь, что 95% используют всего 5-10 вариантов?

Такие люди используют Debian.

kirk_johnson ★☆ ()
Ответ на: комментарий от kirk_johnson

Пф-ф-ф. Ты доверяешь компилятору из сети. Ты доверяешь исходникам из сети. Ты много чему доверяешь.
Ты вообще уверен, что я читаю твоё сообщение так, как ты его написал, а не движок ЛОРа подсовывает мне нечто иное?
На доверии работает почти всё. И почти везде.
Хеш — какая-никакая, но защита. Невелика вероятность, что большинство членов сообщества захотят обмануть других одинаковым образом.

Stahl ★★☆ ()
Ответ на: комментарий от kirk_johnson

У желающих поиграться и так есть мощные сборочные сервера.

Я желаю поиграться с флагами в Gentoo, но у меня нет мощного сборочного сервера. Доктор, ЧЯДНТ?

Потому что поддерживать такую штуку ради сокращения времени компиляции раз в месяц особо никому не интересно?

Ну по идее взаимное кредитование машинного времени это штука универсальная, а компиляция Gentoo это лишь конкретное применение. Может быть можно придумать и другие варианты чтобы сеть не простаивала?

Deleted ()
Ответ на: комментарий от Stahl

Пф-ф-ф. Ты доверяешь компилятору из сети. Ты доверяешь исходникам из сети. Ты много чему доверяешь.

Ты вообще уверен, что я читаю твоё сообщение так, как ты его написал, а не движок ЛОРа подсовывает мне нечто иное? На доверии работает почти всё. И почти везде. Хеш — какая-никакая, но защита. Невелика вероятность, что большинство членов сообщества захотят обмануть других одинаковым образом.

Разумеется, мне приходится чему-то доверять. Потому что я не могу написать весь софт сам. И я в целом доверяю разработчикам Gentoo, потому как они особо ни в чем замешаны не были. Но я не доверяю непонятному чуваку из сети собирать мои пакеты, потому что могу сделать это сам.

kirk_johnson ★☆ ()
Ответ на: комментарий от Deleted

Я желаю поиграться с флагами в Gentoo, но у меня нет мощного сборочного сервера. Доктор, ЧЯДНТ?

This:

у меня нет мощного сервера

Ну по идее взаимное кредитование машинного времени это штука универсальная, а компиляция Gentoo это лишь конкретное применение. Может быть можно придумать и другие варианты чтобы сеть не простаивала?

Уже придумали. Перестать страдать ерундой и пожертвуй время на расшифровку генома или обсчет Rainbow Tables.

kirk_johnson ★☆ ()
Ответ на: комментарий от kirk_johnson

Э-э-э... Ну тогда этот тред вообще не для тебя. Обеспечить доказательство честности — невозможно иначе, кроме как статистическими методами.
Но если тебе и они не подходят, то ты можешь только собирать сам. Других у тебя вариантов нет.

Stahl ★★☆ ()
Ответ на: комментарий от Stahl

Я надеюсь ты контр-осознаёшь, что 95% используют всего 5-10 вариантов?

95% пьют водку. А Gentoo - это для тонкой настройки.

hateyoufeel ★★★★★ ()

найди vps с доп.пакетом чтоб включать ресурсы по требованию (за бабки, разумеется). Затык в твоей идее имхо как раз в отработке. Мне такая штука пригодилась бы только для нетбука, но заставлять атом первых серий что-то отработать - дохлая затея. Проще на рабочий сервак втихую distcc вкачать и юзать раз в неделю-две.

upcFrost ★★★★★ ()
Ответ на: комментарий от hateyoufeel

А ещё 95% процентов делают вид, что не понимают о каких 95% идёт речь.

Stahl ★★☆ ()
Ответ на: комментарий от Deleted

Я тебе указал на то, что ты делаешь неправильно. Ты не купил себе сборочный сервер. Он обойдется тебе всего в 40k.

kirk_johnson ★☆ ()
Ответ на: комментарий от Stahl

По хэшам

Защита от малваре — по хешам.

Почему бы просто не использовать Guix или Nix? Там все пакеты можно собирать из исходников, а можно и не собирать, потому что бинарники гарантированно получаются с теми же контрольными суммами.

Camel ★★★★★ ()
Ответ на: По хэшам от Camel

Понятия не имею. Если оно так работает, то почему бы и не использовать?
Вероятно потому, что ни ТС ни я не знали о таких штуках и никогда ими не пользовались.

Stahl ★★☆ ()
Ответ на: комментарий от kirk_johnson

Ты не купил себе сборочный сервер.

А нечего, что я вообще-то домашний пользователь, а не админ серверной?

Ты не купил себе сборочный сервер.

Я что-то Вас понять не могу. То вы говорите, что 80% пакетов компилируется быстро, то говорите что сборочный сервер нужен. Так программы в 80% случаев компилируются быстро только со сборочным сервером или без него тоже?

Deleted ()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: комментарий от Deleted

Я что-то Вас понять не могу. То вы говорите, что 80% пакетов компилируется быстро, то говорите что сборочный сервер нужен. Так программы в 80% случаев компилируются быстро только со сборочным сервером или без него тоже?

Что ты несешь?

kirk_johnson ★☆ ()
Ответ на: комментарий от Deleted

А нечего, что я вообще-то домашний пользователь, а не админ серверной?

Зачем тебе Gentoo, если ты не хочешь компилировать?

Я что-то Вас понять не могу. То вы говорите, что 80% пакетов компилируется быстро, то говорите что сборочный сервер нужен. Так программы в 80% случаев компилируются быстро только со сборочным сервером или без него тоже?

В 100% случаев хватает Core i7 и нескольких гигабайтов памяти.

hateyoufeel ★★★★★ ()
Ответ на: комментарий от hateyoufeel

В 100% случаев хватает Core i7 и нескольких гигабайтов памяти.

А как насчёт бюджетного ноутбука?

Потому что поддерживать такую штуку ради сокращения времени компиляции раз в месяц особо никому не интересно?

Кстати, у меня есть мысль. Эту штуку можно было бы реализовать/совместить c/для клиентов пуллов криптовалют. Никакого простоя тогда не будет.

Deleted ()
Ответ на: комментарий от Deleted

А как насчёт бюджетного ноутбука?

Что такое бюджетный ноутбук?

hateyoufeel ★★★★★ ()
Ответ на: комментарий от Deleted

Гентукоин. Собраный firefox - 5 гентукоинов, libreoffice - 8 :)

goingUp ★★★★★ ()
Ответ на: комментарий от hateyoufeel

Это ноутбук, который можно купить за 1 бюджет среднестатистической банановой республики.

Stahl ★★☆ ()

предлагаю вариант проще: просто дарить компьютерное время.

dikiy ★★☆☆☆ ()
Ответ на: комментарий от leg0las

Вы, простите, в какой стране живете? Если в банановой республике, то ок. У нас «до 100 мбит» с вполне отвечающей написанному скоростью - 4-6$.

страна Германия - 100mbit - 25-30€/месяц. 16mbit - 17€/месяц. Как тебе такая банановая республика?

dikiy ★★☆☆☆ ()

а так-то я тоже не понимаю ТС. Генту для тех, кто любит канпелять. Пчелы прротив меда?

dikiy ★★☆☆☆ ()

Если нет, то почему?

Потому что даже современные телефоны без проблем справляются с этой задачей.

tfs ()
Ответ на: комментарий от Harald

да в общем-то тоже не очень дорого

но не 4-6$, как тут вещали.

dikiy ★★☆☆☆ ()

Есть другое предложение.

Сервер ведёт список клиентов. У каждого клиента от 1 до нескольких виртуальных машин. Менеджер виртуальных машин записывает и отправляет в реальном времени график загрузки, учитывая занимаемые мегабайты памяти и процессорную мощность.

Клиент подключается к тем у кого хочет арендовать вычислительные мощности и передаёт данные OpenVPN подключения. Арендованные вычислительные машины подключаются к клиенту через OpenVPN и загружают операционную систему из NFS каталогов. Допустим 100 мегабайтный начальный образ с ядром и базовой системой. Соединение зашифровано и по ssh доступна полная телеметрия с виртуальных машин. Когда арендованные машины выполняют нужную задачу, они выключаются и закрывают OpenVPN соединение.

Например если у кого то 8 ядерный центральный процессор, он может отдать одно ядро в аренду. Измерять вычислительные мощности следует при помощи периодического подключения специального бенчмарка который будет замерять действительно предлагаемые мощности. Дабы клиенты в целях накрутки очков не понижали выделяемое процессорное время дабы имитировать полную загрузку.

rezedent12 ☆☆☆ ()
Ответ на: комментарий от dikiy

зато в Германии пособия бездельникам, они ж не из воздуха берутся :)

Harald ★★★★★ ()
Ответ на: комментарий от rezedent12

А зачем клиентам виртуальные машины? Мне кажется я чего-то недопонимаю.

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.