Как стать автором
Обновить
13
0
Damir Uzbekov @regamad

Пользователь

Отправить сообщение

Самый быстрый фреймворк на Диком Западе: ускоряем Django-rest-framework вместе с Rust

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров6.2K

Всем привет! Меня зовут Роман Кабаев, я инженер в отделе разработки инструментов тестирования компании YADRO. Вместе с коллегами мы разрабатываем собственную тест-менеджмент систему с открытым исходным кодом TestY.

На этапе запуска TestY в качестве фреймворка для разработки мы выбрали Django, так как он позволяет в максимально короткие сроки реализовать MVP. Однако развивать такой продукт — добавлять фичи, наращивать число пользователей и объем хранимых данных в системе — бывает сложно.

Мы действительно быстро запустили MVP, перевезли данные из TestRail с помощью плагинов, и команды тестирования YADRO уже более года пользуются системой. Но есть одно «но»: пользовательские сценарии разных команд сильно отличаются. Так, добавление в систему более полумиллиона тестов привело к просадке скорости работы определенных эндпоинтов, завязанных на древовидных структурах. 

Спойлер: камнем преткновения для нас стали CPU-bound задачи с большим количеством данных, о том, как я это выяснил, расскажу ниже. Изучив, как можно ускорить выполнение таких задач в Python, я протестировал несколько решений и нашел оптимальное. Если вы разрабатываете веб-приложение на Django или Python и так же, как я, хотите ускорить работу сервиса, читайте эту статью.

Читать далее
Всего голосов 20: ↑20 и ↓0+25
Комментарии14

Заглянем в хрустальный шар: как продвигается разработка стандартных матричных расширений RISC-V

Время на прочтение10 мин
Количество просмотров3.1K

Привет, Хабр! В предыдущем тексте мы рассмотрели все существующие матричные расширения. Возникает вопрос: ждать ли в ближайшее время новых расширений для матричных операций? Ответ — да, они разрабатываются прямо сейчас для архитектуры RISC-V. Новость может вызвать удивление, ведь в обзоре уже есть целых два матричных расширения RISC-V. Но оба эти расширения — кастомные, и, конечно же, в консорциуме RISC-V International задумались о разработке стандартного решения. 

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

Читать далее
Всего голосов 30: ↑29 и ↓1+37
Комментарии9

Панорама матричных расширений: от x86 до RISC-V

Время на прочтение15 мин
Количество просмотров7.3K

Матричное расширение ISA CPU… Что это и что оно делает? Уже из названия понятно, что это расширение позволяет ускорять операции над матрицами на CPU. Но задумывались ли вы когда-нибудь, какие они бывают, когда появились, кто и как их создает?

Меня зовут Валерия Пузикова, я эксперт по разработке ПО в компании YADRO, к.ф.-м.н. Около 15 лет разрабатываю численные методы для решения задач линейной алгебры, дополненной и виртуальной реальности, аэрогидродинамики. Вычислительные задачи таких классов всегда приводят к работе с матрицами больших размерностей, поэтому критически важным становится ускорение матричных операций, в том числе с помощью расширений. 

Матричные расширения появились не так давно — чуть более трех лет назад. Несмотря на это, они есть у каждой уважающей себя процессорной архитектуры, в том числе и у относительно молодой открытой RISC-V. Почему их так много и чем они отличаются? Поддерживаются ли разреженные матрицы? Об этом и многом другом вы узнаете из статьи. Приготовьтесь, будет интересно и (спойлер!) без многоэтажных формул. 

Читать далее
Всего голосов 61: ↑60 и ↓1+76
Комментарии38

Ищем Арнольда Шварценеггера среди мужчин, женщин и детей с помощью нейросети на С++

Уровень сложностиСредний
Время на прочтение24 мин
Количество просмотров8.6K

