Pull to refresh
0
0
Send message

Создание гигабитного коммутатора на Linux

Level of difficultyMedium
Reading time9 min
Views14K

Сетевые коммутаторы — простые устройства: принимаешь пакет, отправляешь пакет. К счастью, люди придумали, как усложнить их, и изобрели управляемые коммутаторы.

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

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

Читать далее
Total votes 25: ↑25 and ↓0+33
Comments16

Размер электрона неизвестен, а найти его не получится. Как это понимать?

Level of difficultyMedium
Reading time4 min
Views43K

Одна из любимых субатомных частиц всех, кто познает строение материи - это электрон. Каких только разговоров про него не было. И что он не существует, и что он не частица даже если существует, и прочее. Ещё не так давно обсуждалось, что электрон вовсе и не лептон, а потому тоже может делиться на субчастицы. В каждой такой "странной" версии есть доля реальной науки. Но особая мера квантового издевательства над сознанием простого человека скрыта в попытке описать размер электрона.

Минуточку...Мы же решали задачки в школе и там использовали табличные размеры для электрона. Что тут не так? Откуда они тогда взялись? В общем-то всё порядке. Кроме того, что значения эти не то, чтобы очень точные, и тут вспоминается шутка про Эддингтона. Он тоже выводил магическое число 137 странными способами. Но с электроном всё интереснее и "научнее". Давайте разбираться.

Все противоречия наблюдаются с того момента, где начинает особенно активно проявляться квантовая природа этой частицы. Электрон, который запоминается нам из общего курса физики как некоторый шарик, вращающийся вокруг ядра атома в модели Резерфорда, вдруг становится колебанием поля или формой энергии. И тут всё переворачивается с ног на голову. С этих пор он не совсем частица.

Размеры электрона — это одно из самых ярких и странных проявлений его удивительной природы. Начнём издалека.

Если есть частица, которая существует в «физическом» мире, то у неё есть и размер. Её можно измерить и даже потрогать. Но с электроном и тут всё очень интересно.

Читать далее
Total votes 35: ↑17 and ↓18+6
Comments96

Linux Pipes – медленные

Level of difficultyMedium
Reading time9 min
Views12K

Я пишу программу для сверхбыстрого кодирования/декодирования азбуки Морзе и использую pipe для передачи данных. При этом pipe работает очень медленно. Давайте разберемся почему.

Читать далее
Total votes 34: ↑34 and ↓0+42
Comments11

Как американская коррупция превратила физика-ядерщика в быдло-кодера

Level of difficultyEasy
Reading time17 min
Views123K

Это история из цикла «как войти в IT», написанная старпером, ветераном броуновского движения, который помнит динозавров. Поэтому его опыт вхождения в ИТ никому не пригодится, но представляет интерес с точки зрения истории.  

Также поделюсь своим мыслями об интерфейсе инженерного ПО. Участвуя в разработках различного ПО, предназначенного для ускорения разработки сложных систем, периодически приходится выслушивать жалобы от новых пользователей на «кривой и устаревший» интерфейс ПО. Однако инженеры, погруженные в проблемы проектирования реальных железок, вообще не задают нам таких вопросов, либо потому, что уже искривили свои руки о кривой интерфейс, либо им это вообще неважно. Более того, есть два примера, когда реальные высокопрофессиональные инженеры в своей области предъявляли претензии обратного свойства, и первая версия кривая версия GUI была удобнее, а вот улучшения делали какие-то полупокеры. 

К написанию данного текста меня подтолкнула беседа с одним из крутых разрабов из «жирной» конторы, с которым мы пересеклись на яхте в Средиземном море. Узнав, что я тоже из Бауманки, и у меня свой бизнес, он заинтересовался и выспрашивал. Как я смог начать бизнес на софте, почему не пошел в большую контору, типа Yandex, Сбер и прочие. У него тоже знакомство с софтом началось как создание собственной разработки по анализу результатов металлургических испытаний в лаборатории, но закончилось работой прогером по найму. Попивая вино на яхте где-то между Турцией и Грецией в 2023 году, он предположил, что, возможно, если бы он продолжал писать софт для металлургических исследований, то, наверное, сейчас мог плавать на своей яхте, а не арендованной, и не около Турции, а на Карибах (но это не точно). А поскольку фарш невозможно провернуть назад, я решил описать свою историю успеха, так как она забавна и поучительна.

