Не отписался сразу о результатах.
В общем, в последние пару лет разработчики Octave хорошо повысили быстродействие пакета. На одном ядре AMD с частотой 3,3 ГГц мой тест выполнялся за 1,5 секунды для Octave 4.0, на другом ПК с Intel i7 4 ГГц в MATLAB 2015b за 0,6 с. Учитывая разные частоты процессоров, можно сказать, что Octave проигрывает примерно в 2 раза, а не на порядки, как считалось и писалось в обсуждениях раньше. Понятно, что данный конкретный пример не является показателем, но чтение зарубежных форумов подтверждает, что Octave сейчас оптимизируют.
Пакет parallel уменьшил время исполнения на 8 ядрах AMD в 5,4 раза, что ожидаемо. Сам процесс распараллеливания (синтаксис) понравился больше, чем parfor у MATLAB.
JIT-компиляция использует LLMV+clang, она в довольно сыром состоянии. На своей Linux Gentoo не удалось скомпилировать сам Octave с нужными ключами, поскольку его версия 4.0.2 требует LLVM >= 3.5, а jit-compiler работает только при <= 3.3. Действительно, это компиляция не "на лету", выигрыш, по немногим материалам в сети, сопоставим с выигрышем от генерации mex в MATLAB (для алгоритмов, содержащих циклы).
Пока что принято решение отложить попытки подключения jit-компиляции, чтобы не тратить время на сырой продукт.
|