Привет, Хабр! Меня зовут Кирилл Колодяжный, я ведущий инженер-программист в YADRO. Помимо основных рабочих задач, включающих исследование проблем производительности СХД, я увлекаюсь машинным обучением. Участвовал в коммерческих проектах, связанных с техническим зрением, 3D-сканерами и обработкой фотографий. В задачах часто использовал С++, хотя машинное обучение традиционно ассоциируется с Python. Этот язык программирования буквально захватил сферу, его используют повсюду — от обучающих курсов до серьезных ML-проектов.

Однако Python — не единственный язык, на котором можно решать задачи машинного обучения. Так, альтернативой может стать С++. Если последний вам ближе, вам будет интересен и полезен этот текст.

Под катом разберемся:

как организовать работу с данными и загрузку обучающего датасета, 

как описать структуру нейронной сети, 

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

как организовать конвейер обучения сети, 

как использовать предобученные глубокие сети для решения задач. 

Читать далее
Всего голосов 20: ↑19 и ↓1+20
Комментарии15

Митап по С++ в Питере и онлайн: цена абстракции, статический анализ и дискуссия о код-ревью

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров1.4K

20 марта собираемся на бесплатном митапе в Санкт-Петербурге и онлайн. Константин Владимиров расскажет о цене абстракции, а разработчик из команды телекома YADRO Владимир Леонтьев на примере инструмента генерации RPC-серверов покажет, как написать кодогенератор. В конце встречи создатель Sprinx Андрей Аксенов, разработчик VK AdTech Станислав Юрченко, техлид Kaspersky Александр Еналдиев и разработчик YADRO Илья Казаков вместе с гостями и зрителями митапа обсудят тонкости код-ревью.

В этом материале делимся программой митапа. Регистрация уже открыта — переходите по ссылке и заполняйте форму, чтобы присоединиться к мероприятию.

Читать далее
Всего голосов 6: ↑5 и ↓1+7
Комментарии0

Митап для FPGA-инженеров и разработчиков систем на кристалле в Минске и онлайн: от верификации до запуска тестов

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.6K

Привет, Хабр! 2 марта собираемся в Минске и онлайн на бесплатном митапе по FPGA, ASIC и RTL. Обсудим итеративную сборку проектов и имплементацию больших дизайнов на ПЛИС, подходы к верификации, а также систему бронирования и запуска тестов на сотнях стендов за раз.

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

Читать далее
Всего голосов 10: ↑9 и ↓1+13
Комментарии0

Расширяем тестовый фреймворк с помощью Pytest-плагинов. Часть 2: практика

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров3.4K

В первой части статьи мы разбирались с теорией, которую нужно знать для создания собственных Pytest-плагинов: фикстурами, маркерами и хуками. А теперь перейдем к практике. 

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

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии0

Кто на новенького: как справиться со стрессом и избежать провалов при адаптации в новой компании и команде

Время на прочтение13 мин
Количество просмотров6.8K

Привет, Хабр! Я Оксана Нечитайлова, руковожу отделом сервисного дизайна в YADRO. В разработке продуктов я уже более 16 лет и за свою карьеру сменила несколько компаний, сфер бизнеса и рабочих ролей. В общем, не раз «обнулялась» и проходила периоды адаптации в новой команде или направлениях, где много неизвестного. С этим опытом (на собственных шишках) я стала замечать, какие ошибки на старте работы в компании и в новой роли мы обычно совершаем. Интересно, что в обсуждении этого вопроса с коллегами-тимлидами мы обнаружили, что они делали те же самые ошибки и вели себя похожим образом. Есть общий паттерн поведения, характерный для многих и на который можно повлиять.  

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

Понимаю, что у кого-то может быть полярный опыт и альтернативное мнение — буду рада, если вы поделитесь мыслями в комментариях.

Читать далее
Всего голосов 15: ↑14 и ↓1+20
Комментарии4

Расширяем тестовый фреймворк с помощью Pytest-плагинов. Часть 1: теория

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров5.5K

