Обсуждение

В архиве: 22 комментария.

Читать и комментировать в ЖЖ ↗

lipkalapka · 27 сентября 2017

Комментарий

Как я понимаю, юлю лучше сравнивать с "математикой".

Анатолий Левенчук · 27 сентября 2017

Комментарий

Нет, классические сравнения -- Фортран, Си, Матлаб, Питон (слоган там "скорость написания как в Питоне, скорость исполнения как в Си"). Математика там немного про другое: там символьные вычисления и куча готовых тщательно согласованных друг с другом алгоритмов как основное. Но в Julia легко подобрать пакеты, которые делают её вполне сравнимой с Mathematica -- то есть набор свойств Mathematica получается не "из коробки", а нужно немного потрудиться.

Ответ на комментарий

lipkalapka · 27 сентября 2017

Комментарий

Фортран, матлаб - ну с ними вооще что-то сложно сравнивать. Питон, си, и, о боги, js - это еще понятно, типо "быстрые считалки". Ну типа взять и за пять минут накидать расчет какой-нибудь фигни.

Ответ на комментарий

Анатолий Левенчук · 27 сентября 2017

Комментарий

Пиотн не "быстрая считалка", он "быстрая писалка". Поглядите на диаграмму из поста! В этом-то и фишка, что Julia решает проблему двух языков: обычно за пять минут накидывают на Питоне расчёт какой-нибудь фигни, а потом оказывается, что один расчёт идёт три часа. Тогда за три часа переписывают на Си, и расчёт идёт пять минут. Вот на Julia пишут за пять минут и расчёт идёт пять минут. В этом главная фича Julia. Хотя там есть и много других приятных возможностей, но для вычислительных математиков это главное.

Ответ на комментарий

lipkalapka · 28 сентября 2017

Комментарий

Да, я просто некорректно написал. И в математика тоже впринципе можно добиться "пишем пять минут - считаем пять минут", вот только переход в математика из императивных языков (си, питон, ява, юля, да в общем-то миллион их) займет три года жизни, а переход на юлю из си или питона - недели две.

Ответ на комментарий

p2004r · 28 сентября 2017

Комментарий

Просто смешно, выбрать из всего что есть по https://cran.r-project.org/web/views/DifferentialEquations.html один из решателей. (эквивалентный кстати фортрану (а есть ещё эквивалентный си)). И вместо эталонной реализации использовать что то написанное "за ради скорости"? Кто то тесты прогонял на этой реализации быстрой? Сравнивал с точными решениями? Собственно картинка вообще ни о чем (она вообще не имеет отношения к первому абзацу текста), написанные на коленке не понятно кем синтетические тесты (идущие чаще всего "вдоль" парадигме среды вычисления).

p2004r · 28 сентября 2017

Комментарий

Вот это вот гуано, код на R?
pisum = function() {
    t = 0.0
    for (j in 1:500) {
        t = 0.0
        for (k in 1:10000) {
            t = t + 1.0/(k*k)
        }
    }
    return(t)
}
PS
> pisum = function() {
+     t = 0.0
+     for (j in 1:500) {
+         t = 0.0
+         for (k in 1:10000) {
+             t = t + 1.0/(k*k)
+         }
+     }
+     return(t)
+ }
> pisum()
[1] 1.644834
> system.time(pisum())
пользователь      система       прошло 
       3.080        0.004        3.109 
> system.time(pisum())
пользователь      система       прошло 
       3.072        0.000        3.075 
> system.time(pisum())
пользователь      система       прошло 
       3.056        0.000        3.059 
> pisum = function() {    
+     for (j in 1:500) {
+         k <- 1:10000
+         t <- sum(1/(k*k))
+     }
+     t
+ }
> pisum()
[1] 1.644834
> system.time(pisum())
пользователь      система       прошло 
       0.116        0.000        0.118 
> system.time(pisum())
пользователь      система       прошло 
       0.104        0.000        0.102 
> system.time(pisum())
пользователь      система       прошло 
       0.096        0.000        0.098 
> 

Как можно после этого смотреть на этих аферистов?

Анатолий Левенчук · 28 сентября 2017

Комментарий

