Различия между сценариями Matlab и Comsol? - PullRequest
5 голосов
/ 28 ноября 2008

Я нахожу много полезного для Matlab, но мой нынешний работодатель не имеет лицензии MatLab: есть одна для Comsol, которая поставляется с Comsol Script. На первый взгляд сценарий comsol идентичен matlab, но через некоторое время вы обнаружите жуткие различия. Многие функции графической графики отсутствуют, и вы не можете экспортировать рисунки в формат векторной графики. Но хуже всего то, что производительность для тяжелых вычислений выглядит намного хуже, на тривиальных алгоритмах очень много сбоев.

(Конечно, назначение пакета comsol совершенно иное, но я только заинтересован в его использовании как matlab, поскольку у нас нет лицензии на matlab.)

Есть ли различия в ядрах сценариев Matlab и Comsol?

Они по-разному обрабатывают память и матричные вычисления?

1 Ответ

2 голосов
/ 28 ноября 2008

Они по-разному обрабатывают память и матричные вычисления?

Почти наверняка да (на уровне реализации). Я не слышал о комсоле раньше, но не удивительно, что он медленнее. В последние несколько лет Mathworks прилагает много усилий для оптимизации производительности. Использование JIT избавило от многих накладных расходов интерпретатора. Они также делают удобные для кэша трюки, такие как выполнение

 mybigresult = big1 .* big2 + big1 .* big3

as (псевдокод в стиле C)

 for (size_t i=0; i<numelement; i++) {
    mybigresult[i] = big1[i] * big2[i] + big1[i] * big3[i];
 }

вместо создания временных файлов и сканирования памяти несколько раз. Наконец, в самых последних версиях они добавили поддержку многопоточности для больших массивов своей серверной части. (Примечание: семантически Matlab по-прежнему однопоточный).

Некоторые бесплатные альтернативы Matlab: октава (стремится быть эквивалентом открытого исходного кода), python + numpy (очень другой язык, но с похожими базовыми функциями).

Если Matlab сделает вас гораздо более продуктивным, вы можете попытаться заставить своего работодателя заплатить за лицензию ... (50 тыс. Долл. США в год * повышение производительности на 10%) = 5 тыс. Долл. Дополнительной работы, выполненной, если Matlab куплен (здесь просто набираю номера).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...