Всем привет! Меня зовут Александр Волков, я занимаюсь интеграционным и компонентным тестированием в YADRO. В числе продуктов компании есть системы хранения данных и, говоря о тестировании, я буду иметь в виду в первую очередь работу с СХД. Однако описанные подходы пригодятся всем, кто ищет инструменты для создания тестового фреймворка и расширения его возможностей под свои задачи. 

Я расскажу, как можно разрабатывать свои плагины для тестового фреймворка, построенного поверх Pytest. Для удобства чтения статья разделена на две части. В первой рассмотрю минимально необходимую теорию: фазы работы Pytest, а также пользу фикстур, маркеров и хуков. Во второй части перейду к практике: разберу два примера реализации плагинов из нашего фреймворка и затрону вопрос о том, когда стоит выносить код в отдельный плагин. 

Читать далее
Всего голосов 16: ↑16 и ↓0+16
Комментарии5

Обзор подходов к проблеме шероховатости фольги при проектировании высокоскоростных плат

Уровень сложностиСложный
Время на прочтение24 мин
Количество просмотров6.5K

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

Меня зовут Петр Беляев, я старший системный архитектор в YADRO. Один из многочисленных аспектов деятельности команды, в которой я работаю, — проектирование многослойных высокоскоростных печатных плат. В статье я расскажу о моделях влияния шероховатости фольги на высокочастотные модели в проводнике и приведу пример их применимости при разработке серверной материнской платы, целевой процессор которой поддерживает PCIe Gen5. Но сначала дам контекст, который подробнее ответит на вопрос о том, зачем это все нужно.

Читать далее
Всего голосов 37: ↑37 и ↓0+37
Комментарии21

Зимняя школа по RISC-V — актуальные знания по перспективной открытой архитектуре от экспертов

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров3.4K

С 2 по 8 февраля пройдет Зимняя школа «Программирование для RISC-V» — недельный интенсив от YADRO и ННГУ им. Н.И. Лобачевского. Программа состоит из двух частей: онлайн-лектория и очной проектной работы.

На бесплатных онлайн-лекциях все желающие познакомятся с основами разработки на основе открытой архитектуры RISC-V — перспективной технологии, предназначенной для создания процессоров, микроконтроллеров и разработки ПО. Лекции позволят вам выстроить полноценное представление об архитектуре и ее особенностях: вы начнете с азов, а закончите изучением векторных расширений RISC-V и ее возможностей для высокопроизводительных вычислений. Информация подойдет и новичкам в теме, и тем, кто знает теорию и хочет делать первые практические шаги в разработке под новую архитектуру. 

А студенты очной формы обучения смогут решить реальную задачу, связанную с RISC-V, под руководством преподавателей Университета Лобачевского и разработчиков YADRO на базе вуза в Нижнем Новгороде. 

Подробнее о лекциях и проектах, а также о том, как стать участником школы, читайте под катом.

Узнать больше →
Всего голосов 10: ↑8 и ↓2+8
Комментарии4

Полезные материалы для С++ разработчика: о новом стандарте, висячих ссылках и технических собеседованиях

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров9.8K

Привет, Хабр! Принесли материалы с недавнего митапа по С++ — сохраняйте в закладки, чтобы посмотреть на новогодних каникулах. Что интересного ждет в подборке? 

Дискуссия о технических собеседованиях, из которой вы узнаете, какие красные флаги кандидатов отмечает Константин Владимиров, как Елена Степанова относится к алгоритмическим задачам и почему Илья Шишкову важны софткиллы. 

Обзор приятных и неприятных фич С++ 23 с точки зрения практикующего программиста, который опробовал новый стандарт на реальных проектах.

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

Читать далее
Всего голосов 13: ↑11 и ↓2+13
Комментарии0

Особенности и проблемы mock-сервера Swordfish API Emulator

Время на прочтение13 мин
Количество просмотров953