Читать далее
Total votes 382: ↑367 and ↓15+417
Comments279

Как замедлили Twitter? Что такое DPI? Разбор

Reading time5 min
Views31K
Наверное, вы слышали, что на этой неделе стартовало так называемое замедление Twitter.

С 10 марта 100% мобильного и 50% стационарного трафика Twitter в России официально замедлены. Все это стало возможным благодаря технологии DPI. Мы решили разобраться, как это работает и как устроен механизм замедления.

Почему это важно? Можно предположить, что Twitter — это репетиция перед замедлением/блокировкой Facebook, а потом YouTube.

Поэтому сегодня разберемся, что такое DPI, как работает и какие у него возможности.

Будет ли у нас как в Китае? И как от этого защититься?



Начнем издалека, в ноябре 2019 года вступил в силу закон, по которому операторы связи должны были начать установку специальных «технических средств противодействия угрозам» (ТСПУ).
Total votes 7: ↑6 and ↓1+9
Comments19

Это мы юзаем: библиотека Optuna в Python для оптимизации гиперпараметров

Level of difficultyMedium
Reading time7 min
Views7.4K

Привет, Хабр!

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

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

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

Optuna решает проблему оптимизации гиперпараметров, предоставляя легковесный фреймворк для автоматизации поиска оптимальных гиперпараметров. Она использует алгоритмы, такие как TPE, CMA-ES, и даже поддерживает пользовательские алгоритмы.

Optuna полностью написана на Python и имеет мало зависимостей. В этой статье рассмотрим её основной функционал.

Читать далее
Total votes 16: ↑15 and ↓1+19
Comments2

Хочу всё знать

Reading time4 min
Views11K

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

Последние несколько лет, компания Neuralink, с Илоном Маском в роли сооснователя, активно работает над созданием такого чипа. Этот факт, однако, повлек дискуссии, что именно произойдет, если информация попадет на чип, к которому у вас есть доступ, однако нейронные связи в вашем мозгу не сформировались и вы эту информацию не обдумывали? Чем эта ситуация отличается от того, когда информация находится в книге, на жестком диске, в телефоне или на компьютере, но вы книгу еще не читали? Разве что простотой доступа?

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

Методов обучения множество. Часть из них ориентированы больше на усиление запоминания информации, а другая часть на углубление понимания. Однако, меня интересовало то, что увеличило бы именно скорость. Само собой напрашивается скорочтение. Тут хотелось бы остановиться и обсудить этот метод. Есть многочисленные исследования различных вариаций скорочтения и все они показывают, что скорочтение это миф и те, кто его практикуют, просто водят глазами по странице. Более того, если мы говорим не о художественных произведениях или текстах полных воды, а о "нормальных книгах", то очевидно, что прочитать страницу занимает 1 минуту, а обдумать - 10. Если даже за счет техник скорочтения можно было бы научиться прочитывать страницу за секунду, все еще остается потратить 10 минут на обдумывание.

Читать далее
Total votes 15: ↑13 and ↓2+15
Comments29

Логирование в Python: руководство разработчика

Reading time13 min
Views191K

Сталкивались ли вы с трудностями при отладке Python-кода? Если это так — то изучение того, как наладить логирование (журналирование, logging) в Python, способно помочь вам упростить задачи, решаемые при отладке.

Если вы — новичок, то вы, наверняка, привыкли пользоваться командой print(), выводя с её помощью определённые значения в ходе работы программы, проверяя, работает ли код так, как от него ожидается. Использование print() вполне может оправдать себя при отладке маленьких Python-программ. Но, когда вы перейдёте к более крупным и сложным проектам, вам понадобится постоянный журнал, содержащий больше информации о поведении вашего кода, помогающий вам планомерно отлаживать и отслеживать ошибки.

