В
опубликованных материалах конференции USENIX 2019 мое внимание привлёк один доклад.
Докладчик рассказывает про фреймворк, который позволяет некоторые типы задач выполнять гораздо быстрее, чем локально или в облачных виртуальных машинах. К таким задачам он относит компиляцию программ, тестирование, обработка видео и др. Например локальная сборка проекта Inkscape занимает 32 мин на одном ядре, сборка с помощью фреймворка gg занимает полторы минуты и обходится в 50 центов. Такое существенное ускорение получилось за счёт разделения задачи на небольшие подзадачи (в данном случае препроцессинг Си кода и компиляция отдельных файлов) и параллельного (тысячи потоков) выполнения этих подзадач на легковесных контейнерах AWS Lambda. Другой пример - запуск юнит-тестов. Каждая тест - независимая программа и параллельный запуск тестов может существенно сократить время тестирования. Авторы экспериментировали с библиотекой LibVPX за счёт параллельного выполнения тестов с помощью gg сократили время с 1.5 часов до 4 минут.
Код фреймворка -
https://github.com/stanfordsnr/ggFrom Laptop to Lambda: Outsourcing Everyday Jobs to Thousands of Transient Functional Containershttps://www.usenix.org/conference/atc19/presentation/fouladi (слайды, статья, видео доклада)
P.S. На просмотр видео и чтение статьи не у всех время есть, поэтому посмотрите хотя бы скринкаст с запуском тестов ffmpeg в AWS Lambda с помощью gg -
https://asciinema.org/a/257545 По-моему впечатляет.