Эта статья — продолжение истории про разработку Ansible-модулей для взаимодействий с системами хранения данных (СХД) через API, которое удовлетворяет спецификации Swordfish. Эти модули в перспективе облегчат управление парком СХД от разных производителей.

Чтобы тестировать работоспособность созданных модулей, нужен настоящий сервер СХД (или тестовый mock-сервер), который предоставляет необходимый REST API. Получить настоящий сервер от производителя СХД — сложная задача, которая требует финансовых и временных затрат на получение программно-аппаратного обеспечения. В случае open-source разработки такая опция доступна не всем командам. 

Компания SNIA, разработчик спецификации Swordfish, подумала об этом и предоставляет разработчикам свободно распространяемый mock-сервер — Swordfish API Emulator. В рамках проекта Лаборатории YADRO на базе СПбПУ Петра Великого мы протестировали его в работе. В статье расскажем, как он устроен и как с ним взаимодействовать в задачах.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Опыт автоматизации управления FPGA-стендами для распределенной команды: отказ от готового решения и работа над ошибками

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров2.5K

В software-разработке с автоматизацией обычно все неплохо: более-менее понятно, как настроить CI и автоматизировать отдельные этапы CI-конвейера. Есть множество готовых решений и практик. Но, когда речь заходит об автоматизации тестирования на «железе», появляется множество нюансов. Например, не всегда понятно как автоматизировать процессы, которые обычно делают люди, — банальную перезагрузку устройства в другом городе. Или другая особенность — целевые аппаратные ресурсы масштабируются не так хорошо, как софт, поэтому приходится придумывать свои подходы к распределению времени доступа к стенду для СI-конвейеров и инженеров.

Меня зовут Игорь Большевиков, я инженер по системному программированию систем на кристалле в YADRO В статье я расскажу о нашем опыте автоматизации процессов, связанных с разработкой на FPGA-стенде: удаленной загрузке плат, бронировании аппаратных ресурсов и решении вопросов по координации для распределенной команды. Я опишу ключевые этапы задачи без лишних технических деталей. Возможно, статья будет полезна тем, кто занимается или кому предстоит заняться автоматизацией работ с FPGA.

Читать далее
Всего голосов 30: ↑30 и ↓0+30
Комментарии4

Go на митап: обсудим sync.Pool, свой mini-k8s, паттерны и сообщения об ошибках

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров1.6K

28 марта встречаемся на митапе по Go-разработке с инженерами из команд систем хранения данных и телекома YADRO, а также разработчиками из VK и AvitoTech. Эксперты расскажут, как: 

снизить нагрузку на сборщик мусора,

сделать свой mini‑k8s,

написать библиотеку для обработки ошибок,

использовать горутины грамотно и безопасно.

Митап пройдет в Нижнем Новгороде и онлайн. Регистрируйтесь на встречу и выбирайте удобный формат участия. А под катом читайте программу и знакомьтесь со спикерами.

Читать далее
Всего голосов 11: ↑10 и ↓1+14
Комментарии0

Укрощение примитивов синхронизации: сравниваем решения задачи с построением пула потоков на С и Go

Время на прочтение21 мин
Количество просмотров4.4K

Эта статья основана на истории об одном личном челлендже. Задача звучала так: помочь с реализацией взаимодействия компонентов в программном комплексе заказчика. Иными словами, понадобилось IPC для дальнейшего развития продукта. Вызов заключался в том, что в обязательных требованиях стояло использование чистого С. Другие языки, включая С++ и Go, не рассматривались. 

В итоге я получил интересный опыт в рамках системного и параллельного программирования. Меня зовут Алексей Буреев, я работаю старшим инженером по разработке ПО в YADRO, сейчас мой основной рабочий язык программирования — Golang. В этой статье я проведу небольшой эксперимент: покажу, как можно решить одну задачу с помощью разных языков программирования. Языку С я противопоставлю Go, в основе которого есть исторические наработки проектирования языка С. Для этого немного заглянем «под капот» стандартных типов данных, которые уже были заботливо созданы для нас разработчиками языка.

