[#] Эксперименты с malloc и нейронными сетями
habrabot(difrex,1) — All
2017-05-26 14:00:05





Больше года назад, когда я работал антиспамщиком в Mail.Ru Group, на меня накатило, и я написал про [эксперименты с malloc][1]. В то время я в свое удовольствие помогал проводить семинары по АКОСу на ФИВТе [МФТИ][2], и шла тема про аллокацию памяти. Тема большая и очень интересная, при этом охватывает как низкий уровень ядра, так и вполне себе алгоритмоемкие структуры. Во всех учебниках написано, что одна из основных проблем динамического распределения памяти — это ее непредсказуемость. Как говорится, знал бы прикуп — жил бы в Сочи. Если бы оракул заранее рассказал весь план по которому будет выделяться и освобождаться память, то можно было составить оптимальную стратегию, минимизирующую фрагментацию кучи, пиковое потребление памяти и т.д. Отсюда пошла возня с ручными аллокаторами. В процессе раздумий я натолкнулся на отсутствие инструментов логирования `malloc()` и `free()`. Пришлось их написать! Как раз про это была статья (а ещe я изучал macOS). Были запланированы две части, однако жизнь круто повернулась и стало не до `malloc()`. Итак, пора восстановить справедливость и реализовать обещанное: _ударить глубоким обучением по предсказанию работы с кучей_.



Внутри:


* Совершенствуем `libtracemalloc`, перехватчик `malloc()`.
* Строим LSTM на Keras — глубокую рекуррентную сеть.
* Обучаем модель на примере работы реального приложения ([vcmi/vcmi][3] — а вы думали, причем здесь Heroes III?).
* Удивляемся неожиданно хорошим результатам.
* Фантазируем про практическое применение технологии.
* [Исходники][4].

Интересно? Добро пожаловать под кат.


[Читать дальше →][5]

[1]: https://habrahabr.ru/company/mailru/blog/281497/
[2]: http://mipt.ru
[3]: https://github.com/vcmi/vcmi
[4]: https://github.com/vmarkovtsev/hack_malloc
[5]: https://habrahabr.ru/post/329518/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut