Pull to refresh

Разработчик языка программирования Julia собрал $24 млн в первом раунде финансирования

Reading time 2 min
Views 5.9K
IT-companies

Julia Computing, разработчик языка программирования Julia, собрала $24 млн в ходе первого раунда финансирования под руководством Dorilton Ventures при участии Menlo Ventures, General Catalyst и HighSage Ventures. Компания также объявила, что к ее совету директоров присоединится Боб Маглиа, бывший генеральный директор Snowflake и бывший глава серверного подразделения Microsoft.

Читать далее
Total votes 21: ↑21 and ↓0 +21
Comments 1

Вышел релиз языка программирования Julia 1.9

Reading time 6 min
Views 1K
Open source *Programming *Julia *

Опубликован релиз языка программирования Julia 1.9. Его синтаксис близок к MATLAB с заимствованием некоторых элементов из Ruby и Lisp. Код проекта распространяется под открытой лицензией MIT.

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

Почему мы создали Джулию, новый ЯП для технических вычислений

Reading time 3 min
Views 9.4K
Programming *Julia *Matlab *
Translation
Если вкратце, потому что мы жадные.

Мы продвинутые пользователи Matlab. Некоторые из нас хакеры Lisp. Некоторые питонисты, другие рубисты, есть ещё Perl-хакеры. Среди нас есть такие, кто использовал Mathematica раньше, чем у него начали расти волосы на лице. Есть и такие, у кого до сих пор не выросли. Мы построили больше графиков на R, чем способен любой здравомыслящий человек. C — это язык, который мы бы взяли на необитаемый остров.

Мы любим все эти языки; они прекрасны и могучи. Для той работы, которую мы делаем — научные вычисления, машинное обучение, дата-майнинг, крупномасштабная линейная алгебра, распределённые и параллельные вычисления — каждый идеально подходит в определённом аспекте, но ужасен в других. Каждый из них — это компромисс.

Мы жадные: мы хотим больше.
Читать дальше →
Total votes 63: ↑54 and ↓9 +45
Comments 19

Записи конференции Lang.NEXT 2012 для тех, кто интересуется языками программирования

Reading time 2 min
Views 9.6K
Microsoft corporate blog Website development *Programming *


В начале апреля на базе кампуса Microsoft в Рэдмонде прошла специализированная индустриальная конференция, посвященная языкам программирования — Lang.NEXT 2012. В рамках конференции своими наработками и результатами исследований поделились эксперты известных корпораций (например, Microsoft, Google, Facebook, Oracle) и ведущих университетов (включая MIT, Stanford, Berkeley).

Для всех энтузиастов мира программирования на Channel 9 доступны записи и презентации выступлений.
Читать дальше →
Total votes 33: ↑25 and ↓8 +17
Comments 6

Почему я делаю ставку на Julia

Reading time 15 min
Views 47K
Programming *Julia *
Translation
imageСовсем о Julia не говорим тут. Один пост двухлетней давности от Ализара, и всё. Исправляем ситуацию.

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

Такой подход к делу некоторые презрительно называют ковбойским программированием. Но мне кажется, что это не самый правильный образ — ковбой вынужден периодически устраивать привалы из-за физических ограничений своего коня. Давайте лучше представим одержимого учёного, эдакого профессора, который неделями пропадает в лаборатории, а потом выходит оттуда изнурённый, с затуманенным взором, со своим новым хитроумным изобретением, которое разваливается при первом же запуске.
Читать дальше →
Total votes 88: ↑68 and ↓20 +48
Comments 86

Наследование комбинаторных парсеров на Julia

Reading time 7 min
Views 6.1K
Abnormal programming *Compilers *Julia *
Комбинаторные (монадические) парсеры достаточно хорошо известны (wikibooks). Они представляют из себя библиотеку маленьких парсеров, которые распознают простые элементы грамматики, и способы объединять несколько парсеров в один (комбинировать — от сюда и название). Монадические они потому что один из способов комбинирования, порождения парсера остатка текста на основе результата разбора начала, удовлетворяет условиям, накладываемым на математический объект «монада». В языке Haskell это позволяет воспользоваться мощным сервисом, предоставляемым языком и библиотеками. В других языках название «монадические» можно смело игнорировать — это не будет мешать их реализации и использованию, включая упомянутую выше операцию «bind».