Всех заинтересованных прошу под кат.

Читать далее
Всего голосов 16: ↑14 и ↓2+17
Комментарии16

«Код-ревью — это когда твои комментарии в интернете действительно читают»: дискуссия с разработчиками на C++

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров4.3K

Заходят как-то на Хабр С++ разработчики из крупных компаний, а у них спрашивают: что такое код-ревью и используют ли они спецификатор final. Эти и другие вопросы с подвохом мы задали инженерам из YADRO, VK, Kaspersky, Syntacore и PVS-Studio. В итоге обсудили инструменты для работы со сторонними зависимостями, интерфейсы «плюсовых» библиотек и отказ (или нет) от exceptions.  

Продолжим дискуссию на митапе по С++, который пройдет онлайн 20 марта. Регистрируйтесь, подключайтесь к трансляции и пишите вопросы и комментарии в чат — ведущие озвучат некоторые из них.

Читать далее
Всего голосов 13: ↑12 и ↓1+15
Комментарии5

Материалы для разработчиков систем на кристалле: функциональная верификация, итеративная сборка, свой ПЛИС-кластер

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.5K

Привет, Хабр! Принесли материалы с недавнего митапа для FPGA/ASIC/RTL-инженеров — добавляйте в закладки, чтобы посмотреть в свободное время. В докладах вас ждут:

Шаблоны документов, которые нужны при функциональной верификации, и шаблон проекта для организации итеративной сборки.

Обзор плюсов и минусов существующих систем для автоматизации тестирования на FPGA-стендах.

Способ оценки производительности коммерческого ПЛИС-кластера и собственного решения.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

Уравнение с тремя неизвестными: как отлавливать баги в системах хранения данных

Время на прочтение15 мин
Количество просмотров2.6K

Привет! Меня зовут Никита Гуцалов, я инженер в компании YADRO и занимаюсь разработкой ПО для системы хранения данных TATLIN.UNIFIED. Вообще с системами хранения данных (СХД) я работаю уже много лет и люблю эту тему, поскольку она постоянно бросает новые вызовы, заставляя решать довольно сложные и нестандартные проблемы, что очень увлекательно само по себе, а удачные решения приносят огромное удовлетворение.


В статье я попытаюсь погрузить читателя в проблемы, с которыми нам, инженерам YADRO, приходится сталкиваться при отладке программного обеспечения СХД. Также покажу особенности работы с такими системами. Расскажу, какие инструменты, а иногда и решения, которые мы пишем сами, приходится для этого применять. А еще постараюсь сформулировать условия, которые необходимы для нахождения причин возникновения ошибок обработки данных в системе.

Текст про особенности поиска багов был бы пустым без конкретных примеров, поэтому под катом вас ждет разбор случая, который как-то произошел в нашей лаборатории при тестировании производительности СХД.  

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии2

Будьте в курсе развития RISC-V: обсуждаем обновления в разработке и изучаем бенчмарки серверов на открытой архитектуре

Время на прочтение2 мин
Количество просмотров2.4K

Если вы интересуетесь развитием открытой архитектуры или занимаетесь разработкой систем под нее, не пропустите бесплатный митап российского Альянса RISC-V. Он объединяет независимых разработчиков вычислительной техники и программного обеспечения на основе свободной архитектуры. 

15 апреля в 19:00 представители альянса соберутся, чтобы обсудить последние разработки и опыт работы с RISC-V-системами. Регистрируйтесь на митап, чтобы подключиться онлайн и быть в курсе развития экосистемы RISC-V в России. Узнаете о поддержке RISC-V в Linux и результатах анализа производительности доступных на рынке RISC-V-серверов. Подробнее о программе — под катом.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии2

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Работает в
Зарегистрирован
Активность

Специализация

Project Manager, Business Analyst
Senior
Project management
Organization of business processes
Scrum
Automation of processes
People management
Building a team
Project planning
Business process management