Я боюсь, что вы не понимаете суть происходящего: борьба идёт не за скорость саму по себе или альтернативную реализацию уже реализованного. Просто разработчики алгоритмов решения дифференциальных уравнений переходят на Julia, пишут свои учебные курсы на Julia и отлаживаются на Julia, вот это суть происходящего. А разработчики Julia делают унифицированный интерфейс для решения именно дифуров, чтобы облегчить жизнь пользователей солверов. Именно поэтому на Julia столько разных видов уравнений покрыто. А ваши "стандартные реализации" -- это махонький кусочек ширпотреба. Вам не жмёт в решении дифуров -- не ходите туда, пользуйтесь Фортраном и прочими "стандартными реализациями". Типичная работа на Julia -- это типа вот такой: https://julialang.org/blog/2017/09/gsoc-derivative_operators

Ответ на комментарий

Анатолий Левенчук · 28 сентября 2017

Комментарий

Напишите им письмо. На них вполне все нормально смотрят. Что всех новеньких крутых на рынке поначалу называют аферистами, это тоже привычно. А потом динозавры вымирают.

Ответ на комментарий

p2004r · 28 сентября 2017

Комментарий

Слать письмо _аферистам_ выложившим (не в первый раз) в своем уютном _лживый_ тест? Им уже писали и не раз, все "божья роса". В R for() применяется только для нанесения побочного эффекта. И в R просто _нет_ скаляров. Что в приведенном мной коде (который считает pi_sum на столько восхитившей Вас картинке в посте) Вам непонятно? Код идиоматичный для R быстрее _минимум_ в 30 раз. (и что характерно существенно короче) PS Я бы поостерегся тратить свое время на продукт, который пишется людьми с такой репутацией (за которую говорят их поступки)

Ответ на комментарий

sharpc · 28 сентября 2017

Комментарий

Даже для Python надо где-то 70% самому писать, а уж Julia и близко не сделать сравнимой. Два года назад я предположил, что написать розетту для Mathematica займет недели полторы. Ха.

Ответ на комментарий

deep_econom · 29 сентября 2017

Комментарий

***Питон не "быстрая считалка", он "быстрая писалка". а вы знаете еще какие-либо быстрые хорошие писалки??? любопытно бы послушать ваше мнение

Ответ на комментарий

Анатолий Левенчук · 29 сентября 2017

Комментарий

Все скриптовые языки -- это по факту быстрые писалки. Но медленные считалки, за эту медленность их и не любят. Julia как раз делалась, чтобы решить эту задачу.

Ответ на комментарий

deep_econom · 29 сентября 2017

Комментарий

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

Ответ на комментарий

p2004r · 30 сентября 2017

Комментарий

Тут следует различать уровень требуемый знакомства. Просто познакомиться с R хорошо введение с официального сайта "An Introduction to R" https://cran.r-project.org/manuals.html Если Вы уже владеете на достаточно высоком уровне искусством написания программ, то можно просто прочитать "The R language definition" где практически все основные техники кратко описаны с точки зрения R. Если в момент прочтения второго мануала что то не понятно, то читаем (или просто смотрим по нескольку раз до понимания сути происходящего) МИТовский курс классический от Сасмана и Абельсона по Схеме https://www.youtube.com/watch?v=2Op3QLzMgSY&list=PL8FE88AA54363BC46 Дело в том. что R писалось её Автором поверх (и после) прохождения именно этого курса, и R по сути это Схема + много синтаксического сахара. В ней возможно повторить (практически "пооператорно" с поправкой на синтаксис) всё что показано в лекциях SICP. Синтаксический сахар введен был для доступа к богатству другого языка APL(его современная и свободная реализация J). Это для понимания парадигмы "векторных операций". Естественно R полностью не потянул мощь APL(J) системы и достаточно что то такое прочитать если хочется действительно понять что такое векторные операции http://www.jsoftware.com/help/jforc/culture_shock.htm#_Toc191734290 Ну а о возможностях библиотек R лучше стартовать с вот этой точки https://cran.r-project.org/web/views/

Ответ на комментарий

p2004r · 30 сентября 2017

Комментарий

Тогда по любому начать со _старого_ издания "R book" (2007) (новое издание "волшебным образом" превращено в тыкву :( ) и "R graphics" (ggplot2 надо читать отдельно). А далее обозначенная область слишком уж широка, надо смотреть в последнюю ссылку сообщения выше и искать для текущей области интереса подходящий раздел(ы).

Ответ на комментарий