Проще всего комбинаторные парсеры реализуются в языках с поддержкой замыканий, но можно воспользоваться и классическим ООП (пример описан Rebecca Parsons в книге Мартина Фаулера «Предметно-ориентированные языки»).
К преимуществам комбинаторных парсеров относится простота использования (запись на языке программирования практически не отличается от обычного описания грамматики), независимость от препроцессора (как yacc/bison, happy или ocamlyacc), возможность реализовать некоторые элементы, плохо укладывающиеся в контекстно-свободную грамматику, прямо на языке программирования общего назначения.

К недостаткам — сложность составления сообщений об ошибке, неспособность работать с леворекурсивной грамматикой (приводит к зацикливанию), а так же то, что очень легко сделать этот парсер не эффективным по быстродействию и памяти. (Одна из причин — компилятор не может произвести оптимизацию в терминах грамматики, так как работает на уровне языка программирования. Но есть и другие тонкости, требующие внимания, если требуется эффективность.)
Как альтернативу можно рассмотреть реализации в виде макросов (например OCaml streams parsers). В Perl6 поддержка грамматик встроена в язык.

Наследование

Персер конкретного языка состоит из множества более специализированных парсеров, ссылающихся друг на друга. В этом отношении парсеры напоминают методы некого объекта. Возникает желание порождать парсеры новых версий языков, подменяя отдельные подпарсеры (как это делается в паттерне проектирования «шаблонный метод» из ООП). Для экспериментов с этим подходом (а так же в порядке изучения очередного языка) я выбрал язык Julia — динамически-типизированном с особым подходом к наследованию (подобному CLOS из Common Lisp и R).
В отличие от обычных комбинаторных парсеров, подход с наследованием является экспериментальным (хотя в некотором виде поддерживается библиотекой макросов OCaml и языком Perl6). Пока он порождает не очень читабельный код. Исходный код доступен на Github.
Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Comments 11

Pattern matching с помощью макросов

Reading time 4 min
Views 5.4K
Compilers *Functional Programming *Julia *
Язык Julia не поддерживает такую технику программирования, хорошо зарекомендовавшую себя в языках Haskell, Prolog, Erlang, Scala, Mathematica, как pattern matching. Но разрешает писать макросы, которые позволяют исправить этот фатальный недостаток. Выглядит это примерно так:
julia> immutable X a end

julia> immutable Y a ; b end

julia> @case(Y(X(9),2),  Y(4,3)-> 55, Y(X(k),2)->1+k)
10

Исходный код доступен на github.
Похожую (но гораздо более развитую и готовую для использования) можно взять здесь, но она слишком большая, что бы разбирать ее как пример в статье.
Макромагия с полным разоблачением
Total votes 16: ↑13 and ↓3 +10
Comments 2

Новые инструменты (Octave и Scilab) во FlyElephant и анонс вебинаров

Reading time 2 min
Views 4.8K
FlyElephant corporate blog High performance *Data Mining *Big Data *R *


Команда FlyElephant поздравляет всех с наступившим Новым Годом. Мы начинаем этот год с расширения списка инструментов, вебинаров и формирования сообщества вокруг проекта.

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

Для пользователей платформы FlyElephant стали доступны Octave и Scilab, таким образом полный список поддерживаемых языков и инструментов следующий: GCC (с поддержкой OpenMP), R, Python (v2 & v3), Octave и Scilab. Для участников программы бета-тестирования стал доступен следующий инструментарий: Java (v7 & v8), Julia, OpenFOAM, GROMACS и Blender. Если Вы еще не являетесь пользователем платформы FlyElephant, то зарегистрироваться можно здесь. В честь Нового Года Вы можете пополнить свой счет на $300 введя в Личном кабинете специальный промо-код: 195708679772.
Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 2

FlyElephant как инструмент для вычислений на C++, R, Python или Octave

Reading time 5 min
Views 11K
FlyElephant corporate blog High performance *Python *C++ *Big Data *

Приветствую всех!

Сегодня я расскажу о возможностях платформы FlyElephant для ученых и инженеров, которые в своей работе проводят различные вычисления на C++, R, Python или Octave. Это могут быть научные расчеты, анализ данных, моделирование или другие задачи. 22 января я буду проводить вебинар “Введение в FlyElephant”, на котором детально расскажу о платформе FlyElephant, а сегодня в общих чертах познакомлю вас с ней и покажу процесс проведения расчетов.

