Представляем node-RAPIDS

Авторы: Аллан Энемарк, Аджай Торв, Пол Тейлор, Брайан Ван де Вен

У NVIDIA GTC21 было много отличного и интересного контента, особенно о RAPIDS, поэтому было бы легко пропустить нашу дебютную презентацию Использование RAPIDS для ускорения Node.js JavaScript для визуализации и не только. науки о данных с ускорением на GPU для сообщества JavaScript Node.js с проектом node-RAPIDS.

node-RAPIDS - это техническая предварительная версия привязок модульных библиотек RAPIDS в Node.js с открытым исходным кодом, а также дополнительных методов для обеспечения высокопроизводительной серверной визуализации и аналитики.

Какие проблемы сегодня возникают с веб-визуализацией?

Около десяти лет назад возрождение веб-визуализации данных в миниатюре продемонстрировало преимущества высокоинтерактивных и простых в использовании инструментов, таких как D3. Хотя они не так производительны, как фреймворки C / C ++ или Python, их популярность резко возросла из-за доступности JavaScript. Неудивительно, что JavaScript часто считается самым популярным языком для разработчиков после Python или Java, и теперь существует полный каталог инструментов для визуализации и обработки данных.

Тем не менее, этому большому сообществу разработчиков JavaScript препятствует отсутствие первоклассных и ускоренных инструментов обработки данных на предпочитаемом им языке. Анализ наиболее эффективен, когда он максимально приближен к источнику данных, науке и визуализациям. Чтобы получить полный доступ к оборудованию графического процессора с помощью JavaScript (помимо ограничений и взломов webGL), необходимо быть полиглотом для настройки сложных систем промежуточного программного обеспечения или использовать не-js-фреймворки, такие как Plotly Dash. В результате инженеры данных, специалисты по обработке данных, специалисты по визуализации и разработчики интерфейсов часто разобщены, даже внутри организаций. Это вредно, потому что визуализация данных - идеальное средство общения между этими группами.

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

Почему Node.js?

Если вы не знакомы с Node.js, это кроссплатформенная среда выполнения с открытым исходным кодом, основанная на C / C ++, которая выполняет код JavaScript вне веб-браузера. за день происходит более 1 миллиона загрузок Node.js. Диспетчер пакетов узлов (NPM) является диспетчером пакетов JavaScript по умолчанию и принадлежит Microsoft. Node.js используется в серверной части онлайн-торговых площадок, таких как eBay, AliExpress, и используется веб-сайтами с высокой посещаемостью, такими как Netflix, PayPal и Groupon. Ясно, что это мощная основа.

Node.js - это коннектор, который дает нам JavaScript с прямым доступом к оборудованию, что приводит к упрощенному API и возможности использовать NVIDIA CUDA ⚡. Создавая привязки node-rapids, мы предоставляем огромному сообществу разработчиков возможность использовать ускорение GPU без необходимости изучать новый язык или работать в новой среде. Мы также даем тому же сообществу доступ к высокопроизводительной платформе для анализа данных: RAPIDS!

Вот фрагмент node-RAPIDS в действии, основанный на нашей базовой записной книжке, который показывает ускорение 6x для небольшого примера регулярного выражения:

Node-RAPIDS: спроектированы как строительные блоки

Подобно проектам узлов, Node-RAPIDS спроектирован как модульный. Наша цель - не создавать веб-приложения «под ключ», а создать перечень функциональных возможностей, который позволяет или ускоряет широкий спектр вариантов использования и конвейеров. Выше представлен обзор текущих и планируемых модулей Node-RAPIDS, сгруппированных по общим категориям. Приложение Node-RAPIDS может использовать столько модулей, сколько необходимо.

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

Пример приложения с перекрестным фильтром:

Выше представлен идеализированный стек приложения приборной панели геопространственного кросс-фильтра, использующего библиотеки RAPIDS cuDF и RAPIDS cuSpatial. У нас есть простая демонстрация с использованием Deck.gl, которую вы можете предварительно просмотреть с помощью нашего видео и изучить демонстрационный код на Github.

Пример ETL на стороне сервера:

Последний пример выше - это конвейер ETL только на стороне сервера без какой-либо визуализации. У нас есть пример простого процесса ETL с использованием привязок cuDF и настольного приложения взаимодействовать с блокнотом, которое вы можете предварительно просмотреть с помощью нашего видео и взаимодействовать (получить) на нашем блокноте.

Что дальше?

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

Ближайшие следующие шаги:

  • Продолжайте создавать основные функции привязки RAPIDS, которые вы можете проверить в нашей текущей таблице покрытия привязки.
  • Если идея ускорения SQL-запросов с помощью графического процессора прямо из вашего веб-приложения кажется интересной (она нам нравится), мы надеемся вскоре приступить к работе с привязками blazingSQL.
  • И, что самое интересное, мы планируем начать создавать и публиковать модульные контейнеры докеров, что значительно упростит текущий процесс установки технической предварительной версии из исходного кода.

Как всегда, нам необходимо участие сообщества, которое поможет нам направлять нас. Если у вас есть пожелания по функциям, вопросы или варианты использования, свяжитесь с нами!

У этого проекта большой потенциал. Он может ускорить работу самых разных приложений Node.js, а также предоставить огромному сообществу первоклассные высокопроизводительные инструменты для анализа данных и визуализации. Надеемся, вы присоединитесь к нам в начале этого увлекательного проекта.

Ресурсы: