Выпуск 2
Активные российские проекты в BOINC
Максим Манзюк (hoarfrost) – ИТ–разработчик из Волгограда. Давно увлекается распределенными вычислениями, помогает поддерживать сервера российских проектов RakeSearch и SiDock, поддерживает ARM-кластер «Соловей».
В течение выпусков общаемся о том, как устроен BOINC со стороны ученого и сисадмина, оцениваем мощность, доступную российским учёным. Заглядываем в перспективы использования BOINC на новых платформах вплоть до Playstation.

Транскрибация

Всем привет! Мы начинаем второй выпуск подкаста про распределенные вычисления У нас сегодня в гостях Максим Манзюк из Волгограда. Он довольно давно занимается распределенными вычислениями. Я, когда делал свои первые опыты в этом направлении, связывался с Максимом, потому что довольно видный, заметный деятель этой сферы. Максим, слово тебе. Расскажи, пожалуйста, пару слов о себе. Давай познакомимся. В данный момент я являюсь сотрудником антисферы. Мне нравилось то, что связанное с компьютерами еще со школы. И когда я учился программировать, то мне, конечно, было интересно попробовать смоделировать что-то на компьютере. Поведение каких-то материальных точек, как они будут сжиматься в какую-то туманность, планету. У меня была, например, когда-то школьная работа по моделированию дифракции электромагнитных волн, например, радиоволн и световых на разных отверстиях. И с самого начала я воспринимал компьютер как некую машину, которая позволяет что-то сделать в науке. Мне это было всегда интересно. В саму науку я не пошел. Я пошел учиться на факультет электроники, врачники и техники. Я стал профессиональным программистом, потому что сама по себе эта область тоже очень похожа, как мне кажется, на науку. Потому что ты сначала исследуешь предметную область, ты устанавливаешь какие-то законы, которые в ней действуют. Ты эти законы пытаешься как-то формализовать и воплотить в виде какого-то просто программного нематериального объекта, на котором тоже работаешь. Сочетание вот этих двух компонентов, восприятие машины, компьютера как именно средства вычисления, средства моделирования чего-то. С другой стороны, эта работа в антиотражной, она мне помогала и по самой работе. Потому что когда в определенный момент я столкнулся с базами данных, очень полезно оказалось понимать, насколько тот или иной процессор может быть быстрее, что могут на самом деле те или иные процессоры, как бы наивный глупо это сейчас не звучало. Была, например, ситуация, когда мы просто смогли выставить начальству необходимость перемежда на новый сервер, который формально выглядел, может быть, не таким уж и мощным, но именно просто проверив его реальную производительность, мы показали, что он уже весьма-весьма устарел и после перемежды на новый сервер система стала работать раз в 10 быстрее. Прямо в 10 раз? Да. Производительность процессора там была не в 10 раз быстрее, но из-за того, что там использовалась база данных, скажем так, блокировочного типа, ускорение где-то в 2-2,5 раза по процессору, оно привело к тому, что стало меньше проблем внутри базы и просто система начала так работать. В целом, такое постоянное общение с людьми, которое, ну, всегда как-то награжает свое железо, просто и постоянный такой интерес к этой области, с одной стороны, свободное от работы время, с другой стороны, задачи, именно возникающие по работе, они привели к тому, что одно помогает другому. То есть в итоге, как люди увлекаются, например, тем, чтобы из своего автомобиля выжать максимум, просто потому что им нравится это, они это делают ради искусства, но потом они эти знания могут использовать в чем-то другом. Да, да. Кроме этого, некоторые аналогии, которые используются в распределенных решениях, понятия, они иногда при переносе в рабочую область, они могут давать хороший эффект. Ну, например, перенятие, понятие ворфьюника, которое используется в выдаче заданий и переносово там в очень небольшую систему, которую приходилось мне делать на работе, она была вспомогательной, но она улучшила работу, ну, несколько десятков человек на своем небольшом поле. А если не секрет, чем ты разрабатываешь, то есть что ты разрабатываешь, на чем пишешь? Сейчас, если говорить о каких-то рабочих задачах, я больше занимаюсь даже администрированием, но если нужно что-то написать, то там C++ или даже скриптовые языки, ну, вообще там SQL и языки, связанные с базами данных, в зависимости от того, что мне придется делать. В начале своей деятельности я принимал участие и занимался именно разработкой ПО, то есть мы прямо писали бизнес-приложения нашим подразделениям, потом постепенно я ушел в администрирование баз данных, ну, сейчас я на стыке баз данных и разработки. А как связано с распределенными вычислениями? Ну, то есть, как разработчик, наверное, довольно такой обычный путь, интересовался компьютерами, хотелось что-то из них получить, для этого пришлось научиться программировать, это стало хорошей профессией, а как связался с распределенными вычислениями? Познакомился я с ними, как и большинство, по-моему, людей, да, случайно, потому что я одновременно увлекаюсь астрономией, здесь на сайте astronet.ru рубрика такая, картинка дня, и однажды в ней была, в очередной день была публикована картинка, связанная с City Hall, прочитав ее, я вспомнил, что еще когда учился на первом или втором, или третьем, может быть, курсе, я читал в компьютере об этом проекте, тогда участие в нем казалось чем-то трудным, потому что, ну, тогда интернет был еще по диалогу, были сложности с дозвоном и прочее, прочее. Извиняюсь, да, сделаю небольшую ремарку, да, что City at Home это такой проект, который крутится также на Боинке, который помогает из огромного количества радиосигналов, которые человечество зарегистрировало на радиотелескопах и другими средствами, помогает из них отобрать кандидатов на то, чтобы эти сигналы считались искусственного происхождения, это, наверное, один из первых проектов, которые запустились в Боинке, по-моему, даже он был раньше, чем Боинг. Да, Боинг вырос из City at Home, City не был первым проектом распределенных вычислений, вообще, какой первым называть, это отдельная интересная история, но Боинг был создан Дэвидом Андерсеном и его командой, которые в свое время написали City at Home. Ну, пока они ничего не нашли, и как мы ничего не нашли, я тоже участвовал в этом проекте, эта задача, она очень хорошо подходит как раз для распределенных вычислений, я так понимаю, как раз потому, что можно нарезать весь сигнал на кусочки, эти кусочки кормить каждому отдельному компьютеру, каждый отдельный кусочек, и каждый компьютер сам считает, есть ли там какой-то признак искусственного сигнала. Да, именно так, это один из образцово-показательных случаев, когда задача проверится идеально, на независимой блоке, и это то, что нужно как раз распределенным вычислением, по-моему, для этого лучше всего подходит. Мне стало интересно, вот когда я во второй раз его увидел, это был ноябрь 2013 года, и вот так уж получилось, что с 1 декабря 2004 года я начал участвовать в Сети Хоум и распределенных вычислениях вообще. Одновременно стали появляться другие новости, связанные с проектом Эйнштейна Хоум, причем он казался даже еще более дерзким проектом. На мой взгляд, вот именно дерзость целей, которые стали в проекте распределенных вычислений, играет очень большую роль. Она, как мне кажется, это вот мое личное мнение, я не готов его подтвердить какими-то вопросами или исследованиями, но мне кажется это из общения, что сочетание важной научности, то есть цели важной для науки и при этом дерево вот такой дерзости, это вот очень важно для того, чтобы привлечь людей. Если мы берем Сети Хоум, то то есть земного разума — мегазадача. Эйнштейн Хоум ставил перед собой задачу открыть гравитационный волн. Открыть очень интересным образом, изучая фоновый шум, который поступает с гравитационно-волновых детекторов, и выделяя из него то цель, которая могла быть сгенерирована электронными звездами, вращающимися. Мы иногда видим в радиодиапазоне радиопульсары, здесь мы должны были их поймать по гравитационному излучению. И если бы это удалось, это было бы идеальное подтверждение того, что гравитационный волн существует. Потому что если бы мы сначала из данных ЛАИГО, это Лазерный Гравитационный Интерферометр, вычислили бы, что в том-то направлении неба должна находиться электронная звезда, а потом какими-то другими способами нашли ее. Либо, может быть, в оптическом диапазоне, если повезет. Либо у ЛАЙГИНЫ все-таки очень слабый на радио сигнал. Если бы мы так ее нашли, это стопроцентно подчеркивало бы, что мы точно поймали гравитационный волн. Правда, здесь одно «но». Это мое понимание этой ситуации. Я думаю, что если мы перейдем к неким реалиям, по именно точности, с которой определяет местоположение сигнала сами детекторы ЛАЙГИН, ВИРГО, вот сейчас еще дополнительные вводятся, то, скорее всего, там на небе такая площадка большая, на которой должно быть очень много электронных звезд. Но на любом случае, если бы удалось как-то именно таким путем пройти, это был бы очень хороший вариант такого подтверждения. Есть огромный, получается, проект LIGO, который связан с поиском гравитационных волн, который недавно нашумели. Это специальный интерферометр, использующий не только один большой детектор, но еще какие-то для того, чтобы регистрировать гравитационные волны. И данные с этого инструмента, наряду с данными с других средств наблюдения, они поступают в проект Einstein at Home для того, чтобы продолжать искать гравитационные волны, анализировать сигналы, которые приходят от вращающихся нейтронных звезд и так далее. Верно же? Да. Это именно данные, которые оттуда поступают, и это тоже для нас, для участников, было очень важно. Мы понимали, что мы работаем с самыми настоящими данными, с предыдущими, с того же установки. И, например, администраторами Эйнштейна были люди, которые сами участвовали в Live Scientific Collaboration. Более того, в довольно значимую часть времени, может быть, и сейчас даже, я проверял в последний раз довольно давно, несколько месяцев назад, в вычислениях помимо участников были включены еще и кластеры научных институтов, входящих в Live Scientific Collaboration. И, в частности, там Ахмос в такой класте, ну и еще ряд других. И вот когда люди видели это, они понимали, что да, это фундаментальная задача, она действительно интересна ученым, они действительно включили в нее все свои ресурсы, которые есть, и более того, эти ресурсы намного меньше, чем наши. То есть мы все вместе все равно выдаем намного больше. Я еще помню из первых проектов, которые меня заинтересовали, это Climate Prediction. Они пытались обсчитать разные сценарии будущего климата планеты на большие сроки, то есть на тысячи и миллионы лет при разных вводных. И я помню, что у них был красивый скринсейвер, который показывал какое состояние климата в данный момент обсчитывает твой компьютер. В общем, да, вначале там было много хороших проектов, а что считаешь сейчас? Сейчас я большую часть мощностей отдаю в два проекта. В RankSearch, потому что он мне интересен и с математической точки зрения, с другой стороны, я просто знаком с Эдуардом, который как раз выступал в первом подкасте, ну и поэтому еще я знаком с его научной частью. Насколько я его понимаю. Плюс в свое время в RankSearch одна из идей обсчитывалась, которую я, в том числе, выдвигал. Ну, просто болезнь этих проектов, это интересная его тема. Другой проект, The SideEffect Hall по борьбе с коронавирусом, потому что он также при нашем участии в нашем российском целом участии существует по мере возможностей, я помогаю ему работать, но там должна скрипка, конечно, играть. Уже в комедии именно из профильных научных институтов. Из Испании или Италии, насколько я помню. Ну, у нас будет вот следующий выпуск с Натальей Ениезиной, как раз про SideEffect Hall и его научную составляющую.
Что хотелось бы с тобой интересно обсудить. Я так понимаю, ты один из тех людей, которые, ну, запускали проект в Boeing, да, руками. То есть ты вот знаешь, как работает на стороне сервера администратора проекта, как это работает. То есть как задавать задания на общет, как их рассылать, как они возвращаются и так далее. Можешь ли рассказать, в каком проекте ты это делал, как это происходило и вообще что там происходит? Я помогал администрировать, ну, не помогал, я администрировал Raytheon Search и Asydov. Хочу сказать, что в Boeing мы с ним работаем, сделан довольно просто. Может быть не максимально просто, но если есть человек, который объяснил, что к чему, ну, дальше как-то все довольно просто делается. Там, немножко разобраться в базе данных, немножко разобраться в том, что делают его сервисы. И ты понимаешь, что вот у тебя есть файлы на входе, что есть материка, которая при ее вызове формирует задания на основании одного файла, что появляются данные в какой-то таблице, и дальше уже запускается работа его процессов, связанных с выключением. Потом уже он у нас отсчитывается на видео, когда он возвращается. Продолжается работа общего механизма и довольно элегантно, красиво сделано. Может быть не идеально, можно подрезерваться к чему-то, но легко. Я так понимаю, довольно гибко сделано? Да, да. Правильно ли я просто все представляю, если упрощен, да? То есть для того, чтобы запустить свой проект в Boeing, нужно запустить свой сервер, подключить его к чему? Не к чему можно, а чтобы появиться в списке проектов, в общем-то тоже ничего не надо, да? Потому что ты просто добавляешь в клиенте URL проекта, к которому хочешь подключиться, и подключаешься. Развертывание проекта – это, по сути, запуск на метной машине, которая видна в интернете. Лучше, конечно, если по сетевому имени, но как минимум два проекта, может быть даже больше, в свое время начинали просто с IP-адреса, и только потом у них появлялось нормальное сетевое имя. На сервере разворачивается база данных, настраиваются сервисы Boeing, или, как иногда говорим, Boeing сервера, после чего он, ну, регулируется заданием, начинается их раздача тем, кто уже подключился. Ну, как правило, никто сначала не знает. Подключаешься сам, проверяешь, что задания приходят, расчеты выполняются, результаты возвращаются и проверяются, после этого... Пытаешься сделать проект популярным, то есть или сам рассылаешь, да, или через листинги самого Boeing у них на сайте, пытаешься сделать так, чтобы люди узнали про проект. Да, именно так. Публикуешь информацию на одном из форумов, где подъезжают участники распределенных начислений, у нас это Boeing.ru, или форумы других проектов, которые более-менее популярны, потому что проектов довольно много и, ну, некоторые форумы, они маленькие, а люди собираются на все-таки меньшем числе. Проект может быть активным, а форум может быть небольшим. Ну, в этом ничего страшного. И информация расползается постепенно по командам участников, по самим участникам, и люди подключаются к проекту. Главное становится, чтобы у него была понятная людям задача, чтобы они её воспринимали как полезную или как минимум интересную с точки зрения науки. Важно, чтобы приложение было стабильным, было какое-то адекватное описание, и администрация проекта реагировала на какие-то вопросы, проблемы, которые возникают у участников. А дальше вычисления идут. А что такое задание? Ну, то есть, в эту базу данных должно попасть задание. Задание — это бинарник или это пишется на каком-то более высокоуровневом языке? То есть, что это такое? Хороший вопрос. Можно ввести такую терминологию. Ну, близко распространяющаяся, но может быть, кто-то согласится, кто-то нет. Проект решает некую задачу, большую, глобальную задачу. Задачу проекта. Ну, например, Raysearch ищет новые ODLK и вещи, связанные с этим. Эта задача разделяется на весь фонд задачи. То есть, то, что можно решать независимо. И вот эти фонд задачи, они уже создаются в проекте, как правило, на основе этих входных файлов. И вот когда эта задача уже создана в базе данных, то, как правило, к ней генерируются два задания, которые входят, так, два, три, иногда одно, которые рассылаются к компьютерам пользователей. То есть, мы имеем и Raysearch, большая глобальная задача проекта, задачи, которые решаются независимо друг от друга, и в каждой задаче соответствуют задания, которые уходят на компьютер участников. А вот каждое задание — это, конечно же, вот эти входные данные, которые нужны, чтобы ее решить, и вычислительный модуль, который эти вычисления должны сделать. Как правило, вычислительные модули пишут на эффективных языках, там, C, C++, может быть, кто-то на Assembler даже пишет, ну, не знаю, это нужно уже спрашивать участников. Потому что здесь важна скорость вычислений, нужно из процессора нажимать буквально все. Поскольку глобальная задача, которая решается, как правило, очень большая, то есть ее решения даже в проекте нужны недели, месяцы, иногда и годы, то вычислительный модуль либо редко меняется, либо вообще один раз создается, и все. Он один раз получается компьютером участника, который выполняет вычисление, и лежит, работает, читает. А вот входные данные в виде вот этих, когда маленьких, когда не очень маленьких данных, они присылаются к каждому заданию. То есть в одном проекте, может быть, обычно один вычислительный модуль, да, может быть несколько, может быть несколько работающих параллельно, если я правильно понимаю, есть еще разница по платформам, то есть для разных платформ разные нужно писать вычислительные модули. Совершенно верно. Во-первых, в любом проекте могут быть разные приложения, которые могут решать разные задачи. Кроме этого, у каждого приложения могут быть разные версии. Версии не только в хронологическом смысле, то есть первая версия, вторая, третья, но и версии связанные с разными платформами. x86 и Windows, x86 и Windows. Для ARM сейчас все более и более популярны становятся приложения. Для Android, да? Отдельно. Да, и для Android. Ну это тоже ARM, но Android. А есть ARM и Windows, например. Для CityFall было намного больше всяких разных приложений, платформ и так далее, вплоть до Unix. Ну, наверное, да. Я специально не исследовал, но вполне может быть. Потому что, наверное, этот вычислительный модуль действительно можно реализовать на очень большом числе платформ. Но человеку просто нравится, что железка приносит пользу, даже когда телевизор простаивает. Ну, почему бы и нет? Все равно есть какая-то польза. Кроме этого, проекты бывают разные. Есть проекты, где очень важна вычислительная мощность в операциях с плавающей запятой. Ну, это, как правило, проекты, которые что-то моделируют. Взаимодействие, маневр, если мы говорим о докеринге, поиске лекарств, или вот как в Einstein и CityFall, обработка сигналов. Один из задач, которые требуют целочисленной арифметики. Те же задачи на кодинаториках. Ну, не все, конечно, но многие. Как, например, в RightSearch. Одно время до тихущих поисков у нас было приложение для ARM'ов, и оно очень хорошо работало. Конечно, Raspberry Pi был своднее, чем Ryzen, например, или Core i7 более-менее последнего поколения. Но если посмотреть на соотношение частоты и производительности, именно в этом целочисленном решении задачи, то оказывалось, что они примерно равны. Не уступает в конкретных задачах. Да. То есть если вычисление в сплавочной точке, там разница была все-таки в разы, два-три раза где-то так. Я просто сверял по другим проектам, по N64, например. У современного процессора частота 3 ГГц, у Raspberry Pi — полтора, но он считает 6 раз медленнее. При решении вот таких задач производительность получается в полном соответствии с частотой. Это было очень интересно увидеть. Поэтому использование подобных устройств вполне может быть оправданным.
Какой мощности нужен сервер для того, чтобы вести свой проект? Ну то есть, давай на примере даже вот CDOK и RakeSearch, то есть какой мощности компьютеры или машины используются там в качестве сервера? Такая фраза, которую никто не любит, но все зависит от решаемой задачи, но я ее обосную конкретными примерами. RakeSearch — это проект, в котором входные и выходные файлы очень маленькие. Файл, который формирует задание, входной файл, он весит сотни байт, иногда килобайт. Выходные файлы, в зависимости от поиска, ну может быть сотни байт или там пара десятков килобайт. То есть один сервер может за секунду обрабатывать несколько десятков результатов. И поэтому сервер RakeSearch — это была просто небольшая виртуальная машина, у которой было 18, около, или 16 даже гигабайт диск виртуальный и 8 гигабайт оперативной памяти. Потом сделали больше, но только для того, чтобы когда у нас был кит производительности и очень много файлов приходило, с ними было удобнее работать, они фаршировались просто в оперативной памяти. Очень маленький сервер. Вот сайдок — совершенно другая ситуация. Там задания, они несколько сотен килобайт, а результаты могут достигать нескольких мегабайт. И размер результатов, которые приходят на сервер, они зависят от настроек поиска. Иногда их можно сделать такими, что это тоже килобайты, тогда хватило бы небольшой виртуальной машины. Но иногда они могут быть реально мегабайт. Если вы получаете 100 тысяч результатов в сутки, то это получается десятки или сотни гигабайт. Сервер, конечно же, без особых проблем это переваривает, но если в нем процессор более-менее современный на несколько ядер и хотя бы два жестких диска стоит. Мы вынуждены были сначала использовать жесткие диски, потому что нам нужно было хранить на сервере библиотеку, в части которой расшивались видеозадания. Она там просто довольно большая. То есть на SSD диск ее не положишь. В тиховые моменты мы, к примеру, утирались уже даже не сколько в диске, сколько в сети. Да, кому-то нужна получается сеть. Я слышал, что есть проекты, которые пересылают примерно по гигабайту на каждое задание, и они об этом предупреждают, потому что нагрузка на сеть вырастет и у участника тоже. И расчет, как правило, там идет типа сутки. Да, есть, например, такой фонд-проект World Competitive Games, Africa Rainfall, который тоже занимается моделированием климата в каких-либо больших масштабах. И там действительно флагмой файл порядка гигабайта, из-за чего заданий мало, и они сразу же стали большой редкостью среди участников проекта, потому что там за каждый фонд-проект выдаются свои значки. И вот участники хотели хоть какой-нибудь значок получить, посчитав задания этого фонд-проекта. Ну, все действительно зависит от решаемой задачи. Для многих задач большого сервера не нужно. Как правило, это выглядит не в отказных вас от заданий, но это если мы упираемся в возможность их создания. Либо если мы упираемся в нагрузку по сети, ну, просто ширина сетевого канала. Сайты в проекте долго отвечают, задания могут очень долго не получаться и не выпадить. В ситуациях, когда у нас есть задание, есть канал, но участники, например, очень сильно нагружают жесткий диск. И что-то подобное бывает. Ну, как правило, это выглядит примерно так же, как нагрузка каналов, потому что сервер не отвечает. Это возможно. То всегда лучше проверять результат, который к тебе приходит. Проверять на то, что он был корректно посчитан или просто не был кем-то ради шутки или злого умысла подменён или, как говорят, специфицирован. Он правильный, что ему можно доверять. Для этого, как правило, используют рассылку более чем одного задания. В простейшем варианте — два. Для того, чтобы это можно было сделать, нужно, чтобы результаты вычисления получались строго одинаковыми. Это не всегда возможно. Например, в задаче, которая решается в Red Search, связанной с латинскими квадратами, где выполняется вычисление с целыми числами, в результатах должен быть строго один. Как у каждого конкретного задания. Это или латинский квадрат, или нет. Это или ортогональный, или нет. Найдены какие-то ортогональные квадраты или не найдены. Или какие-то другие характеристики, целое число, которое находится в алгоритме, имеющем жесткую структуру. Там не участвуют случайные числа. И сколько ты угодно можешь считать на разных компьютерах, если они правильно работают, результат будет один и тот же. Это очень хорошая ситуация. Когда ты можешь просто взять и два результата сменить. Замечательно. Просто отлично. Бывает, правда, когда тоже результаты обладают такими характеристиками, но нет смысла делать их нехоть. Это происходит тогда, когда сам поиск заключается в попытке что-то найти. То есть у нас есть очень большое пространство поиска, и мы не прочёсываем его целиком, формируя некий итоговый результат, который нам точно должен быть известно. Абсолютно точно известно. А когда наша задача состоит в том, что мы найдём что-то или не найдём. В этом случае может иметь смысл просто брать и генерировать два раза больше заданий, потому что 99,5% из них вообще ничего не вернут, а полпроцента найдут что-то. Ну и хорошо. Мы что-то нашли, и это уже здорово. То есть получается, что автору проекта надо сделать выбор. Или у него результаты будут точнее за счёт того, что есть дублирование, точнее в смысле менее подвержены фальсификациям, случайным или специальным. Или мощность его проекта будет в два раза выше. Но вот PrimeGrid, казалось бы, то есть это тоже задача поиска, но они всё перепроверяют, причём иногда по три раза. А, по-моему, когда нашли какое-то простое число важное, они его ещё пару раз перепроверяют. Да, и это правильно, потому что в этом случае идёт речь о том, что найдено некое конкретное число, и нам нужно быть абсолютно уверены в том, что оно верное. Но может быть иная ситуация, когда результатом нашим будет не какое-то... То есть, с одной стороны, некое либо число, либо какая-то, может быть, структура комбинационная, либо что-то ещё. Но самое важное будет то, что мы её нашли. Если, например, она найдена, то мы её легко можем проверить. А вот если она не найдена тем, то есть, например, на компьютере участника, она может быть и нашла его, но его результат, к сожалению, пропал. Вот ошибки такого рода при отсутствии проверки за счёт дублирования мы, конечно, не поймаем. Но любую ошибку, связанную с тем, что нам пришёл какой-то результат, где якобы что-то нашлось, но это неправильно, мы проверим очень легко. Потому что положительных результатов их мало, и они легко проверяются. А отрицательный результат... Ну что ж, мы, может быть, что-то и потеряли, но вероятность того, что мы потеряем какое-то реально существующее решение, не катастрофична, как правило. А вот если мы увеличим мощность проекта в два раза, подключим дублирование, это в два раза увеличит вероятность её нахождения. В таком случае этот вариант может быть оправдан. То есть когда мы именно что-то ищем, мы в обязательном порядке должны покрыть всю область поиска и получить некий такой абсолютно точный результат Абсолютно точный результат. Это как бы тот случай, когда нам не надо доказывать, что этого нет. Если мы это просто найдём, хорошо, а если не нашли, значит ничего страшного. Это касается вот тех случаев, когда мы можем проверить легко. Но бывают ситуации, когда сверить результаты сложно. Например, если у нас выполняется какое-то моделирование взаимодействия семических веществ. Могут, точнее, использоваться некие случайные числа, по-разному подбирать положение молекул. И в этом случае у нас результат с одного компьютера будет отличаться от результата с другого. В одном случае удалось подобрать какое-то удачное положение, в другом не удалось. Или если мы анализируем какие-то данные с Лайва или с Алисиба и перебираем какие-то координации, в этом случае координация удачная, в другом неудачная. И вот это по-своему интересная ситуация, потому что в таком случае иногда может быть отдельно взятые задачи, сопоставляется одно задание и получается один результат. Самих задач на самом деле делается несколько штук. Они одинаковые, но имеют просто разное имя. И мы на выходе из расчета получаем некоторое число не обязательно 1 или даже 2, может быть 3, 4, 5 и больше результатов, которые пытаются что-то найти, связанное с этим заданием, получить какой-то результат. И эти результаты потом можно сводить вместе, находить что-то большее, что получилось бы в одном задании задачи двух или трех. В предметной области иногда очень интересные задачи нам задаются.
Задача нам задается Сайенс Юнайтед Насколько я понимаю Нужно просто, чтобы проект Решал какую-то задачу Которая оказалась Достаточно надежной Но Сайенс Юнайтед разработан И управляется Командой также Дэвида Андерсона Который сделал и Ситихолм И Воин Каких-либо претензий в части того Что они неправильно выбирают проект Я еще не слышал Как оно реализовано внутри Но знаю только общий смысл Что по сути Это единое окно Когда участник подключает Компьютер Сайенс Юнайтед Как к обычному проекту То на его Машину Могут приходить Задания из разных проектов Подключает и отключает проекты По мере того, как он считает нужным Он учитывает платформу У кого больше свободных задач Кому сейчас нужнее Учитывает твои предпочтения Ты хочешь считать все, что связано с математикой И все, что связано с Россией И соответственно там будут в основном Тебе приходить задания математические, российские Но при этом это не мешает тебе Одновременно с Сайенс Юнайтед Самому подключиться напрямую К какому-то проекту Половина ресурсов машины будут шариться Примерно напополам Половина ресурсов будут уходить к тому проекту К которому ты сам подключился Вторая половина будет уходить с Сайенс Юнайтед То есть вы ничего специально не делали Для того, чтобы туда попасть Проекты просто работали И через какое-то время Они были включены в список Тех, которые на фактуры Ориентируются С Сайенс Юнайтед Если к тебе обратятся когда-нибудь Российские ученые Для того, чтобы ты помог настроить Работу сервера еще одного проекта Можно ли к тебе обращаться Предположим, кто-то послушает этот выпуск Поймет, что у него есть идея на расчет И захочет этим заняться Но поконсультироваться Да, конечно Возможно, что помощь Других конек, которыми занимается Может быть даже более профессиональной Даже не может быть Конечно, больше с этим Она окажется более полезной Но не знаю, чем смогу помогу Может даже смогу полностью все развернуть В целом просто есть команда Прямо из людей, работающих В разных городах Которые этим занимаются И мы все Друг друга знаем Если кто-нибудь Кому-нибудь придет, то мы будем помогать Насколько сможем Это зависит от того, как ты популяризируешь Свой проект, но в целом Например, если мне нужна мощность А-ля 10 персональных компьютеров Наверное, мне нет смысла Заморачиваться с созданием проекта Надо каким-то другим образом Искать ресурсы С какого количества требуемой мощности Это становится рентабельно Во-первых, о каких мощностях Мы можем внести речь Ну вот у RaySearch Мощность порядка 30 гигабайт Это Где-то в самом хвосте Топ-50 Синтеркомпьютеров России Может быть даже уже в топ-50 не попадает Но тем не менее Это Примерно как 200 Ядер современных Компьютеров, которые Работают 24 на 7 В посадках, кстати, это Около 10-20 Может быть 30 Она еще слабая Где-то от 10 до 30 Компьютеров типа Ryzen 3900X Которые все время работают Маленькие вычислительные кластеры Размером с Частью стойки Или полную стойку В зависимости от разной дистанции Высайдов между 125 и 200 литров Вообще Бывало больше, бывало пониже Ну вот я смотрю, что Компьютеры, которые есть в России Это МТСовский, МГУшный Это порядка 3-5 петафлопс Самый мощный Яндекс Это, соответственно, 30 петафлопс Всегда надо понимать, что есть сложность В сравнении разных компьютеров Которые по-разному считают Особенно это касается суперкомпьютеров Но получается, что цифра Меньше, но она меньше Буквально всего в 10 раз Два важных слова Во-первых Суперкомпьютеров конкретно в России Их не так-то много Во-вторых, если мы Говорим о суперкомпьютерах Яндекса, Кэсбера МТС В большинстве из них, или даже во всех Основную мощность, которую Мы измеряем в петафлопсах Зайдет в GPU Они в несколько Десятков раз мощнее, чем Конфессоры И если, например Из этого рейтинга Постараться Исключить мощности Связанную с GPU Например, мы смотрим на какой-то Суперкомпьютер, и мы пробуем оценить Именно ту часть, которая Связана с GPU В топ-50 там пишется Примерный состав узлов И это можно сделать То, например, получается, что Тот же сайдов Уже где-то не на 20-м Может быть, даже на 10-м И вот эти 30 петафлопс 10 петафлопс Они все резко увеличиваются И Если я не ошибаюсь Ломоносов Который в основном Все-таки CPU Он становится Либо лидером, либо очень близко к лидерам То есть, если мы говорим о Производителе из первого рода CPU То это где-то от 1 1,5-2 петафлопса Угу Ну и заставить суперкомпьютер Работать на твои задачи 24 на 7 В течение нескольких месяцев, а то и лет Это такая бюрократически И финансово нерешаемая, наверное, задача К суперкомпьютерам всегда очередь А получается, что CDOC или RakeSearch Могут довольно продолжительное время Пользоваться этими ресурсами В течение лет Можно использовать эти ресурсы Если, конечно, ты смог унизить людям Какую задачу ты решаешь И это еще Одна такая привлекательная сторона Проектов Распределенных учреждений и участников Потому что Мы воспринимаем Это участие как Вкладывание наших ресурсов Ресурсов в широком смысле И непосредственно Решение какой-то задачи, которая нам интересна То есть мы видим, что решается Нам это интересно И делаем И если участников заинтересовать Ну, они придут Тогда с ними надо общаться Как-то давать им обратную связь Если мы говорим о неких российских реалиях То, на мой взгляд В зависимости от того Какая будет задача, как ее объяснять Какое будет взаимодействие Можно получить и большие мощности Потому что RakeSearch Это чисто российский проект Но эта математика Кабинаторика Она не всегда людям интересна В среднем математические проекты Получают в разы меньше, чем Ну да, оно для обывателя Звучит незажигательно Не так зажигательно, как искать внеземной разум Проекты, связанные С такими красивыми фундаментальными науками Математика тоже красивая Но, скажем так С красотой, которую очень легко показать Очень легко показать Они пользуются Гораздо большим интересом Проекты, связанные С поиском лекарств Которые просто прикладные Отчасти это было вызвано тем, что Компания NVIDIA Призвала своих покупателей Присоединить их к Folding.it Но Поскольку Folding.it Это тоже проект Распределенных начислений На этой волне выиграли И многие другие проекты Основной тип был Folding.it Но опять-таки За счет дефолт За счет видеокарт За счет видеокарт И продолжая мысли Про российские реалии Хочу сказать, что если, например Появится какая-то задача Которую будет решать именно Российская научная группа То этот проект Его гораздо проще будет Популяризировать Среди российских участников Идея понятна, да
Если бы, например, в распределенных вычислениях платили зарплату сопоставимую с той, которую ты получаешь, ты бы пошел в эту сферу работать на фуллтайм? Почему бы и нет, но здесь смысл распределенных вычислений в том, что как раз для ученых это бесплатная вещь. Есть, наверное, некая идея, что и государство может поддерживать эту сферу, не обязательно делать это только на чисто волонтерских ресурсах. Есть такое понимание общее, что вообще-то поддержание волонтеров это тоже работа. То есть, когда, например, в Казани проводили универсиаду, было натренировано тысячи людей, которые прошли специализированное обучение, проводили учения для того, чтобы быть готовыми во время универсиады руководить волонтерами. И самих волонтеров это не так, что люди бесплатно пришли поработать. То есть, волонтеров нужно обучить, волонтер нужно, чтобы он приехал, нужно его разместить, покормить, мерч дать, объяснить важность его задачи и прочее. Даже если он просто все четыре дня стоял там рядом с дорогой и показывал указателям, куда ехать. Это обычная работа, которая может выпасть волонтеру. А вот руководители волонтеров, они получают нормальную зарплату, потому что они вообще-то полгода-год там заняты этим проектом и только им. Мне кажется, что это такая некая ошибка считать, что проекты распределенных вычислений, они не нуждаются в какой-то поддержке и якобы там способны отлично функционировать только за счет волонтеров. Конечно, они способны, но было бы гораздо лучше, если бы кто-то мог их организовать. Важно понимать, что мы имеем в виду под проектом распределенных вычислений. Самое главное, это научная составляющая. И, конечно, научная группа, она должна получать поддержку государству или, может быть, кого-то еще там в виде какой-то добровольной инициативы. Специфика проектов распределенных вычислений в том, что, как правило, административная нагрузка, связанная с самим проектом, она все-таки не очень большая. Деньги, наверное, при уже существующей такой запрезапущенном механизме работающих таких проектов, при научных каком-то заведениях, могут выполнять, вот эти задачи могут выполнять просто люди, которые там работают. Потому что в любом институте есть системные администраторы, есть люди, отвечающие за электрику, за оборудование и так далее. Да, в рамках, герасимы, сайдок, эта часть получилась наша добровольческая. Но мы ее смогли так сделать, потому что она на самом деле стоила недорого. Это было такое точечное приложение усилий и ресурсов, которое позволило развязать сразу такой узел проблем и проект работы. Если это пойдет как более широкое устремление, ну просто надо будет поддерживать научные группы в институтах, которые, ну, какие-то задачи решать ничего не сможут. Не знаю, продвижение в чистом виде, то есть реклама, материалы какие-то, партнерские программы, части там написания статей и всякое такое. И, ну, мне кажется, что в мире вообще в распределенных вычислений есть проблема с этим. Недавно слушал Boeing Radio очередной, который подводил итоги исследования на тему распределенных вычислений, кто в них участвует, и они тоже эту проблему отмечают. Что большинство участников распределенных вычислений, они попадают в эту сферу относительно случайно и очень мало обратной связи получают от авторов проектов о том, что происходит. И, соответственно, да, у них снижается мотивация донатить свои ресурсы. Это у нас же еще в России электричество относительно дешевое, то есть, например, в США электричество в пять раз дороже. И для них там постоянно работающий компьютер, это вообще-то на их деньги это 50 долларов в месяц вы не доположь. Просто нормальный обычный средний компьютер, который работает постоянно с CPU хорошим и GPU хорошим. Ну такой на полкиловатта условно. То есть они должны прям понимать, куда эти 50 баксов каждый месяц у них будут уходить. Вот сейчас я как раз говорю уже как участник распределенных вычислений. Есть проблемы связанные с тем, что, во-первых, результаты получаются редко. Если бы результат мог быть получен быстро, не нужен был бы проект распределенных вычислений. Проекты считают годами. Ситуация, когда какую-то хорошую научную новость можно написать, она выпадает раз в несколько месяцев. С одной стороны. А с другой стороны, как я понимаю, я не являюсь научным сотрудником. Просто могу там поспрашивать, как там дела и так далее. Если есть какой-то научный результат, его крайне желательно сначала оформить в индустрию. Научные сотрудники, научные группы тех или иных проектов, как и любые другие научные группы, очень много времени тратят на то, что можно было бы назвать вот таким продвижением, но только это продвижение заключается в написании статей, отчетов и прочее. То есть продвижение своей работы в какие-то бюрократические или государственные, или сугубо научные структуры, журналы. Но мысль у него такая, и наверное это правильно, что вот общение с сообществом, с комьюнити, оно не всегда обязано следовать продукту. Ну то есть тому, ради чего собралось это комьюнити. Часто комьюнити варится в себе. И просто нужно помогать этому комьюнити вариться в себе, даже если от проекта сейчас пока нету каких-то результатов, которые можно было бы обсудить. Людям всегда есть что обсудить. Даже что сегодня покушал автор, куда он сходил. Потому что мы же очень часто поддерживаем все-таки автора. Мы редко способны действительно глубоко понять тот проект и ту научную новизну, которой автор занимается. И мы как бы говорим, я верю этому человеку, и чем больше я получаю подтверждение того, что этот человек хороший, тем лучше. Да, это так. Я могу вспомнить такой пример, даже два. Пример номер один. Результаты, которые формировал вычислительный модуль Cityhome, их можно было до того, как они уйдут на сервер, всегда скопировать, а потом отдать мне сведения на кислый, там же в бедровой целеутилите, которая выбирала оттуда сигнал и складировала в свою локальную базу. И человек мог запустить ее и посмотреть, а что конкретно его компьютер где-то там нашел. Это, конечно, не огромная мастер-сервис-датабейст, которая создана проектом. Это вопрос о том, нашел он что-то или нет. Он вот сформировал такую очень большую базу из сигналов, которые можно назвать увозрительными, обработкой которых они сейчас, кстати, занимаются. Другой пример, ну, схожий тоже. В рамках Einstein можно было также забирать себе копию результатов, распаковывать их и просматривать в некоторых графических утилитах, которые позволяли строить тропинные графики и получать визуализацию этого результата у себя. Запустить скринсейвер, который показывает, что сейчас считает твой компьютер, было довольно приятно. Кроме этого, любой проект — это отличный бенчмарк сам по себе. В ряде проектов просто могут завязываться какие-то дискуссии или может быть интересная статистика по сравнительной производительности машин. Графических карт или процессоров. Например, в рамках RakeSearch и Sli.doc мы чуть-чуть дотянули вот эти странички, и вот на тех заданиях, у которых хором равно 2, можно, скажем так, за счет тех заданий, у которых хором равен 2, можно сформировать сравнительную статистику производительности компьютеров, и мы ее выводили. Мы сделали прямо отдельную ссылку к свойствам компьютера, в сравнении, и можно было посмотреть, как твой компьютер считает относительно других. Конечно, там были погрешности, потому что у кого-то включен hyper-threading или SMP, в случае AMD, у кого-то столько-то ядер нагружено, у кого-то все не все. Кто-то делает андервольтинг для того, чтобы не слишком сильно использовать свой компьютер. Но для наиболее популярных моделей статистика получалась очень большая. Но некоторые результаты было прям очень интересно наблюдать. То есть здесь вот даже мощных, сравнимых с ним по мощности, по количеству гигафлопс, то есть порядка 6-8 гигафлопс на ядро, здесь таких пару сотен. Ну да, то есть прям довольно много компьютеров, даже только PCPU, который в Сайдок работает. Очень круто. Тут тоже как раз вот такая отдельная область, которая сама по себе может жить, и которая всегда первой была интересна. И да, людям это всегда интересно. Как раз выжить из своего компьютера максимум. Слушай, жутко интересно насчет вот этих дополнительных устройств. Я предлагаю здесь сделать небольшой перерыв для слушателей. Возможно, это будет уже переход на следующий выпуск, потому что выпуск получается большой. А я еще не сделал двух важных дел. Первое, я не дозадал вопросы, которые у меня были записаны. А второе, я еще не спросил тебя, что ты еще сам хотел бы рассказать. И, наверное, это займет следующие минут 40-60. Поэтому на этом месте мы прервемся. Всем пока и запишем следующий выпуск.
Платформы