FlyElephant — это платформа, которая предоставляет ученым готовую вычислительную инфраструктуру для проведения расчетов, автоматизирует рутинные задачи и позволяет сосредоточиться на основных вопросах исследований.
Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Comments 21

Работа с приватными репозиториями и другие обновления платформы FlyElephant

Reading time 2 min
Views 3.6K
FlyElephant corporate blog High performance *C++ *Big Data *Microsoft Azure *


Команда платформы FlyElephant подготовила ряд обновлений, которые позволяют работать с приватными репозиториями, повышают безопасность системы и улучшают работу с задачами.

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

В качестве вычислительного ресурса используется облако Azure. Пользователи могут запускать вычислительные задачи, написанные с помощью С++ (с поддержкой OpenMP), R, Python, Octave, Scilab, Java, Julia, OpenFOAM, GROMACS, Blender на серверах с количеством ядер от 1 до 32 и оперативной памятью до 448 ГБ.

Среди нововведений можно отметить следующие:
Читать дальше →
Total votes 11: ↑9 and ↓2 +7
Comments 0

Видео-туториалы запуска вычислительных задач на Python, R, С++, Octave и Blender во FlyElephant

Reading time 1 min
Views 8.5K
FlyElephant corporate blog Python *C++ *Data Mining *R *
Пару недель назад, наша команда выпустила свежий релиз FlyElephant — платформа для ученых, которая предоставляет готовую вычислительную инфраструктуру для проведения расчетов, помогает находить партнеров и совместно работать над проектами, а также управлять всеми данными из одного места.

В качестве вычислительного ресурса сейчас используется облако Azure, а пользователи могут запускать вычислительные задачи, написанные с помощью С++ (с поддержкой OpenMP), R, Python, Octave, Scilab, Java, Julia, OpenFOAM, GROMACS, Blender на серверах с количеством ядер от 1 до 32 и оперативной памятью до 448 ГБ.

Сегодня мы хотим поделиться видео-туториалсами запуска задач во FlyElephant. Под катом вы найдете видео, как запускать вычислительные задачи, написанные с помощью С++, R, Python, Octave и рендерить изображения с помощью Blender, а также промо-код для получения бесплатных дополнительных часов работы ваших задач.
Читать дальше →
Total votes 20: ↑18 and ↓2 +16
Comments 9

Сообщество экспертов, совместная работа над проектами и другие обновления платформы FlyElephant

Reading time 2 min
Views 2.7K
FlyElephant corporate blog High performance *C++ *Big Data *Microsoft Azure *


Команда FlyElephant рада анонсировать релиз платформы FlyElephant 2.0, в который вошли следующие обновления: внутреннее сообщество экспертов, совместная работа над проектами, публичные задачи, поддержка Docker и Jupyter, новое хранилище данных и работа с HPC кластерами.

FlyElephant — платформа для исследователей данных, инженеров и ученых, которая предоставляет готовую вычислительную инфраструктуру для проведения высокопроизводительных вычислений и рендеринга, помогает находить партнеров и совместно работать над проектами, а также управлять всеми ресурсами из одного места. Платформа состоит из 3 основных компонентов:
  • Compute. Быстрый доступ к вычислительному кластеру в облаке с нужным программным обеспечением или HPC кластеру, а также автоматизация проведения расчетов.
  • Collaborate. Совместная работа над проектами и сообщество экспертов, где можно найти партнеров, чтобы вместе решить сложную задачу или получить квалифицированную консультацию.
  • Manage. Управление лицензиями, программным обеспечением, вычислительными ресурсами, шаблонами, алгоритмами, данными и результаты в одном месте.

Среди нововведений отметим следующие:
Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Comments 0

Моделирование кинематики — это не сложно

Reading time 5 min
Views 12K
System Analysis and Design *CAD/CAM *Mathematics *Julia *Robotics development *
Мне давно хочется заняться созданием роботов, но всегда не хватает свободных денег, времени или места. По этому я собрался писать их виртуальные модели!

Мощные инструменты, позволяющие это делать, либо сложно стыкуются со сторонними программами (Modelica), либо проприетарны (Wolfram Mathematica, различные САПР), и я решил делать велосипед на Julia. Потом все наработки можно будет состыковать с сервисами ROS.