Из этого учебного руководства вы узнаете о том, как настроить логирование в Python, используя встроенный модуль logging. Вы изучите основы логирования, особенности вывода в журналы значений переменных и исключений, разберётесь с настройкой собственных логгеров, с форматировщиками вывода и со многим другим.

Вы, кроме того, узнаете о том, как Sentry Python SDK способен помочь вам в мониторинге приложений и в упрощении рабочих процессов, связанных с отладкой кода. Платформа Sentry обладает нативной интеграцией со встроенным Python-модулем logging, и, кроме того, предоставляет подробную информацию об ошибках приложения и о проблемах с производительностью, которые в нём возникают.

Читать далее
Total votes 17: ↑15 and ↓2+20
Comments9

Как я зарабатывал 13 млн в год на любителях пассивного дохода

Level of difficultyEasy
Reading time10 min
Views250K

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

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

Читать далее
Total votes 183: ↑170 and ↓13+210
Comments534

Black-Box Optimization Challenge, или как подбирать гиперпараметры для моделей

Reading time11 min
Views3.5K

Всем привет! В этом посте я расскажу, как наша команда участвовала и заняла третье место в Black-Box Optimization Challenge — соревновании по автоматическому подбору параметров для моделей машинного обучения. Особенность соревнования в том, что алгоритм не знает, какая модель машинного обучения используется, какую задачу она решает, и за что отвечает каждый из оптимизируемых параметров.


Звучит как соревнование, в котором лучше случайного поиска ничего не придумаешь, но существует целый класс алгоритмов для таких задач, о которых мы и поговорим под катом.


Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments2

Ускорение Python в 2 раза с помощью multiprocessing, async и MapReduce

Level of difficultyMedium
Reading time16 min
Views10K

Python действительно может считаться относительно медленным языком программирования по сравнению с некоторыми другими языками, такими как C++ или Java. Однако, существуют различные библиотеки и инструменты, которые позволяют ускорить выполнение счетных задач в Python. Рассмотрим как можно ускорить анализ данных в 2 раза!

Читать далее
Total votes 17: ↑17 and ↓0+23
Comments8

Как написать своего нейросотрудника?

Level of difficultyMedium
Reading time22 min
Views10K

Конечно, прекрасно подключить API от OpenAI и разыграть своего руководителя новым консультантом… Но подобные чат-боты не могут ориентироваться в данных компании и предоставлять адекватные ответы. Можно хотя бы не рассчитывать на увольнение:)

В чем отличие модифицированного чат-бота, нейросотрудника от обычного окошка с GPT 4.0?  — он может ориентироваться в нужной вам информации лучше: составлять подборки резюме для дальнейшего анализа живым HR-ом, общаться с клиентами скриптами, даже подбирать контент-план на основе данных о компании и помогать расписывать ТЗ для сотрудников. 

В этой работе мы попробуем написать своего простого нейросотрудника, а точнее HR-менеджера. Начнем с теоретической части про векторные базы данных и обучение, закончим практикой, разобрав конкретный пример. 

Если не хочется читать теорию – переходите в конец статьи. 

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments6

Пакетная обработка данных на современных GPU

Level of difficultyMedium
Reading time7 min
Views3.4K

По большому счёту, самая первая и самая важная оптимизация, которую можно применить к любой современной системе машинного обучения, заключается в том, чтобы реализовать в этой системе пакетную обработку данных (batching). Для того чтобы получить результат работы системы (inference, инференс) в пакетном режиме — ей, вместо одного элемента входных данных, отправляют N таких элементов. Чаще всего никаких дополнительных нагрузок на систему это не создаёт. Формирование инференса для каждого из элементов, входящих в пакет размера N, занимает в точности столько же времени, сколько нужно для обработки одного элемента входных данных. Почему это так? На первый взгляд может показаться, что обработка пакета данных не может обойтись без некоторых накладных затрат ресурсов. В конце концов — оборудованию приходится выполнять в N раз больше действий.

Если прибегнуть к простейшей модели работы нейронной сети, то получится, что некоторая дополнительная нагрузка на систему, всё же, создаётся. Для выполнения пакетных вычислений нужно выполнить в N раз больше операций. И, на самом деле, если попробовать это на CPU, то окажется, что так оно и есть (среднее время формирования вывода для ResNet-50, Colab).

