Выпуск 5
Как обучить большую нейросеть без дата-центра.
Илья Курочкин - научный сотрудник. Изучает и преподает распределенные вычисления (про гриды и не только).
Как ученые могут учить нейросети на гридах? Использование BOINC в корпоративной сети для больших вычислений. История российских проектов BOINC. Optima@home – новый тестовый зонтичный проект от российских студентов.

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

Добрый день, мы записываем очередной выпуск подкаста Гритко. Это подкаст о распределенных вычислениях для добровольцев и ученых, которые хотят участвовать в распределенных вычислениях. С нами сегодня гость Илья Курочкин. Илья Курочкин это заведующий лабораторией старший научный сотрудник и кандидат технических наук, работает в институте проблем передачи информации Российской академии наук. Его сфера интересов довольно обширна, она касается и распределенных вычислений и много чего еще. Илья, добрый день. Добрый день. Прежде всего хотел сказать, что в центре распределенных вычислений института проблем передачи информации Российской академии наук я работаю уже достаточно давно. Сначала наш центр был в институте системного анализа, но потом по ряду причин перешел в институт проблем передачи информации. Мы уже достаточно давно, наверное около 20 лет занимаемся распределенными вычислениями, занимаемся исследованием различных типов распределенных систем и я считаю, что являемся одними из немногих в России, которые могут многое рассказать как обычным людям, так и другим ученым о распределенных вычислениях. Спасибо. То есть вы занимаетесь этим и с научной точки зрения и с точки зрения практики? Поскольку наш центр мы решаем не только задачи связанные с исследованием распределенных систем, у нас есть еще задачи имитационного моделирования, а сейчас достаточно распространенные задачи глубокого обучения. То есть мы сами свои задачи, которые у нас есть, задачи тяжелой в вычислительном отношении, пытаемся решать на распределенных системах. И вот именно эта практика нам позволяет не отрываться от других и позволяет чувствовать, а собственно, что же нужно сейчас разработчику, что нужно исследователю, какие инструменты ему интересны, какие аспекты нужно улучшать прямо сейчас в распределенных системах, в параллельных вычислениях, в облачных вычислениях и так далее. Когда вы говорите, что используете распределенные вычисления, вы имеете в виду, что вы используете Boeing или какое-то собственное программное обеспечение? Программного обеспечения, которое обеспечивает именно разворачивание грид-систем или распределенных систем, такого программного обеспечения достаточно много. Boeing является одним из популярных платформ, которые позволяют достаточно быстро развернуть грид-системы из персональных компьютеров и сделать так, чтобы она была публичной. То есть, чтобы могли туда подключаться не только ученые, не только предоставленные туда включать свои ресурсы, но и могли подключаться добровольцы. Но мы занимаемся и другими видами грид-систем. У нас есть и собственные разработки. К примеру, есть платформа Эверест, есть другое программное обеспечение, которое мы используем, к примеру, сейчас очень модные, к примеру, Apache Spark, Kubernetes, это уже именно в облачные вычисления. Но так получается, что очень у многих сейчас исследователей, ученых есть некоторый доступ к облакам, но при этом они не знают, как же этот доступ можно было бы использовать достаточно эффективно. Ну и стараемся как-то помогать нашим коллегам, которые находятся в нашем институте, которые находятся в других институтах Российской академии наук, в различных ведущих вузах России и не только. В целом у нас сложилась уже, я бы так сказал, такая очень хорошая теплая компания. Это несколько институтов, несколько вузов, которые занимаются именно распределенными вычислениями в России, которые занимается Boeing. В этом смысле Boeing, он вне конкуренции, он как бы послужил поводом для нашей дружбы, наших совместных работ. Наверное, лучше, если мы будем говорить сначала о grid-системах и персональных компьютеров и о программном обеспечении Boeing, платформе Boeing. Здесь мы тоже имеем достаточно большой опыт, при этом наш опыт не только касается разработки приложений для такого типа grid-систем, он не только касается сопровождения проектов, но кроме этого, когда мы поняли, что нам необходимо как-то мотивировать добровольцев, мы поняли, что нужно, к примеру, исследовать сообщество добровольцев, мы провели этот опрос. Мы сделали некоторые выводы, может быть, эти выводы достаточно простые, но я потом видел, что наши коллеги начали использовать наши рекомендации, как улучшить проект, как сделать его более понятным и привлекательным для добровольцев. Я считаю, что это мы сделали не зря и потихонечку продолжаем исследование в этой области. Мы стараемся взаимодействовать с сообществом добровольцев, мы стараемся определить, что им интересно в данный момент. То, что было интересно 10 лет назад, это, конечно, тоже интересно, с исследовательской точки зрения, но нас интересует и с практической точки зрения, а что интересно добровольцам сейчас, что нужно сделать в проекте, что не нужно делать категорически. Если какие-то вещи нам объяснили, рассказали 10-15 лет назад, это не означает, что они такими же будут и сейчас. Простой пример. Когда только движение добровольцев по распределенным вычислениям только набирало свои обороты, это были, наверное, нулевые годы 21 века, начало 10-х годов, тогда визуальная составляющая не была такой важной, но сейчас, когда подросло новое поколение, когда любой сайт достаточно популярный можно открыть, и мы увидим, что он достаточно красивый, там над ним поработали дизайнеры и так далее, в этом случае было бы глупо, наверное, считать, что добровольцы, которые тоже среди них есть молодые люди, скажут, что нет, давайте мы визуальную составляющую оставим за бортом. Наверное, это будет неправильно. Поэтому действительно мы поняли в какой-то момент, что мы немножко отстали в смысле дизайна, в смысле оформления, но стараемся сейчас наверстать упущенное, и как раз нам в этом помогли сами добровольцы, которые сказали, ребят, вы поймите, все развиваются, и мы тоже должны развиваться, и сайты должны развиваться, иногда они даже собственным примером, к примеру, организации групп, ВКонтакте, в Facebook, в каких-то еще других социальных сетях, нам говорят, ну вот смотрите, можно же сделать так, посмотрите, это же хорошо, это красиво, это привлекает много людей, а в целом как раз привлечение новых добровольцев, популяризация именно этого движения остается для России очень проблемной, поскольку очень немногие знают об этом, а если даже знают, часть людей просто боятся, а чего они боятся, а прежде всего боятся того, что они думают, что организаторы проекта будут, к примеру, майнить, то есть они возьмут и будут как-то использовать их компьютеры, но будут использовать не очень правильно, противозаконно, для чего-то плохого, но в целом сейчас почти все проекты, это открытые проекты, даже с открытым исходным кодом, постоянно публикуются новые результаты, можно пообщаться с учеными, которые занимаются этими проектами, и у них узнать, непосредственно у них, чем же они сейчас занимаются, и что же сейчас делается в проекте. Поэтому, к сожалению, конечно, не для всех людей этих объяснений достаточно, этих возможностей, но, условно говоря, 30-50% из людей, которые узнали о добровольных распределенных вычислений, как-то заинтересовываются ими, и некоторые из них даже приходят и остаются в сообществе добровольцев достаточно надолго. Как маркетолог, наверное, добавлю, что самый большой конкурент подобных продуктов — это ничего не делать, то есть просто все оставить как есть, не потому что есть какие-то специальные возражения, а просто потому что не видим причины что-то менять в текущем своем поведении. Ну, вы знаете, вопрос «ничего не делать» может быть достаточно интересно, надо это тоже, так сказать, изучить, спросить, как-то оценить. Но, когда мы спрашивали, а, собственно, что же движет добровольцами, когда они присоединяются к проектам добровольных распределенных вычислений, когда они, в них участвуют, притом достаточно долго, прежде всего, я сейчас говорю именно о русскоязычном, русскоязычной части сообщества, это прежде всего помощь науке, то есть это некоторый такой альтруистический порыв, который, ну, я считаю, так сказать, свойственен все-таки вот нашим людям, которые совершенно четко понимают, что ученые точно такие же люди, как и они, у них всегда не хватает ресурсов, и если не они им их предоставят, тогда никто им не предоставит.
К сожалению, может быть, это немножко горько осознавать, но они иногда попадают в самую точку. Поэтому за это им, за то, что добровольцы предоставляют ресурсы, огромное спасибо. И я хотел бы еще раз подчеркнуть, что иногда это единственная возможность посчитать какие-то большие эксперименты для некоторых групп. Тем более, что человек, который уже купил мощный компьютер для того, чтобы, например, играть, он уже потратил деньги. Дальше вопрос стоит только в электричестве. Электричество на какой-нибудь 500-ваттный компьютер в течение месяца, работающий беспрерывно, оно обойдется примерно в тысячу рублей. В России, то есть с учетом нашей цены на электричество, это действительно подъемная сумма. Где-нибудь в США это обошлось бы примерно в 5-10 раз дороже там в зависимости от штата. Ну вы знаете, по поводу электричества да, но слава Богу добровольцы изначально, которые предоставляют ресурсы, они же, вы поймите, они готовы предоставлять не только ресурсы своего компьютера, а его амортизацию. Поскольку иногда компьютер определенный считает несколько лет. То есть фактически они купили компьютер для того, чтобы он считал на благо проектов добровольных распределенных почетлений. На благо решения какой-то задачи. Это мы переходим к тому, что помимо именно альтруистического порыва именно помочь науке, есть еще некоторые другие мотивы. А в целом один из мотивов – это некоторая сопричастность к исследованию. И что это такое? Это прежде всего интерес. Если какой-то человек заинтересовался какой-то проблемой, ее решением, он как раз через участие в проекте начинает интересоваться этой проблемой. Он начинает заглядывать глубже, он начинает ее изучать, и ему становится еще интереснее. И ему становится интереснее, ну как вам сказать, даже не знаю, это даже не тотализатор, это не какая-то игра. А это просто интересно, просто следить за развитием прогресса, который происходит у тебя на глазах. Это тоже очень сильно мотивирует. Опять же, если будут какие-то персональные результаты, когда пользователь видит, что именно он сделал, что именно он нашел, что именно он обработал, для него, конечно, это очень хороший мотиватор. Кроме того, есть такой пример, когда в ЦЕРНе наконец-то нашли базон Хиггса, и некоторые добровольцы сказали, ребята, мы тоже участвовали в этом, а действительно, ЦЕРН, который обладает десятками суперкомпьютеров, самую, по-моему, огромную сеть вычислительных мощностей, сети, которая позволяет передавать достаточно большие данные, он при этом развернул свой проект добровольных распределенных вычислений для того, чтобы проводить некоторые эксперименты. И действительно, добровольцы могут сказать, что они участвовали в экспериментах, которые привели к открытию базона Хиггса. И вот эта сопричастность, пусть это такое уже, я даже не знаю, чувство эгоистичное, но тем не менее, вот эта сопричастность, она тоже дает определенную долю добровольцев, которая, во-первых, мотивирована. Она мотивирована участвовать в проекте долго, до получения каких-то хороших результатов. И в целом, это же хорошо, это же классно. Это получается, что пока не будут получены хорошие результаты, добровольцы будут с нами. А после того, как результаты будут получены, эти результаты, если о них расскажут в новостях, о них расскажут ведущие мировые СМИ, они привлекут много новых добровольцев. К примеру, на одном астрофизическом проекте, если не ошибаюсь, когда наконец-то нашли новые космические объекты, после этого аудитория проекта выросла, по-моему, в два или в три раза. Ну, оно и понятно, об этом рассказали, сказали, ой, это очень интересная вещь, давайте тоже поучаствуем, мы тоже хотим искать новые звезды. Но это же хорошо, когда я, к примеру, смог найти звезду. Или, к примеру, один из немногих случаев, когда математический проект, это Саттед Хоум, как раз российский проект, и его организаторы сделали так, что было известно, когда находились определенные результаты, результатов было крайне немного, там, по-моему, не больше двух десятков. И когда эти результаты находились, понятно было, то есть, сразу вот просто на сайте писали, кто именно, на каких компьютерах были они найдены. Таким образом, человек, когда видел на сайте проекта свою фамилию, свой никнейм, он, так сказать, достаточно серьезно радовался, это тоже была серьезная мотивация. Я посмотрел статистику того же самого LHC, то есть компания, которая публикует свои задачи, выходит, что у него сейчас порядка 36 террафлопс, это не сказать, чтобы гигантское число, возможно, какая-то часть статистики скрыта, но надо понимать, что это производительность именно CPU, то есть у них очень мало задач на GPU, на графическое ядро, которое дает большую производительность, и опять же, это те мощности, которые работают постоянно. Порядка 3000 активных хостов у них сейчас, то есть порядка 3000 активных компьютеров задействовано у них в проекте через Boeing. Смотрите, когда мы говорим о мощности грид-системы, мы всегда должны понимать, что и мы должны различать общее количество узлов, которые участвуют в вычислениях, и количество активных, поскольку если мы сейчас, к примеру, говорим о том, что сейчас в LHC участвуют 6000 компьютеров, я вас уверяю, что на текущий момент, вот прямо в этот момент, когда мы с вами говорим, участвуют порядка 600 компьютеров, все остальные по той или иной причине выключены или не участвуют в проекте. Они могут подключиться через 2-3 минуты, кто-то подключится вечером, кто-то подключится утром всего лишь на 1 час, на 2 часа и снова отключится. Но, тем не менее, за счет именно массовости создается эта непрерывность. То есть, получается, что 6000 компьютеров постоянно вкладывают в проект, пусть не все время, пусть не 24 часа в сутки, пусть это будет всего лишь 1 час, но это некоторый вклад. И CERN в том числе содержит и сопровождает этот проект именно для того, чтобы, во-первых, обкатать какие-то текущие эксперименты. Кроме этого, прежде всего, для популяризации. То есть люди, которые интересуются тем, что делает CERN, какие эксперименты там происходят, что для них важно сейчас, для них, именно для добровольцев, это возможность пообщаться с учеными, которые как раз занимаются исследованиями. Для них это возможность посмотреть, какие данные они получают. Ну, поскольку если, к примеру, я как доброволец предоставляю свои ресурсы, я хочу знать, на что я их предоставляю, какие результаты получаются. И в целом вот эти обязательства добровольно берутся организаторами проекта на себя. То есть можно просто подписаться на рассылку, а можно, есть английское выражение, skin in the game, вложиться в этот проект и, соответственно, создать таким образом у себя внутренний интерес к тому, чтобы глубже разобраться, а что там происходит и что конкретно ребята сейчас обсчитывают и делают. Ну, еще раз поймите, да, подписаться на рассылку, ну, это же ни к чему не обязывает. То есть прямо сейчас мне интересен, к примеру, какой-то астрофизический проект, который ищет новые пульсары. Но, допустим, через два часа я о нем не вспомню, я переключусь на что-то еще. Но при этом, если я прочитал статью об этих пульсарах, замечательно, у меня внимание, наверное, еще сохранится несколько дней, я еще буду об этом помнить. Но если я при этом взял и подключил один из своих компьютеров к этому проекту, я потом зайду и посмотрю, а что же там в результате получилось, сколько я посчитал, какие текущие результаты. То есть я вот именно вовлекаясь в вычисление, я глубже погружаюсь в эту проблему. Поэтому рассылка, к сожалению, да, она дает некоторое сиюминутное привлечение внимания, но не больше, как правило. А вот именно приложение усилий, это вложение своих ресурсов, любых ресурсов, временных, вычислительных, может быть, что-то нужно сделать для проекта. Если вот это все происходит, для добровольца это важно, и это вовлекает его настолько, что он уже остается с этим проектом достаточно надолго. При условии, конечно, что ему все нравится, ему интересно. Вы еще сказали, что занимаетесь другими платформами, например, платформой Эверест. Никогда про нее не слышал, может ли рассказать подробнее? Платформа Эверест — это как раз разработка нашего коллектива, ею занимаются мои коллеги. Один из основных разработчиков — это Олег Викторович Сухорослов. Мы изначально планировали, что эта платформа будет как раз объединением разнородных элементов, разнородных вычислительных узлов, так сказать, может быть, даже сегментов каких-то, грид-систем, ластеров, суперкомпьютеров. И у нас будет единый интерфейс для того, чтобы общаться с этой системой, для того, чтобы туда загружать задания и, соответственно, получать некоторые результаты. По-моему, несколько лет назад мы успешно сделали некоторый интерфейс для взаимодействия грид-системы на платформе Boeing как раз Эверест. К сожалению, система, конечно, не очень популярна, но я надеюсь, что, может быть, после нашего сегодняшнего разговора ее популярность будет немножко выше. В целом, она достаточно мощная, но при этом, поймите, здесь она не решает главный момент, она не предоставляет ресурсы. Она предоставляет некоторую методику доступа к этим ресурсам. Ну, а если ресурсов нет, ну, собственно, о чем говорить. Поэтому, если мы говорим о грид-системах из персональных компьютеров на платформе Boeing, то здесь мы наши ресурсы черпаем прежде всего у добровольца. В платформе Эвереста такого нет. Мы можем подключить в качестве одного из вычислительных узлов грид-систему, но это должны быть некоторые свои ресурсы, свои разнородные вычислительные ресурсы, которые мы объединяем. Поэтому она функционирует, конечно, и на текущий момент, если не ошибаюсь, есть сайт этой системы. Можно зайти, посмотреть, зарегистрироваться, посмотреть, какие у нее возможности. Но, к сожалению, сейчас подключено к ней не очень много ресурсов. Но можно подключить и свои, при условии, если вы решаете, конечно, свои задачи какие-то. Ссылку приложим, чтобы можно было посмотреть. Да, конечно. Спасибо. Спасибо.
Да, конечно. Вы сказали, что помогаете сейчас проектам, которые делают распределенные вычисления. Каким проектом сейчас помогаете? Смотрите, вопрос даже не в том, каким проектом мы помогаем, а мы стараемся осуществить поддержку там, где она нужна. То есть это может быть размещение серверов проектов. По-моему, лет 5 назад мы размещали у себя в своей серверной, в своем дата-центре сервера нескольких проектов в добровольных распределенных вычислениях. Можно было сказать, что половина российских проектов находилась именно у нас в серверной. Но, к сожалению, у нас возникли проблемы с помещением, и из-за этого быстро пришлось некоторые проекты релацировать. Некоторые проекты, к сожалению, временно прекратили свое существование, но сейчас возрождают. Помимо размещения оборудования мы можем помочь людям, которые вообще ничего не знают, мы можем помочь в разворачивании своего Boeing сервера, то есть разворачивании проекта. Сейчас мы поняли, что такой вариант подходит не то, что далеко не всем, а почти никому не подходит. Немногие ученые хотят заниматься именно этой кухней, распределенными вычислениями, поэтому мы сейчас разворачиваем свои зонтичные проекты для того, чтобы можно было проводить эксперименты, пусть небольшие, в течение недели, или большие, в течение нескольких месяцев или года, в интересах других ученых, других научных групп. Обязательно сообщите, когда развернете, пожалуйста, чтобы мы тоже подключились. Вы знаете, я вам могу даже дать ссылку. Сейчас уже функционирует некоторый тестовый проект. Я со своими студентами отрабатываю некоторые вещи. В этом проекте есть и комбинаторные задачи сейчас. Студент сейчас занимается исследованием гриль-системы из мобильных устройств. Мы в этот зонтичный проект подключаем не только персональные компьютеры и сервера, но еще подключаем и смартфоны, и планшеты. Подстраиваешься на андроид? Да, только на андроид, к сожалению. В целом таких устройств достаточно много, поэтому давайте так, нам бы с этим разобраться. Уже у нас вроде как все начинает получаться, но мы хотим некоторые еще специфические особенности взаимодействия именно с такими устройствами еще изучить. У вас уже есть название вашего зонтичного проекта? Вы знаете, изначально мы планировали, что он будет называться Optimate Home. Этот проект был достаточно популярен лет 5 назад, когда он занимался как раз задачами оптимизации. Сейчас пока именно как публичный проект Optimate Home пока не развернут. Но есть другой проект, именно тестовый. У него нет именно такого названия, но планируется, что этот тестовый проект превратится в Optimate Home. И он развернут на Boeing, то есть будет работать прямо в менеджере Boeing. Да, конечно. И я не досказал, еще третье приложение — это как раз обучение нейронных сетей, обучение глубоких нейронных сетей, поскольку такие задачи сейчас достаточно часто возникают. Возникает у студентов, возникает у исследователей. И не у всех есть хорошие видеокарты для того, чтобы можно было, грубо говоря, запустить какие-то эксперименты и быстро что-то обучить. И в целом я сталкивался уже сам, сталкивались мои коллеги, мои студенты с тем, что обучение какой-то большой нейронной сети — это прежде всего необходимость каких-то больших существенных ресурсов. Не всегда они есть. И иногда, к примеру, студент говорит, «Ну, вы знаете, я не смогу на своем ноутбуке. У меня есть видеокарта, но для того, чтобы мне что-то обучить, чтобы у меня были хорошие результаты, мне нужно потратить два месяца. Извините, мой ноутбук не выдержит. Наверное, я сделаю что-то поменьше». Ну и всегда, конечно, очень жалко, когда результат может быть получен, но он утыкается как раз в отсутствие ресурсов. И я надеюсь, что как раз этот проект, этот подпроект обучения нейронных сетей, он позволит вот таких ситуаций, если не полностью избежать, то, по крайней мере, сделать их, чтобы их было как можно меньше. Вы тоже собираетесь в OptumAtHome вставить этот проект? Да. Классно. Да. Сейчас мы тестируем именно этот подпроект, и я надеюсь, что он уже заработает там, может быть, даже в этом месяце. Вы уже давно занимаетесь распределенными вычленениями в России. Скорее всего, знакомы с такими проектами, как Gerasim, SAT, Acoustic, которые тоже из России и запускались на платформе Boeing, набирали какую-то популярность и потом завершали свою работу, в связи с тем, что, наверное, достигли необходимых результатов. Можете ли как-то коротко про них рассказать, пожалуйста? Да, конечно. Кроме того, я гурт тем, что как раз какое-то время проекты SAT at Home и Acoustic at Home как раз находились в нашем дата-центре, в нашей серверной, и мы могли быть для наших коллег чем-то полезны. Значит, проект Acoustic at Home это вообще был проект, где это была совместная работа нескольких институтов, притом географически распределенные. Получалось, что это и Москва, это Иркутск, это Дальний Восток. Изначально инициатором был, естественно, Дальневосточный океанологический институт. И они исследовали дно Японского моря, и они исследовали пласты воды разной температуры. И вопрос состоял в том, что либо они используют какое-то высокоточное, дорогое оборудование, и при этом получают результаты сразу, либо они используют какое-то дешевое оборудование, но при этом должны решить определенные сложные математические задачи. В результате, оно и понятно, если эти задачи могут быть решены, почему бы не попробовать обычное дешевое оборудование, не то что обычное, просто дешевое оборудование, провести экспедицию, а потом результаты этой экспедиции потом как-то обработать на распределенной системе или на кластере и получить какие-то результаты. В результате в проекте Acoustic At Home, я так понимаю, были обработаны данные двух экспедиций. Я так понимаю, общая их продолжительность была, по-моему, 2 или 3 месяца. И я так понимаю, что наши коллеги как раз из океанологического института получили определенный результат. После двух этапов, двух экспериментов, проект на текущий момент был закрыт. Но вследствие того, что результаты были получены. Сможете познакомить с авторами проекта, чтобы мы записали с ними подкаст как раз про результаты? Да, конечно. Я как раз очень хотел порекомендовать вам Олега Заикина как раз из Иркутска, из Сибирского отделения Российской академии наук. Он как раз является организатором Acoustic At Home и фактически он являлся некоторым координатором и объединяющим звеном для проекта Acoustic At Home. Уже не первый раз слышу про Олега Заикина. Обязательно с ним запишем подкаст. Я уже говорил, что сейчас уже в самом начале мы еще друг друга когда не знали, фамилии часто мелькали, а сейчас мы уже практически стараемся встречаться, мы стараемся обмениваться какими-то результатами, какими-то новостями и в целом более-менее понимаем, кто чем занимается. Но это хорошо, поскольку можно спросить, например, в какой-то определенной области, что нового для того, чтобы в том числе сэкономить себе время. Не изучать статьи по другой тематике, а сразу же спросить у знающего человека. Всегда приятно. Я так понимаю, следующая оффлайн-встреча планируется где-то осенью на очередном суперкомпьютерном форуме российском? Осенью мы планируем сначала собраться в Курске как раз у Эдуарда Ватутина. Значит, он будет проводить конференцию распознавания. Потом, я надеюсь, мы соберемся на суперкомпьютерных днях в России. Конференции будут проходить рядом. Конференция будет проходить уже в Москве. А национальный суперкомпьютерный форум будет проходить в конце ноября, в начале декабря в городе Переславль-Залес. Опять же, если сможем, то, конечно, выберемся туда и обязательно встретимся, обменяемся результатами, обменяемся мнениями. Отличный повод посетить кучу интересных мест Центральной России.
Мы, вы рассказали про Acoustic At Home, а что по поводу Sat At Home и Gerasim At Home, то есть это те российские проекты, про которые я слышал, если я что-то не упомянул, ну кроме естественно сейчас работающих Rake, Surge, Seedok и ODLK, тоже есть два проекта российских, насколько я понимаю, если что-то не упомянул, подскажите пожалуйста, если все упомянул, то пару слов про Sat At Home и про Gerasim. Проект Sat At Home, ну наверное, мы будем считать одним из первых проектов, наверное одним из самых успешных проектов и я считаю, что этот проект долгожительный. Этот проект как раз организовал Олег Заикин, он сначала решал определенные задачи, именно SAT задачи. В рамках этого проекта он получил, я так понимаю, некоторые результаты. Изначально, я так понимаю, он это делал в интересах, как бы по направлению криптография, вот поскольку именно SAT подход является именно распространенным для решения некоторых криптографических задач. Но потом, спустя какое-то время, он перешел на структуры, математические структуры, которые называются латинские квадраты. И я бы, наверное, сказал, он являлся, ну если не нулевым пациентом, то тем не менее, тем человеком, который смог заинтересовать вот этой проблематикой многих наших коллег, в том числе и меня. И вот как раз, когда он начал решать задачи, связанные с латинскими квадратами, с исследованиями свойств латинских квадратов, то как раз аудитория, даже не то, что аудитория, а помощники, организаторов проектов, она разрослась достаточно быстро до такой небольшой научной группы, программистской и научной, которая смогла сделать достаточно много интересных вещей. Но, как вы знаете, при любых исследованиях, как бы не факт, что то, чему мы стремимся, будет основным результатом. И здесь получилось, наверное, точно так же. Он начал исследовать латинские квадраты, и при этом ему выдали доступ к кластеру, наверное, так будет правильнее, к одному кластеру, который находится как раз у него в институте. Потом дали доступ еще к другому кластеру, который находится в Москве. Это как раз мои коллеги, так сказать, позаботились об этом. И получилось так, что он мог существенно нарастить свои вычислительные ресурсы, ресурсы проекта. Но нужно было что-то сделать, нужен был какой-то интерфейс для того, чтобы можно было подключить в фоновом режиме кластер к проекту добровольных распределенных вычислений. И в результате, в течение нескольких, по-моему, за год или за два, им и еще несколькими людьми, в том числе Максимом Мунзюком, был разработан некоторый интерфейс, который позволял, во-первых, в фоновом режиме присоединять ресурсы кластера. Он позволял это делать именно действительно в фоновом режиме. Это очень важно, поскольку другие задачи, которые лишались на кластере, грубо говоря, им Boeing не мешал. Грубо говоря, вычисления, которые проводились в рамках этого проекта. И в какой-то определенный момент поняли, что именно разработка этого интерфейса, наверное, была не то что очень важной, она до сих пор очень важна. И она позволила увеличить мощность этого проекта, я так понимаю, в несколько раз. Кроме того, потом Олег рассказывал, с ним делились системные администраторы на его кластере. Говорили, знаешь, твое вычисление, твой Boeing, нам позволяет выявлять плохие узлы. То есть, узлы, которые начинают сбоить, а тут же по статистике у них начинают идти ошибки по решению задач Boeing. И совершенно спокойно можно уже точно определить, а узлов-то на кластере много, поэтому можно определить, на какой узел стоит обратить внимание. И с высокой степенью вероятности можно обнаружить какую-то аппаратную ошибку. Память битая. До того, как этот узел вызовет ошибку уже в гигантской задаче, которая будет считаться несколько дней, задействует сотню узлов, но завершится ошибкой из-за одного узла. Правильно понимаю? Вы знаете, я, к сожалению, не знаю, какие задачи помимо этого решались. Но в целом вы правы. И очень часто у системных администраторов, пока узел не прекратит просто работу, или как раз какие-нибудь серьезные ошибки не возникнут, он работает. А тут позволяли выявлять на ранних стадиях как раз некорректную работу узлов. Я бы сказал, некорректную. Не ошибочную, а фатальную. Именно некорректную. Делать это быстро и эффективно. И если возвращаться к Satellite Home, получается, что проект Raysearch, он как бы вырос из Satellite Home. Ну, давайте так. Еще раз говорю, Олег Заикин нас всех заинтересовал исследованиями по латинским квадратам. И действительно так получилось, что сейчас, наверное, львиная часть проектов, именно российских, так или иначе связана как раз с этими исследованиями. Да, действительно. Не то, что я бы не сказал, что Raysearch именно, так сказать, вышел из SAT. Просто так получилось, что организатор Raysearch, это Максим Манзюк, это Наталья Никитина. И они посчитали, что они могут решить другие задачи. Но, тем не менее, по той же теме. Исследование свойств латинских квадратов. И здесь, наверное, самым первым проектом, помимо Satellite Home, наверное, на равне есть еще и Gerasim at Home, который тоже, опять же, занимался сначала просто определенными исследованиями. Опять же, они не были связаны с латинскими квадратами, но вот на протяжении, наверное, уже лет пяти или семи он занимается именно различными, решением различных задач именно по латинскому квадрату. А Gerasim at Home, насколько я понимаю, сейчас не активен. Изначально Gerasim at Home, на самом деле, это тоже очень интересный проект. И если все остальные проекты, это действительно нативный Boeing, то есть это Boeing-сервер, который развернут на Linux-подобной системе, это может быть Debian, может быть Ubuntu, то Gerasim at Home работал под Windows. И как бы был и есть некоторый энтузиаст, который сделал именно этот проект именно под Windows. То есть он использовал основу Boeing, но при этом многие модули переписал и сделал сам. То есть фактически это получился действительно вот свой сервер, немножко отличающийся от Boeing-сервера, но тем не менее, который поддерживал все его функции. То есть, грубо говоря, Boeing только под Windows, Boeing-сервер только под Windows. Его создатель попытался решить ряд вопросов. Я так понимаю, в определенный момент ему это удавалось, но последний год, я так понимаю, были определенные проблемы с самим сервером, на котором был Gerasim развернут. И в целом нужно сейчас просто посмотреть, связаться с этим энтузиастом, с этим добровольцем, который в целом отдал именно добровольным распределенным учрением именно в России, наверное, последние лет 20-15 лет. То есть он занимался ими достаточно давно. Тоже буду благодарен контакту, чтобы связаться и поговорить с ним. Да, конечно. Человек немножко специфический, но знает очень много. Поэтому мы в любом случае ему очень благодарны за то, что он, во-первых, сделал проект очень длительное время, поддерживал Герасима Тхуму, ну и, кроме этого, он просто был добровольцем, который всегда занимал активную позицию и который сподвиг, можно сказать, других оставаться в распределенных вычислениях или начать считать как доброволец или организовывать свои проекты. Поэтому, да, в этом смысле очень хороший человек. Сможете, если с ним пообщаться, будет очень хорошо. Надеюсь, что он много вам сможет рассказать. Вы сказали про возможность обучать глубокие нейронные сети, то есть это вот современные популярные нейросети на графических процессорах, я так понимаю, добровольцев. Скажите, пожалуйста, подробнее про это, что получается, делали ли уже какие-то серьезные обучения на этот счет и, опять же, можно ли добровольцам сейчас подключиться, чтобы помогать вам? Как бы считать нейронные сети, обучать глубокие нейронные сети можно же не только на графических ускорителях, можно их считать и на обычных центральных процессорах. Вопрос в том, что таких центральных процессоров просто должно быть тогда достаточно много. Но при этом мы вспоминаем, что если у нас есть распределенная вычислительная система, то скорее всего узлы, которые к ней присоединены, они гетерогенны, то есть они различны по своей вычислительной способности, ну и фактически на некоторых может быть ГПУ, графический ускоритель, а на некоторых его может и не быть. Поэтому наша задача использовать все ресурсы, условно говоря, предоставляемые ресурсы на 100%. Если у нас есть компьютер, не очень сильный, только с ЦПУ, только с центральным процессором, давайте его использовать. Есть компьютер, на борту которого есть две видеокарты, игровой, отличной, с большим количеством памяти, давайте ему выдадим столько заданий, чтобы он тоже был задействован на 100%. Для разного вида систем, я бы так сказал, разного вида гетерогенности, для разной степени гетерогенности есть уже достаточно давно разработанные несколько методов именно распределенного глубокого обучения. Самый простой метод – это мы когда отдаем некоторые промежуточные задания, фактически нейронная сеть расположена на каждом узле, и она обучается на каком-то локальном множестве изображений или на дата-сети, сейчас модно говорить. И эти локальные дата-сеты выдаются каждую итерацию, поскольку процесс глубокого обучения итеративный, соответственно, в начале каждой итерации мы раздаем некоторые локальные дата-сеты на узлы, на этих локальных узлах они обучаются, и потом скидывают обратные результаты на один узел, наверное, на сервер. И там они агрегируются, фактически там создается и обновляется глобальная модель нейронной сети. И, соответственно, в зависимости от того, сколько итераций у нас будет, столько раз модель это обновляет. Очень хорошо, когда у нас есть достаточно большие дата-сеты, которые могут состоять из миллионов, сотен миллионов, даже миллиардов изображений. В этом случае, даже если у нас есть 100 компьютеров, мы все равно можем достаточно адекватное время, я бы даже сказал небольшое время, задействовать все эти изображения в обучении. Потому что, на самом деле, представьте себе, у вас есть один вычислительный узел, каким бы он крутым не был, сколько бы там не было памяти, не было бы там графических ускорителей, но обработать большое количество изображений он просто не в состоянии. Одно дело миллион изображений или сотни тысяч. А если это сотни миллионов, ну, наверное, будет как-то уже нехорошо, это будет очень долго. А если мы сделаем следующим образом. Мы возьмем и разделим вот этот дата-сет и будем брать только по маленьким частям. Будем каждый раз выдергивать и формировать локальные дата-сеты. Сначала из одной части дата-сета, потом из другой. И, к примеру, через сотню или через тысячу итераций мы обнаружим, что все изображения из нашего общего множества, из общего дата-сета, были уже использованы. В результате уже классно. Мы даже на достаточно большой нейронной сети смогли обучить на достаточно большом дата-сете. И большая нейронная сеть, и большой дата-сет. И в целом это можно сделать в том числе с помощью распределенной вычислительной системы. При этом хочу подчеркнуть, что здесь мы уже не ограничиваемся именно Boeing. У нас некоторые ресурсы могут браться именно в облаках.
Иногда даже получается так, что некоторые исследователи и даже коммерческие компании уже заинтересованы в том, чтобы нейронная сеть посчиталась достаточно быстро, обучилась достаточно быстро, и они для этого готовы потратить определенные деньги. То есть можно просто обучить именно на облаке. Но, опять же, нужно все равно между собой эти ресурсы соединить, допустим, все ресурсы могут не располагаться в одном дата-центре, они могут располагаться в нескольких дата-центрах, в нескольких облаках, и как раз здесь мы можем использовать различные программные обеспечения, которые нам позволяют объединить это в единую распределенную вычислительную систему и, соответственно, достаточно быстро обучить. Boeing для этого тоже подходит, но следует учесть, что все-таки специфика Boeing в том, что именно эта система, эта платформа заточена именно на длительное вычисление и очень большие накладные расходы именно на обмен результатами, входными данными и так далее. Поэтому нужно достаточно точно выверять, сколько у нас будет проходить обучение в рамках одной итерации на одном узле. Если это будут секунды, наверное, это неинтересно, нужно что-то менять. Если это будут десятки минут, наверное, это то, что нужно. Например, 10 минут, час-два – вообще идеально. Но при этом следует учесть, что если у нас достаточно большая нейронная сеть, нам нужно большое количество изображений даже в локальном дата-центре, соответственно, эти изображения тоже нужно скачать на этот узел. Мы часть этих вопросов стараемся решить, некоторые уже решены, нами уже были опробованы несколько методов. Это синхронное распределенное обучение, это асинхронное распределенное обучение, когда мы результаты не сначала все собираем вместе, а агрегируем. При том, получается так, что быстрые узлы быстро посчитали результат, отдали его и ждут, пока посчитают медленные узлы. Мы еще сделали так называемый асинхронный метод, когда результаты от узла отправляются на сервер и, соответственно, эти результаты не ждут остальные результаты, грубо говоря, добавляются в глобальную модель по мере их поступления. Это немножко увеличивает время обучения, точнее увеличивает количество итераций, которые нам нужно сделать, но позволяет избежать простой некоторых узлов. Обычному разработчику, я извиняюсь, перепью, чтобы воспользоваться теми наработками, которые у вас есть. Что ему нужно сделать? Вы знаете, ему в целом многого делать не нужно. На самом деле сейчас уже существует очень много различных, я бы так сказал, библиотек, в том числе в Питоне. Пайтон сейчас, наверное, один из самых популярных языков. Если мы говорим о глубоком обучении, то, наверное, это самый популярный, самый востребованный язык. В машинном обучении, в глубоких нейронных сетях. И в целом там даже есть некоторые внутренние элементы, которые нам позволяют организовать именно распределенное обучение. Даже в рамках одной машины, пусть там, или на нескольких виртуальных машинах. Разработчик может потренироваться так, и после этого может сформировать вычислительное приложение, при том, которое будет расположено в контейнере, к примеру, в докер-контейнере. А дальше этот докер-контейнер может разворачиваться уже на узлах. Там можно его отправлять целиком или разворачивать уже на узле для того, чтобы внутри этого контейнера с определенным окружением обучалась нейронная сеть. Нужно ли ему что-то специально сделать для того, чтобы обучение нейронной сети можно было разделить на части? Учесть какую-то библиотеку или что-то еще? Да, конечно, в любом случае просто глубокое обучение отличается от распределенного глубокого обучения. Я своим студентам в рамках курсовых работ, дипломных работ, все время подсказываю и все время стараюсь дать может быть какую-то простую задачу именно на распределенное глубокое обучение. Чтобы они поняли, собственно, эту схему, когда у нас данные разделяются, но после этого их нужно еще как-то собирать. Какие данные нужно собирать? Потому что для людей, которые этим занимаются достаточно давно, некоторые вещи очень понятны и просты. Человеку, который только с этим столкнулся, очень тяжело. К примеру, многие знают, что есть стокастический градиентный спуск как метод обучения глубокой нейронной сети. Но некоторые не понимают, что, к примеру, когда мы передаем результаты обучения локальных моделей, мы передаем обратно не веса нейронной сети, а мы передаем изменения их, градиенты, для того, чтобы понять, насколько та или иная локальная модель изменилась. И нам важны именно изменения, а не абсолютное значение весов нейронной сети. И после этого нам эти изменения, градиенты, нужно как-то объединить, взвешивать, просто взять среднее между ними, учесть время задержки, может быть, учесть величину локального датасета на каждом узле. То есть на самом деле там очень много специфических вещей. Поэтому разработчик, наверное, сразу с нуля ему тяжело будет сделать распределенное глубокое обучение. Но в целом, я думаю, разобравшись в течение дня или двух, я думаю, это можно сделать легко. В целом есть такой опыт, так сказать, и у меня, у моих студентов. То есть многие вещи, если есть грамотный преподаватель, если есть, может быть, грамотный мануал, грамотное какое-то объяснение, в целом этого достаточно для того, чтобы достаточно быстро начать. Поэтому для разработчика я считаю, что все-таки порог входа достаточно низкий. Обратиться нужно к вам для того, чтобы получить эти мануалы? Или их можно где-то в открытых источниках? Да ну что вы, сейчас уже все в открытых источниках. Если интересует какой-то специфический метод именно распределенного глубокого обучения, то можно обратиться ко мне. Но в целом статей уже достаточно много, при том сейчас уже даже есть много материалов, которые вместе с кодом. То есть можно даже самому не программировать, а просто взять чужое, посмотреть, как-то модифицировать, и получить в целом готовый результат, который нужен для решения определенной задачи. Не любую нейросеть можно обучить распределенно? Наверное, да. Но если мы говорим о достаточно простых конструкциях, если мы говорим о сверточных нейронных сетях, если мы говорим, к примеру, о сетях прямого распространения, не рекуррентных, то в целом именно такое распределение достаточно простое. Я еще хотел рассказать о другом типе именно распределенного обучения, так называемом децентрализованном. То есть мы до этого с вами говорили о распределенном обучении, в котором есть все-таки некоторый узел, координационный сервер, который собирает все результаты узлов. Но в целом этот сервер является и слабым звеном. А мало ли, результаты на нем потеряются, он перестанет, он выйдет из строя, он перестанет отвечать. Ну и он просто должен быть достаточно мощный. И в результате получается, что это слабое звено. Мы можем этого избежать, сделав полностью децентрализованное распределенное обучение. То есть никакой глобальной модели у нас не будет. И в этом случае мы можем совершенно спокойно организовать именно обмен данными между просто узлами нашей распределенной системы. Они просто обмениваются между собой по определенному алгоритму. И тем самым, может быть не так быстро, но достаточно надежно могут обучиться. При этом хочу заметить, что в любой момент времени мы на любом узле можем иметь определенную обученную модель. Пусть не очень хорошо, но спустя большое количество итераций у нас, условно говоря, нейронные сети, их настройки, их веса будут примерно одинаковыми после того, как они обучатся. Выглядит как децентрализованная голографическая нейросеть, которая работает не на каком-то конкретном компьютере, а в сети. Вы знаете, я думаю, что в будущем, наверное, за этим методом большое будущее. Объясню почему. Если в самом начале именно децентрализованная, это было скорее некоторые теоретические изыскания, которые думали, а что мы сделаем, если действительно берем сервер, у нас будет децентрализованная модель обучения. То сейчас, когда данных становится все больше, а данные являются некоторыми персональными, то есть, грубо говоря, они не подлежат распространению в исходном виде. То в этом случае нам приходится обучать нейронную сеть на этих данных на том узле, на котором они расположены. И мы как раз тогда уже говорим именно о децентрализованном глубоком обучении, но с некоторым ограничением по данным. И тогда это широкий класс задач, который называется федеративное обучение. Когда у нас, к примеру, есть медицинские изображения, которые находятся, к примеру, в какой-то поликлинике, в какой-то клинике, и их никто никуда отдавать не будет. Они могут быть предоставлены только на определенном компьютере, на определенном сервере. Но на этом сервере мы, к примеру, можем обучить нашу нейронную сеть именно на этих изображениях. Таких клиник может быть достаточно много, сотни тысячи. Если мы организуем обмен между ними, но при этом не исходными данными, фотографиями, результатами исследований, а если мы организуем именно обмен именно вот такими градиентами нейронной сети, тем самым мы позволим сохранить приватность этих данных, а с другой стороны сможем объединить просто гигантский массив данных и получить обученную нейронную сеть на этом массиве. То есть результаты обучения на датасете, который есть в какой-то конкретной клинике, учтутся в работе всей нейросети, но при этом сами данные не будут расшарены и не утекут? Да. Притом, самое главное, вы понимаете, данные у нас не могут быть никоим образом восстановлены. То есть обучение нейронной сети, в целом, понятно, как оно происходит, но очень сложно понять, какие именно данные участвовали, то есть вычленить, к примеру, одну, к примеру, запись, одно исследование, к примеру, КОТ лёгких определенного пациента, этого сделать практически невозможно. То есть в этом смысле, я считаю, что именно за федеративным обучением достаточно большое будущее, очень во многих местах, во многих отраслях оно может быть использовано. Сейчас люди не любят шарить свои датасеты, тем более это не любят делать крупные организации, тем более если они государственные или связанные с медициной или другими чувствительными сферами. Я вам больше скажу, не просто организации, а отделение этих организаций, к примеру, есть Министерство здравоохранения, есть клиники, есть поликлиники. Если, допустим, в Москве, наверняка в Санкт-Петербурге есть некоторая информационная система, которая объединяет эти данные, то в рамках страны, наверное, это добиться удастся еще нескоро. Поэтому, если, к примеру, сейчас обучать нейронную сеть, то договориться именно о таком использовании данных, наверное, будет существенно проще, при этом данные действительно никуда не утекут и эти барьеры, организационные барьеры будут преодолены, я надеюсь, что гораздо быстрее, чем произойдет, когда расшариваются данные.
Вы еще в рамках своей деятельности занимаетесь изучением того, как происходит популяризация добровольных распределенных вычислений и, наверное, популяризация среди ученых самой возможности этим пользоваться. Подозреваю, что, например, у вас довольно много студентов, которые тоже могли бы участвовать в распределенных вычислениях, и вообще сама идея, что ученые шарят друг с другом ресурсы, которые им прямо сейчас не нужны, она выглядит довольно здравой. Вот что вы думаете о том, чтобы распространять информацию о распределенных вычислениях среди студентов, привлекать их к этому на всю их будущую профессиональную карьеру, и в целом, что вы сейчас изучаете по тематике популяризации распределенных вычислений? Прежде всего, сразу хочу сказать, что студенты, которых я обучаю, то есть я, как правило, читаю курсы на последних уже курсах, то есть это либо четвертый курс бакалавриата, либо это уже магистратура. То есть, как правило, студенты уже достаточно подкованы в программировании, они знают уже достаточно много, почти все работают. То есть это уже в целом взрослые, сформировавшиеся люди. И, естественно, я, если есть такая возможность, если позволяет именно программа курса, я им обязательно рассказываю, что такое распределенные вычисления, я им рассказываю, что такое добровольное распределенное вычисление. Я в целом стараюсь им дать понимание, что есть именно такой инструмент, и его можно использовать. Я с ними даже иногда провожу практические работы, когда они пробуют себя в роли добровольца. То есть они подключаются к какому-то проекту и пытаются понять, чем же занимается этот проект, какие у него особенности, какие настройки, ну именно в техническом плане у этого проекта существуют, может быть что-то можно улучшить. И в целом некоторым студентам действительно это нравится. Я опять же говорю, не скажу, что большинство из них потом остаются в этих проектах, они потом на постоянном не все становятся добровольцами, но некоторые из них заинтересовываются этим моментом, и потом либо у них это выливается в тему диплома, в сам диплом, который они реализуют именно по добровольным распределенным вычислениям, либо они уже просто становятся добровольцами, они уже интересуются какими-то определенными задачами и сами уже предоставляют ресурсы уже вне зависимости от того, чему их научили, что они сейчас делают на работе или на учебе. И в целом меня иногда приглашают в другие вузы, институты, университеты с лекциями, с докладами, и я в целом все время стараюсь рассказать именно о таком феномене, как добровольные распределенные вычисления, как grid-системы, я уже говорю, персональных устройств, которые можно использовать именно для решения научных задач. Мы рассказываем о своем опыте, мы рассказываем о том, как именно нам удалось, к примеру, что-то посчитать, как удалось это сделать нашим коллегам. И вы знаете, многие заинтересовываются, ну не скажу, что все, но я считаю, что уже несколько, грубо говоря, ну не проектов, наверное, экспериментов, наверное, так правильно будет говорить, уже как раз проведено именно благодаря тому, что вот я и мои коллеги рассказываем о том, что вот есть такой инструмент распределенного вычисления, можно что-то посчитать. Даже если у вас нет доступа к кластеру, все равно что-то можно сделать. Ну, нужно только делать. Мы вам поможем обязательно, да, мы вам предоставим то-то, то-то, но вам нужно будет сделать определенный момент. Вот, ну опять же говорю, некоторых пугает неизвестность, но некоторые соглашаются, говорят, да, действительно классный момент, как бы давайте попробуем. Вот, пробуют и действительно говорят, да, спасибо большое, как бы мы вот посчитали все, что нам нужно. У государства есть огромное количество сотрудников, которые работают на корпоративных компьютерах, которые установлены в библиотеках, учреждениях здравоохранения и так далее. Есть ли какая-то возможность привлечь государство к тому, чтобы предоставлять ресурсы вычислительные, которые находятся вот в этих государственных организациях, если мы не говорим про суперкомпьютеры и кластеры в данный момент? Если привлекать именно государство, наверное, это будет, ну, наверное, излишне сложно, да. Мне все-таки кажется, что здесь инициатива должна идти снизу. И у нас есть несколько примеров, когда действительно определенные организации, ну, как бы те же вузы, да, говорили о том, что давайте мы создадим свою внутреннюю грид-систему, так называемую корпоративную грид-систему, и в ней будем решать только свои задачи. Мы не будем решать чужие научные проекты, мы будем решать только свои. Но при этом мы будем использовать только свои вычислительные ресурсы. И примеры такие есть вот именно работающих проектов. И, кроме того, я вам могу сказать, что перед тем, как именно работать, исследовать добровольные распределенные вычисления, я именно занимался тем, что использовал все свои возможные ресурсы, да, все доступные мне ресурсы, да, для решения одной задачи. То есть фактически я сначала руками пытался, так сказать, без специализированного программного обеспечения просто создать такую же грид-систему для решения своих задач. На тот момент это было имитационное моделирование телекоммуникационных сетей. Вот. Честно скажу, было сложно, как бы, когда я понял, что есть такое программное обеспечение, которое позволит, ну, грубо говоря, вот эти вот все технические моменты, технические сложности убрать, я был очень рад, как бы. И не то, что сразу начал его использовать, мне потребовалось определенное время. Но после этого я понял, что это достаточно мощный инструмент не только как, как бы, публичная открытая, говорит, система, но и как корпоративная закрытая система, которая тоже может быть достаточно мощной. То есть получается, условный ВУЗ или институт может взять серверную часть Boeing и развернуть на нем свой проект, потом подключить Boeing-клиенты на всех компьютерах, которые установлены, например, в рамках здания, в том числе подключить этот модуль как дополнительный на кластере, чтобы использовать его свободные ресурсы и начать считать свои проекты. Потому что программное обеспечение open-source, и, соответственно, можно его использовать для подобных задач. Да, действительно так. При этом, если мы говорим именно о Grid-системе на платформе Boeing, то здесь мы не ограничиваемся зданием, и мы можем даже сделать так, что у нас, к примеру, ВУЗ, который расположен, к примеру, в нескольких зданиях, там, к примеру, в нескольких районах или даже, может быть, в нескольких городах, способен достаточно быстро развернуть такую систему. Поскольку для того, чтобы доброволец смог подключить свой компьютер, достаточно просто скачать Boeing-клиент и подключиться к определенному проекту. То же самое можно сделать в рамках какой-то организации. Сдается приказ, системный администратор или уже сами пользователи просто, опять же, подключают, скачивают Boeing-клиент, устанавливают его, подключаются к определенному проекту, и после этого этот ресурс, он у нас, условно говоря, в ГРИД-системе. То есть ВУЗ может предложить не только приказать использовать свои собственные ресурсы, но и предложить это сделать студентам, партнерам, компаниям, которые поддерживают этот ВУЗ, чтобы их вычислительные ресурсы тоже решали задачи вузовских исследований. Да, конечно, именно в этом и смысл. Кроме того, вот хочу рассказать о своем опыте, когда, сначала, когда только вот начал разрабатывать курс, который был посвящен, ну, в том числе распределенным вычислением, да, параллельным вычислением, распределенным вычислением и облачным вычислением, и я подумал, а, собственно, а как сделать так, чтобы студенты все-таки пощупали, что такое ГРИД-система. Пусть на платформе Boeing, а не на другой платформе. Как им дать именно пощупать? И я понял, что если каждый из них будет разворачивать свою ГРИД-систему, то в этой ГРИД-системе, ну, как бы максимум будет там 2-3 компьютера. Ну, там, условно говоря, один компьютер, телефон, планшет, может быть, еще временно подключат какой-нибудь там учебный компьютер в компьютерном классе в ВУЗе. Но это же неинтересно. Как бы ГРИД-система должна состоять, ну, как бы из нескольких десятков узлов. В результате я понял, что студенты должны подключаться к одной ГРИД-системе, но при этом они должны иметь возможность решать в том числе свои задачи. То есть, в этой ГРИД-системе будет много вычислительных задач. Ну, то есть, мы снова переходим к зоонтичному проекту. То есть, получают... Эти задачи, они, как правило, будут не очень сложными. То есть, некоторые из них будут считаться там день-два, но, тем не менее, количество ресурсов, пока студенты делают эту лабораторную практическую работу, оно будет несколько десятков вычислительных узлов. То есть, у себя они считали бы этого два месяца, а так они посчитали за день-два, в том числе с использованием ресурсов своих сокурсников, получили результат и пошли работать дальше. Тут вопрос в другом, что когда я им как раз как бы им порекомендовал развернуть именно такую ГРИД-систему, они исследовали именно как бы само взаимодействие узлов, они исследовали именно поведение ГРИД-системы. Поскольку, вы поймите, не может быть так, что, к примеру, у 30 студентов есть 30 вычислительных задач. Они не могут их одновременно решить на всех узлах. Может решить кто-то один. Тогда он получит, к примеру, прирост производительности около 30 раз, не более 30 раз. Но если это сделают все, то никакого роста производительности не будет. Но если они именно исследуют, как им, к примеру, сделать приложение, которое будет работать на ГРИД-системе, какие следует соблюсти ограничения, какая будет специфика, как подгружаются данные, как обратно загружаются на сервер результаты. Вот здесь им именно такой ГРИД-системы будет вполне достаточно. Поскольку именно вычислений, может быть, и не очень много, все они смогут поместиться, у всех будет проходить их задача. И, соответственно, они могут отлаживать свое приложение, как-то его менять и будут получать отклик от всех узлов, при том в автоматическом режиме. Не нужно будет обзванивать своих коллег, создавать чаты, а это можно будет сразу понять. Работает у них задача на каком-то узле, не работает. Какой-то узел по какой-то причине сбоит. Такое часто бывает именно в самом начале, при разработке. Но вот именно такой зонтичный учебный проект, такая учебная ГРИД-система, она будет очень полезна именно для исследования поведения и особенностей функционирования самой ГРИД-системы. Я заметил, что среди разработчиков Boeing, то есть тех, кто разрабатывает серверную и программную часть, довольно много русскоязычных разработчиков. Знаете ли вы кого-нибудь из них? Ну, вы знаете, я бы так сказал. Я, наверное, тоже уже не то, чтобы сам приложил к этому руку, но, к примеру, вот у меня был совсем недавно студент, который очень заинтересовался как раз вот добровольными распределенными вычислениями, он заинтересовался именно платформой Boeing, и сказал, вы знаете, я вот хочу поучаствовать, я хочу сделать что-то полезное, что-то хорошее. И получилась достаточно такая смешная ситуация, он очень хороший студент, очень хороший программист, и он смог сделать обеспечение целостности данных в рамках именно работы ГРИД-проекта, в рамках работы проекта добровольных распределенных вычислений на платформе Boeing. И он в какой-то определенный момент начал изучать Boeing, Boeing-сервер, значит, начал изучать именно открытый код и понял, что да, действительно, вот тут в каком-то месте есть ошибка. Но поскольку это был уже 22-й год, начались определенные события, а основные разработчики, они все-таки американцы, так сказать, это институт Беркли, и он написал туда, написал баг-репорт, и какое же было его изумление и возмущение, когда основной разработчик посмотрел его, баг-репорт удалил, создал свой и его исправил. Он мне в порывах возмущения жаловался, ну как же так, я нашел, сделал, а он взял, удалил, сам все сделал. На самом деле история имела продолжение, при том продолжение достаточно хорошее. Через какое-то определенное время с ним связался основной разработчик и предложил ему что-то доделать именно в рамках сервера Boeing. На что он согласился, я так понимаю, эта работа уже была сделана, если не ошибаюсь, летом 22-го года. То есть, я бы так сказал, этот баг-репорт был некоторым поводом для знакомства и начала сотрудничества. Поэтому я считаю, что я все-таки уже тоже приложил руку к тому, что увеличил количество русскоязычных разработчиков платформы Boeing. И на этом примере, и другие тоже были. А так, хотел сказать, что в целом Boeing действительно опенсорсная система, и некоторые модули могут быть модифицированы, добавлены именно самими организаторами проекта. К примеру, проверка данных специфична для определенного вида проекта, для определенного вида вычислительных приложений. И иногда разработчики это делают сами именно для своего проекта. Или, опять же, мотивация добровольцев — это система начисления баллов. Мы ее исследовали достаточно давно, и я был свидетелем споров, когда говорили о том, что на определенных проектах, на «Герасим-эдхоум», на «Сатэдхоум» несправедливая система начисления баллов. Поскольку добровольцы, ну, как бы, спортивная, некоторая спортивная составляющая, соревновательная составляющая, она тоже для них очень важна. И говорили, что, вы знаете, вот такой системы, к примеру, не должно быть, сделайте другую. И вот там были такие жаркие споры с добровольцами, между добровольцами, с организаторами проекта, что я понял, что для каждого отдельного проекта нужно эту систему, я бы сказал, допиливать как бы вот уже просто индивидуально. То же самое можно сказать и про другие модули. Поэтому в каком-то смысле каждый организатор проекта занимается доработкой именно системы. Пусть небольшой, но тем не менее. Спасибо, что пригласили. Большое спасибо.

Платформы