Бенчмарки показывают, что язык программирования Julia может быть лучшим выбором для анализа больших данных с использованием файлов формата CSV.
Если вы специалист по обработке данных и вам нужно проанализировать множество CSV-файлов для получения информации, скажем, о ценах на акции и движениях рынка, язык программирования Julia превосходит конкурентов машинного обучения Python и R, по мнению сторонников Julia.
Машинное обучение продвинуло Python вверх, что сделало его , вероятно, самым популярным языком программирования среди разработчиков в эти дни, наряду с Java и JavaScript.
Тем не менее, Julia , молодой язык с корнями из Лаборатории компьютерных наук и искусственного интеллекта MIT (CSAIL), также становится популярным, найдя основную аудиторию среди IT-специлистов, занимающихся данными.
Julia (Юлия, Юля, Джулия) пока не входит в топ-10 языков программирования , которые фактически используют разработчики, но она находится в топ-10 самых любимых языков программирования в опросе этого года от Stack Overflow, заняв там место рядом с Rust, TypeScript, Python, Kotlin, Go, Dart, C#, Swift, JavaScript и SQL.
Некоторые языки, такие как Rust, не очень широко используются разработчиками, но они ценятся программистами за качества, которые превосходят системное программирование, а не прикладное программирование . Например, Microsoft применяет Rust для функций безопасности памяти, отсутствующих в C и C++, которые широко используются в Windows и других проектах Microsoft.
Джулия, с другой стороны, была принята некоторыми программистами за ее C-подобную скорость, но она имеет гораздо меньшую экосистему пакетов, чем Python.
Недавнее обновление для Julia еще более улучшило многопоточность, чтобы предложить больше улучшений по скорости, и именно это, по мнению разработчиков Julia, дает ему значительное преимущество над Python и языком статистического программирования R в задаче разбора CSV-файлов для анализа данных.
По словам Дипака Суреша, инженера машинного обучения в компании Julia Computing, возможности многопоточного чтения дают библиотекам Julia преимущество перед обоими конкурентами машинного обучения с целым рядом различных наборов данных, доступных из файлов CSV или других огромных текстовых файлов с разделенными запятыми значениями.
Суреш провел сравнительный анализ языка статистического программирования R fread, pandas read_csv для Python и CSV- парсер Джулии и считает, что его горячо любимая Юля выходит на первое место.
"У Юлии есть шанс.jl в 1,5-5 раз быстрее, чем у pandas даже на одном ядре; с включенной многопоточностью он так же быстр или быстрее, чем read_csv R", - отмечает он.
Тесты были выполнены на машине с Ubuntu 18.04, работающей на процессоре Intel Xeon Silver 4114, работающем на частоте 2,20 ГГц.
Как он поясняет, Юля очень нервничает. jl-это единственный инструмент ,который "полностью реализован на своем языке более высокого уровня, а не реализован в C и обернут из R/Python".
Бенчмарки предназначены для демонстрации скорости загрузки данных в Julia, а также указывают на производительность кода Julia во время анализа данных.
Один из примеров бенчмарков рассматривает ценовые состояния акций Apple-open, high, low и close – с использованием набора данных объемом 2,5 ГБ с 50 миллионами строк и пятью столбцами.
"Однопоточный CSV.jl примерно в 1,5 раза быстрее, чем Фрейд R из данных.стол. С многопоточным CSV.jl примерно в 22 раза быстрее. У панды read_csv занимает 34 секунды для чтения, это медленнее, чем у R и Julia", - заявляет Суреш.
Еще один пример - это набор данных ипотечного риска от принадлежащей Google платформы data-science, Kaggle, который содержит набор данных смешанного типа с 356 000 строк и 2190 столбцов.
"У Панды занимает 119 секунд, чтобы прочитать количество строк в этом наборе данных. Однопоточный fread примерно в два раза быстрее, чем CSV.jl. Однако с большим количеством потоков Юлия либо так же быстра, либо немного быстрее, чем R", - говорит Суреш.
Другой пример - это анализ набора данных от американского ипотечного кредитора, Fannie Mae, который имеет четыре миллиона строк и 25 столбцов.
- Однопоточные данные.таблица работает в 1,25 раза быстрее, чем CSV.jl. Но, производительность CSV.jl продолжает увеличиваться с большим количеством потоков. CSV.jl становится примерно в 4 раза быстрее с многопоточностью",-говорит он.