Читать далее
Total votes 4: ↑4 and ↓0+12
Comments2

Простые способы ускорения обучения PyTorch-моделей

Level of difficultyMedium
Reading time13 min
Views6.1K

Не знаю — нужно ли вступление к статье, посвящённой ускорению машинного обучения (Machine Learning, ML)?

Ускорение обучения моделей — это именно то, в чём нуждаются все ML‑инженеры. Более быстрое обучение модели означает ускорение экспериментов, что, в свою очередь, ведёт к ускорению выпуска новых версий программных продуктов. Кроме того — чем выше скорость обучения — тем меньше ресурсов нужно на каждую итерацию обучения модели. Поэтому предлагаю перейти сразу к делу.

Читать далее
Total votes 15: ↑15 and ↓0+25
Comments2

Управление сервером со смартфона

Level of difficultyMedium
Reading time6 min
Views12K


Из любого SSH-клиента можно установить канал с сервером и управлять им стандартными командами в консоли. Есть такие клиенты и для смартфона. Многие знают и используют консоль Termux под Android, которая запускает с телефона стандартный OpenSSH.

Но есть варианты ещё удобнее, даже с графическим интерфейсом.
Читать дальше →
Total votes 21: ↑21 and ↓0+31
Comments6

Ассанж — свобода после 1901 дня в тюрьме и $520 000 за чартер в Австралию

Level of difficultyEasy
Reading time9 min
Views13K

Основатель WikiLeaks Джулиан Ассанж оказался на свободе после подписания соглашения с Министерством юстиции США. С 2019 года журналист находился в британской тюрьме строгого режима Белмарш, из которой его отпустили под залог после решения Высокого суда Лондона от 24 июня 2024 года. В рамках сделки с американским Минюстом 52-летний Ассанж частично признал вину в заговоре с целью получения и раскрытия информации о национальной обороне США. Слушания по делу прошли на тихоокеанском острове Сайпан, находящемся в американской юрисдикции.

Читать далее
Total votes 58: ↑55 and ↓3+73
Comments43

Дайте мне 15 минут, и я изменю ваш взгляд на GDB

Level of difficultyMedium
Reading time6 min
Views13K

Материал подготовлен на основе выступления с CppCon 2015 "Greg Law: Give me 15 minutes & I'll change your view of GDB" (доступно по ссылке ). Многие моменты я изменял и корректировал, поэтому учтите, что перевод достаточно вольный.

И да, вынесем за скобки вопрос о том, насколько GDB в целом удобная или неудобная программа, и что в принципе лучше использовать для дебаггинга: в данной статье будет рассматриваться именно работа с GDB.

В статье будет рассматриваться отладка кода на C в ОС Linux.

Читать далее
Total votes 47: ↑45 and ↓2+63
Comments16

Кластерное обучение нейросетей

Level of difficultyMedium
Reading time5 min
Views1.8K

Multi gpu training overview

Если обучение модели на одном графическом процессоре происходит слишком медленно или если веса модели не помещаются в VRAM, переход на обучение с несколькими графическими процессорами (или с несколькими устройствами с несколькими графическими процессорами в каждом) может быть целесообразным вариантом.
Ниже рассмотрим некоторые стратегии по масштабируемости обучения между несколькими GPU или нодами.

Глобально следует рассмотреть 3 сценария

Читать далее
Total votes 2: ↑2 and ↓0+3
Comments0

6 способов значительно ускорить pandas с помощью пары строк кода. Часть 2

Reading time6 min
Views11K
В предыдущей статье мы с вами рассмотрели несколько несложных способов ускорить Pandas через jit-компиляцию и использование нескольких ядер с помощью таких инструментов как Numba и Pandarallel. В этот раз мы поговорим о более мощных инструментах, с помощью которых можно не только ускорить pandas, но и кластеризовать его, таким образом позволив обрабатывать большие данные.



Часть 1

  • Numba
  • Multiprocessing
  • Pandarallel

Часть 2

  • Swifter
  • Modin
  • Dask
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments4

Information

Rating
Does not participate
Registered
Activity