Будем считать, что наши роботы двигаются достаточно медленно и их механика находится в состоянии с наименьшей энергией, при ограничениях, заданных конструкцией и сервоприводами. Таким образом нам достаточно решить задачу оптимизации в ограничениях, для чего понадобятся пакеты "JuMP" (для нелинейной оптимизации ему понадобится пакет "Ipopt", который не указан в зависимостях (вместо него можно использовать проприетарные библиотеки, но я хочу ограничится свободными) и должен быть установлен отдельно). Решать дифференциальные уравнения, как в Modelica, мы не будем, хотя для этого есть достаточно развитые пакеты, например "DASSL".

Управлять системой мы будем используя реактивное программирование (библиотеку "Reactive"). Рисовать в «блокноте» (Jupyter), для чего потребуются "IJulia", "Interact" и "Compose". Для удобства еще понадобится "MacroTools".
Для простоты рассмотрим 2D робота, сделанного из веревок и пружин
Total votes 15: ↑13 and ↓2 +11
Comments 3

Deep Learning: Сравнение фреймворков для символьного глубокого обучения

Reading time 5 min
Views 29K
Microsoft corporate blog Python *Algorithms *Machine learning *
Translation
Представляем вам перевод серии статей посвященных глубокому обучению. В первой части описан выбор фреймворка с отрытым кодом для символьного глубокого обучения, между MXNET, TensorFlow, Theano. Автор подробно сравнивает преимущества и недостатки каждого из них. В следующих частях вы узнаете о тонкой настройке глубоких сверточных сетей, а также о сочетании глубокой сверточной нейронной сети с рекуррентной нейронной сетью.


Читать дальше →
Total votes 28: ↑26 and ↓2 +24
Comments 12

FlyElephant празднует первый год работы в публичном доступе и анонсирует сотрудничество с HPC-HUB

Reading time 2 min
Views 2.6K
FlyElephant corporate blog High performance *Data Mining *Big Data *Machine learning *


В ноябре FlyElephant празднует первый год работы в публичном доступе. FlyElephant — это платформа для дата-сайентистов, инженеров и ученых, которая ускоряет бизнес с помощью автоматизации Data Science и Engineering Simulation.
Читать дальше →
Total votes 17: ↑13 and ↓4 +9
Comments 1

Вебинар: Julia — A fresh approach to numerical computing and data science

Reading time 1 min
Views 2K
FlyElephant corporate blog Data Mining *Big Data *Julia *Machine learning *


Команда FlyElephant приглашает всех на вебинар "Julia — A fresh approach to numerical computing and data science", который проведет со-основатель и CEO в Julia Computing, а также со-автор языка Julia — Viral B. Shah.

Вебинар будет проходить 20 марта в 19:00 (EET) / 9:00 am (PST). Язык — английский.

Все подробности и регистрация здесь
Total votes 14: ↑10 and ↓4 +6
Comments 1

Видеозапись вебинара «Julia — A fresh approach to numerical computing and data science»

Reading time 1 min
Views 2.6K
FlyElephant corporate blog Data Mining *Big Data *Julia *Machine learning *


Команда FlyElephant в марте проводила вебинар с со-основателем и CEO в Julia Computing, а также со-автором языка Julia — Viral B. Shah, на тему "Julia — A fresh approach to numerical computing and data science".
Смотреть видеозапись и презентацию
Total votes 14: ↑11 and ↓3 +8
Comments 1

Вероятностное программирование в компьютерном зрении: 31 строка кода вместо тысяч

Reading time 2 min
Views 12K
Artificial Intelligence

Верхний ряд — 2D-фотографии человеческих лиц; средний ряд — результат 3D-моделирования в программе MIT; нижний ряд — результат 3D-моделирования в одной из предыдущих программ

Множество программных приложений последнего времени, в том числе распознавание образов и речи, обнаружение спама и кредитный скоринг, — это результат работы алгоритмов машинного обучения, когда нейросеть обучается на большом объёме данных.

Данная область бурно развивается в последнее время, а сфера применения машинного обучения становится шире. Неудивительно, что в 2013 году DARPA запустило четырёхлетний исследовательских проект для поиска более эффективных способов разработки приложений, в частности — для разработки языков так называемого вероятностного программирования.
Читать дальше →
Total votes 17: ↑13 and ↓4 +9
Comments 1