Size: a a a

Язык программирования Julia / Julia programming language

2019 January 21

IG

Ilya Gradina in Язык программирования Julia / Julia programming language
Viktor Maslov
Дело в том, что Julia обладает синтаксисом мат языков (простой вход) и быстродействием на уровне C (по заявлениям разработчиков)
можно либы использовать gsl типо
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Viktor G.
Я бы поставил на косяки реализации. У меня матлаб гоняет фильтр скользящих мин-максов на миллионе точек за 70 мс.
А SciLab умирает просто на расчете координат. Таже задача на матлабе в том же синтаксисе виснет на 40 миллионах точек. SciLab даже оперативку не грузит - 800Мб занимает из 32Гб и все
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
profile on;
...
profile viewer;
источник

A

Andrey in Язык программирования Julia / Julia programming language
Viktor Maslov
Товарищи, есть задача по расчету координат точек в пространстве. Всего получается около миллиона точек (для начала). Реализовывал модель в SciLab, но он к сожалению умирает при таком количестве. Размножались точки алгоритмом for. Кто знает, есть смысл откачивать. SciLab или переписывать на Julia?
Ничего не понял. Что на входе алгоритма и что на выходе?
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
На входе блок из 36 точек, который циклом превращается в миллион размножением по 3 уоординатам
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Я могу в группе в ВК выложить алгоритм вечером, если интересно.
источник

VK

Vyacheslav Klimentyev in Язык программирования Julia / Julia programming language
Viktor Maslov
На входе блок из 36 точек, который циклом превращается в миллион размножением по 3 уоординатам
Всякие repmat и repelem не пробовали?
Для таких языков for в данном контексте очень не очень.
источник

VK

Vyacheslav Klimentyev in Язык программирования Julia / Julia programming language
Заранее размерности массивов заданы? Вдруг у вас на каждой итерации происходит заново выделение памяти.
И что значит "виснет"? Если долго выполняется, это одно. Если же в swap начинает лезть, то другое. В вашем случае при 800 Мб из 32 Гб ни о каком свопе не может быть и речи, поэтому непонятно.
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Vyacheslav Klimentyev
Заранее размерности массивов заданы? Вдруг у вас на каждой итерации происходит заново выделение памяти.
И что значит "виснет"? Если долго выполняется, это одно. Если же в swap начинает лезть, то другое. В вашем случае при 800 Мб из 32 Гб ни о каком свопе не может быть и речи, поэтому непонятно.
Выполняет долго, причем оставлял на 12 часов - результата нет.
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Vyacheslav Klimentyev
Всякие repmat и repelem не пробовали?
Для таких языков for в данном контексте очень не очень.
Не пробовал. У меня аналогичная моделька была на паскале сделана с циклом. Переписал почти впрямую
источник

VK

Vyacheslav Klimentyev in Язык программирования Julia / Julia programming language
Viktor Maslov
Выполняет долго, причем оставлял на 12 часов - результата нет.
Ясно, тогда следующие предложения (для MATLAB):
0. Смотреть результаты профайлера, как уже говорили.
1. Избавиться от циклов.
2. Если оставлять циклы, то for заменить на parfor.
3. Сгенерировать mex-функцию (с parfor, чтобы OpenMP использовать).
источник

VK

Vyacheslav Klimentyev in Язык программирования Julia / Julia programming language
Viktor Maslov
Не пробовал. У меня аналогичная моделька была на паскале сделана с циклом. Переписал почти впрямую
Вот это и плохо.
А чем не устраивает программа на паскале, если она работает за приемлемое время, как я понимаю?
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Vyacheslav Klimentyev
Ясно, тогда следующие предложения (для MATLAB):
0. Смотреть результаты профайлера, как уже говорили.
1. Избавиться от циклов.
2. Если оставлять циклы, то for заменить на parfor.
3. Сгенерировать mex-функцию (с parfor, чтобы OpenMP использовать).
Так matlab то работает и так. Проблема именно с SciLab.
источник

VK

Vyacheslav Klimentyev in Язык программирования Julia / Julia programming language
Viktor Maslov
Так matlab то работает и так. Проблема именно с SciLab.
Но на 40 млн. точек она тоже зависает. А это 300 Мб всего в double, что очень мало
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Vyacheslav Klimentyev
Вот это и плохо.
А чем не устраивает программа на паскале, если она работает за приемлемое время, как я понимаю?
Встроенные средства визуализации. Мне показалось проще переписать на мат язык чем прикручивать библиотеки к паскалю
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Vyacheslav Klimentyev
Но на 40 млн. точек она тоже зависает. А это 300 Мб всего в double, что очень мало
Много где пишут, что циклы нельзя, но я не думал что это так критично
источник

VK

Vyacheslav Klimentyev in Язык программирования Julia / Julia programming language
Viktor Maslov
Встроенные средства визуализации. Мне показалось проще переписать на мат язык чем прикручивать библиотеки к паскалю
Если никому standalone приложение не нужно, то вполне оправдано выбрать SciLab или MATLAB
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Vyacheslav Klimentyev
Если никому standalone приложение не нужно, то вполне оправдано выбрать SciLab или MATLAB
Вот и я так решил
источник

VK

Vyacheslav Klimentyev in Язык программирования Julia / Julia programming language
Viktor Maslov
Много где пишут, что циклы нельзя, но я не думал что это так критично
Критично. В MATLAB довольно хорошая оптимизация jit-компилятора. В Octave все намного хуже с циклами. SciLab никогда не использовал, ничего не могу сказать
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Vyacheslav Klimentyev
Критично. В MATLAB довольно хорошая оптимизация jit-компилятора. В Octave все намного хуже с циклами. SciLab никогда не использовал, ничего не могу сказать
Так а Julia для таких задач норм?
источник